9017638d02c7cabc867d1ae9211516a9175ab3d7
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / input / NameEditorInput.java
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 }