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
.ArrayList
;
14 import java
.util
.Arrays
;
15 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
19 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
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);
119 public boolean delete(TaxonNameBase entity
) {
120 return CdmStore
.getService(INameService
.class).delete(entity
) != null;
125 public TaxonNameBase
save(TaxonNameBase entity
) {
126 TaxonNameBase mergedName
= null;
128 if(CdmStore
.getCurrentSessionManager().isRemoting()) {
129 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() {
183 private List
<String
> getPropertyPaths(){
184 List
<String
> nameBasePropertyPaths
= Arrays
.asList(new String
[] {
186 "name.typeDesignations",
188 "name.nomenclaturalReference.inReference",
189 "name.taxonBases.taxonNodes",
190 "name.relationsFromThisName",
191 "name.relationsToThisName",
192 "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
193 "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName"});
195 return nameBasePropertyPaths
;