Project

General

Profile

Download (4.44 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.bulkeditor.input;
10

    
11
import java.util.ArrayList;
12
import java.util.Arrays;
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import eu.etaxonomy.cdm.api.service.IReferenceService;
17
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
18
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
19
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
20
import eu.etaxonomy.cdm.model.common.MarkerType;
21
import eu.etaxonomy.cdm.model.reference.Reference;
22
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
23
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
24
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.ReferenceCreator;
25
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
26
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.ReferenceSortProvider;
27
import eu.etaxonomy.taxeditor.store.CdmStore;
28

    
29

    
30
/**
31
 *
32
 * @author p.ciardelli
33
 * @created 25.06.2009
34
 */
35
public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
36

    
37
	private static final long serialVersionUID = 3806243517765126749L;
38

    
39
	public static final String ID = "bulkeditor.input.reference";
40

    
41
	private static final String PROPERTY_NOMENCLATURAL_CACHE = "Nomencl. Cache";
42

    
43
	private static ReferenceEditorInput instance;
44

    
45
	public static String getID() {
46
		return ID;
47
	}
48

    
49
    @Override
50
    protected List<String> getPropertyKeys_internal() {
51
        List<String> propertyKeysInternal = new ArrayList<>();
52
        propertyKeysInternal.add(PROPERTY_NOMENCLATURAL_CACHE);
53
        return propertyKeysInternal;
54
    }
55

    
56
    @Override
57
    public Object getPropertyValue(Reference cdmBase, String property) {
58
        if(property.equals(PROPERTY_NOMENCLATURAL_CACHE)){
59
            return cdmBase.getAbbrevTitleCache();
60
        }
61
        return super.getPropertyValue(cdmBase, property);
62
    }
63

    
64
    @Override
65
    public String getName() {
66
		return BulkEditorInputType.REFERENCE.label;
67
	}
68

    
69
	public static AbstractBulkEditorInput getInstance() {
70
		if (instance == null) {
71
			instance = new ReferenceEditorInput();
72
		}
73
		return instance;
74
	}
75

    
76
	@Override
77
	public boolean isMergingEnabled() {
78
		return true;
79
	}
80

    
81
	@Override
82
	public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
83
		if (MarkerType.PUBLISH().equals(markerType)) {
84
			return true;
85
		}
86
		return super.isMarkerTypeEditingEnabled(markerType);
87
	}
88

    
89
    @Override
90
    protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
91
        return CdmStore.getService(IReferenceService.class).countByTitle(configurator);
92
    }
93

    
94
	/** {@inheritDoc} */
95
	@Override
96
	public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
97
		return CdmStore.getSearchManager().findReferences(configurator);
98
	}
99

    
100
	// Entity persistence
101

    
102
	/** {@inheritDoc} */
103
	@Override
104
	public Reference loadEntity(UUID entityUuid) {
105
		List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"});
106
		return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
107
	}
108

    
109
	@Override
110
    public boolean delete(Reference entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
111
	    if (entity.getUuid() != null){
112
	        return CdmStore.getService(IReferenceService.class).delete(entity.getUuid()) != null;
113
	    }else{
114
	        return false;
115
	    }
116
	}
117

    
118
	@Override
119
    public Reference save(Reference entity) {
120
	   return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
121
	}
122

    
123
	@Override
124
	protected IEntityCreator<Reference> createEntityCreator() {
125
		return new ReferenceCreator();
126
	}
127

    
128
	@Override
129
	public List<IBulkEditorSortProvider<Reference>> getSortProviders() {
130
		List<IBulkEditorSortProvider<Reference>> sortProviders = super.getSortProviders();
131

    
132
		sortProviders.add(0, new IdentifiableEntitySortProvider<Reference>());
133
		sortProviders.add(1, new ReferenceSortProvider());
134

    
135
		return sortProviders;
136
	}
137

    
138
	@Override
139
	public String getTypeText(Object entity) {
140
		if(entity instanceof Reference){
141
			return ((Reference) entity).getType().getMessage(CdmStore.getDefaultLanguage());
142
		}
143
		return super.getTypeText(entity);
144
	}
145

    
146
    @Override
147
    public void merge() {
148

    
149
    }
150

    
151
}
(9-9/11)