Project

General

Profile

Download (5.76 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

    
10
package eu.etaxonomy.taxeditor.bulkeditor.input;
11

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

    
16
import eu.etaxonomy.cdm.api.service.INameService;
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.config.NameDeletionConfigurator;
20
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
21
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
22
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
23
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
24
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26

    
27
/**
28
 * <p>NameEditorInput class.</p>
29
 *
30
 * @author p.ciardelli
31
 * @created 20.08.2009
32
 * @version 1.0
33
 */
34
public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
35

    
36
	/**
37
	 *
38
	 */
39
	private static final long serialVersionUID = -3085029575759626823L;
40
	private static NameEditorInput instance;
41

    
42
	/** Constant <code>ID="bulkeditor.input.name"</code> */
43
	public static final String ID = "bulkeditor.input.name";
44

    
45
	/**
46
	 * <p>Getter for the field <code>instance</code>.</p>
47
	 *
48
	 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
49
	 */
50
	public static AbstractBulkEditorInput getInstance() {
51
		if (instance == null) {
52
			instance = new NameEditorInput();
53
		}
54
		return instance;
55
	}
56

    
57
	/* (non-Javadoc)
58
	 * @see org.eclipse.ui.IEditorInput#getName()
59
	 */
60
	/**
61
	 * <p>getName</p>
62
	 *
63
	 * @return a {@link java.lang.String} object.
64
	 */
65
	@Override
66
    public String getName() {
67
		return BulkEditorInputType.NAME.label;
68
	}
69

    
70
	/* (non-Javadoc)
71
	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
72
	 */
73
	/**
74
	 * <p>getToolTipText</p>
75
	 *
76
	 * @return a {@link java.lang.String} object.
77
	 */
78
	@Override
79
    public String getToolTipText() {
80
		return getName();
81
	}
82

    
83
	/**
84
	 * <p>getID</p>
85
	 *
86
	 * @return a {@link java.lang.Object} object.
87
	 */
88
	public static Object getID() {
89
		return ID;
90
	}
91

    
92
	/* (non-Javadoc)
93
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
94
	 */
95
	/** {@inheritDoc} */
96
	@Override
97
	public boolean isMergingEnabled() {
98
		return false;
99
	}
100

    
101
	/** {@inheritDoc} */
102
	@Override
103
	public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
104
		
105
		configurator.setPropertyPaths(getPropertyPaths());
106
		return CdmStore.getSearchManager().findNames(configurator, this.getConversation());
107
	}
108

    
109
	/** {@inheritDoc}
110
	@Override
111
	public TaxonNameBase loadEntity(UUID uuid) {
112
		List<String> propertyPaths = Arrays.asList(new String[]{});
113
		return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
114
	}
115
*/
116
	@Override
117
    public boolean delete(TaxonNameBase entity, DeleteConfiguratorBase config)  {
118
		NameDeletionConfigurator nameConfig = null;
119
		if (config instanceof NameDeletionConfigurator){
120
			nameConfig = (NameDeletionConfigurator) config;
121
		} else{
122
			
123
		}
124
		return CdmStore.getService(INameService.class).delete(entity.getUuid(), nameConfig) != null;
125
	}
126
	
127
	/** {@inheritDoc} */
128
	@Override
129
    public TaxonNameBase save(TaxonNameBase entity) {
130
		TaxonNameBase mergedName = null;
131
		mergedName =  CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
132
	   	return mergedName;
133
		
134
	}
135

    
136
	/* (non-Javadoc)
137
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
138
	 */
139
	@Override
140
	protected IEntityCreator<TaxonNameBase> createEntityCreator() {
141
		return new NameCreator();
142
	}
143

    
144
	/* (non-Javadoc)
145
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
146
	 */
147
	@Override
148
	public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
149
		List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
150

    
151
		sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonNameBase>());
152

    
153
		return sortProviders;
154
	}
155

    
156
	/* (non-Javadoc)
157
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
158
	 */
159
	@Override
160
	public String getTypeText(Object entity) {
161
		if((entity instanceof TaxonNameBase) && (((TaxonNameBase) entity).getNomenclaturalCode() != null)){
162
			return ((TaxonNameBase) entity).getNomenclaturalCode().getTitleCache();
163
		}
164
		return super.getTypeText(entity);
165
	}
166

    
167
	/* (non-Javadoc)
168
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
169
	 */
170
	@Override
171
	public String getText(TaxonNameBase entity) {
172
		return (entity).getFullTitleCache();
173
	}
174

    
175
    /* (non-Javadoc)
176
     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
177
     */
178
    @Override
179
    public void merge() {
180

    
181
    }
182

    
183
	@Override
184
	protected TaxonNameBase loadEntity(UUID entityUuid) {
185
		List<String> propertyPaths = Arrays.asList(new String[]{});
186
		return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
187
	}
188

    
189

    
190
    private List<String> getPropertyPaths(){
191
    	 List<String> nameBasePropertyPaths = Arrays.asList(new String[] {
192
    	 "name.descriptions",
193
         "name.typeDesignations",
194
         "name.status",
195
         "name.nomenclaturalReference.inReference",
196
         "name.taxonBases.taxonNodes",
197
         "name.relationsFromThisName",
198
         "name.relationsToThisName",
199
         "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
200
         "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName"});
201
    	 
202
    	 return nameBasePropertyPaths;
203
    }
204

    
205
}
(7-7/12)