2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
12 import java
.util
.Arrays
;
13 import java
.util
.List
;
14 import java
.util
.UUID
;
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
;
28 * <p>NameEditorInput class.</p>
34 public class NameEditorInput
extends AbstractBulkEditorInput
<TaxonNameBase
> {
39 private static final long serialVersionUID
= -3085029575759626823L;
40 private static NameEditorInput instance
;
42 /** Constant <code>ID="bulkeditor.input.name"</code> */
43 public static final String ID
= "bulkeditor.input.name";
46 * <p>Getter for the field <code>instance</code>.</p>
48 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
50 public static AbstractBulkEditorInput
getInstance() {
51 if (instance
== null) {
52 instance
= new NameEditorInput();
58 * @see org.eclipse.ui.IEditorInput#getName()
63 * @return a {@link java.lang.String} object.
66 public String
getName() {
67 return BulkEditorInputType
.NAME
.label
;
71 * @see org.eclipse.ui.IEditorInput#getToolTipText()
74 * <p>getToolTipText</p>
76 * @return a {@link java.lang.String} object.
79 public String
getToolTipText() {
86 * @return a {@link java.lang.Object} object.
88 public static Object
getID() {
93 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
97 public boolean isMergingEnabled() {
103 public List
listEntities(IIdentifiableEntityServiceConfigurator configurator
) {
105 configurator
.setPropertyPaths(getPropertyPaths());
106 return CdmStore
.getSearchManager().findNames(configurator
, this.getConversation());
111 public TaxonNameBase loadEntity(UUID uuid) {
112 List<String> propertyPaths = Arrays.asList(new String[]{});
113 return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
117 public boolean delete(TaxonNameBase entity
, DeleteConfiguratorBase config
) {
118 NameDeletionConfigurator nameConfig
= null;
119 if (config
instanceof NameDeletionConfigurator
){
120 nameConfig
= (NameDeletionConfigurator
) config
;
124 return CdmStore
.getService(INameService
.class).delete(entity
.getUuid(), nameConfig
) != null;
129 public TaxonNameBase
save(TaxonNameBase entity
) {
130 TaxonNameBase mergedName
= null;
131 mergedName
= CdmStore
.getService(INameService
.class).merge(entity
, true).getMergedEntity();
137 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
140 protected IEntityCreator
<TaxonNameBase
> createEntityCreator() {
141 return new NameCreator();
145 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
148 public List
<IBulkEditorSortProvider
<TaxonNameBase
>> getSortProviders() {
149 List
<IBulkEditorSortProvider
<TaxonNameBase
>> sortProviders
= super.getSortProviders();
151 sortProviders
.add(0, new IdentifiableEntitySortProvider
<TaxonNameBase
>());
153 return sortProviders
;
157 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
160 public String
getTypeText(Object entity
) {
161 if((entity
instanceof TaxonNameBase
) && (((TaxonNameBase
) entity
).getNomenclaturalCode() != null)){
162 return ((TaxonNameBase
) entity
).getNomenclaturalCode().getTitleCache();
164 return super.getTypeText(entity
);
168 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
171 public String
getText(TaxonNameBase entity
) {
172 return (entity
).getFullTitleCache();
176 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
179 public void merge() {
184 protected TaxonNameBase
loadEntity(UUID entityUuid
) {
185 List
<String
> propertyPaths
= Arrays
.asList(new String
[]{});
186 return CdmStore
.getService(INameService
.class).load(entityUuid
, getPropertyPaths());
190 private List
<String
> getPropertyPaths(){
191 List
<String
> nameBasePropertyPaths
= Arrays
.asList(new String
[] {
193 "name.typeDesignations",
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"});
202 return nameBasePropertyPaths
;