Project

General

Profile

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

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

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

    
17
import eu.etaxonomy.cdm.api.service.INameService;
18
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
19
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
20
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
21
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
22
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
23
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
25

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

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

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

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

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

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

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

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

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

    
108
	/** {@inheritDoc}
109
	@Override
110
	public TaxonNameBase loadEntity(UUID uuid) {
111
		List<String> propertyPaths = Arrays.asList(new String[]{});
112
		return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
113
	}
114
*/
115
	/** {@inheritDoc}
116
	 **/
117
	@Override
118
    public boolean delete(TaxonNameBase entity)  {
119
		return CdmStore.getService(INameService.class).delete(entity) != null;
120
	}
121

    
122
	/** {@inheritDoc} */
123
	@Override
124
    public TaxonNameBase save(TaxonNameBase entity) {
125
		TaxonNameBase mergedName = null;
126
		mergedName =  CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
127
	   	return mergedName;
128
		
129
	}
130

    
131
	/* (non-Javadoc)
132
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
133
	 */
134
	@Override
135
	protected IEntityCreator<TaxonNameBase> createEntityCreator() {
136
		return new NameCreator();
137
	}
138

    
139
	/* (non-Javadoc)
140
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
141
	 */
142
	@Override
143
	public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
144
		List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
145

    
146
		sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonNameBase>());
147

    
148
		return sortProviders;
149
	}
150

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

    
162
	/* (non-Javadoc)
163
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
164
	 */
165
	@Override
166
	public String getText(TaxonNameBase entity) {
167
		return (entity).getFullTitleCache();
168
	}
169

    
170
    /* (non-Javadoc)
171
     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
172
     */
173
    @Override
174
    public void merge() {
175

    
176
    }
177

    
178
	@Override
179
	protected TaxonNameBase loadEntity(UUID entityUuid) {
180
		List<String> propertyPaths = Arrays.asList(new String[]{});
181
		return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
182
	}
183

    
184

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

    
200
}
(7-7/12)