3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
13 import java
.util
.Arrays
;
14 import java
.util
.List
;
15 import java
.util
.UUID
;
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
;
27 * <p>NameEditorInput class.</p>
33 public class NameEditorInput
extends AbstractBulkEditorInput
<TaxonNameBase
> {
38 private static final long serialVersionUID
= -3085029575759626823L;
39 private static NameEditorInput instance
;
41 /** Constant <code>ID="bulkeditor.input.name"</code> */
42 public static final String ID
= "bulkeditor.input.name";
45 * <p>Getter for the field <code>instance</code>.</p>
47 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
49 public static AbstractBulkEditorInput
getInstance() {
50 if (instance
== null) {
51 instance
= new NameEditorInput();
57 * @see org.eclipse.ui.IEditorInput#getName()
62 * @return a {@link java.lang.String} object.
65 public String
getName() {
66 return BulkEditorInputType
.NAME
.label
;
70 * @see org.eclipse.ui.IEditorInput#getToolTipText()
73 * <p>getToolTipText</p>
75 * @return a {@link java.lang.String} object.
78 public String
getToolTipText() {
85 * @return a {@link java.lang.Object} object.
87 public static Object
getID() {
92 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
96 public boolean isMergingEnabled() {
102 public List
listEntities(IIdentifiableEntityServiceConfigurator configurator
) {
104 configurator
.setPropertyPaths(getPropertyPaths());
105 return CdmStore
.getSearchManager().findNames(configurator
, this.getConversation());
110 public TaxonNameBase loadEntity(UUID uuid) {
111 List<String> propertyPaths = Arrays.asList(new String[]{});
112 return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
118 public boolean delete(TaxonNameBase entity
) {
119 return CdmStore
.getService(INameService
.class).delete(entity
) != null;
124 public TaxonNameBase
save(TaxonNameBase entity
) {
125 TaxonNameBase mergedName
= null;
126 mergedName
= CdmStore
.getService(INameService
.class).merge(entity
, true).getMergedEntity();
132 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
135 protected IEntityCreator
<TaxonNameBase
> createEntityCreator() {
136 return new NameCreator();
140 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
143 public List
<IBulkEditorSortProvider
<TaxonNameBase
>> getSortProviders() {
144 List
<IBulkEditorSortProvider
<TaxonNameBase
>> sortProviders
= super.getSortProviders();
146 sortProviders
.add(0, new IdentifiableEntitySortProvider
<TaxonNameBase
>());
148 return sortProviders
;
152 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
155 public String
getTypeText(Object entity
) {
156 if((entity
instanceof TaxonNameBase
) && (((TaxonNameBase
) entity
).getNomenclaturalCode() != null)){
157 return ((TaxonNameBase
) entity
).getNomenclaturalCode().getTitleCache();
159 return super.getTypeText(entity
);
163 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
166 public String
getText(TaxonNameBase entity
) {
167 return (entity
).getFullTitleCache();
171 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
174 public void merge() {
179 protected TaxonNameBase
loadEntity(UUID entityUuid
) {
180 List
<String
> propertyPaths
= Arrays
.asList(new String
[]{});
181 return CdmStore
.getService(INameService
.class).load(entityUuid
, getPropertyPaths());
185 private List
<String
> getPropertyPaths(){
186 List
<String
> nameBasePropertyPaths
= Arrays
.asList(new String
[] {
188 "name.typeDesignations",
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"});
197 return nameBasePropertyPaths
;