Merge branch 'develop' into remoting-4.0
[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.List;
14
15 import eu.etaxonomy.cdm.api.service.INameService;
16 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
17 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
18 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
19 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
20 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;
21 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
22 import eu.etaxonomy.taxeditor.store.CdmStore;
23
24 /**
25 * <p>NameEditorInput class.</p>
26 *
27 * @author p.ciardelli
28 * @created 20.08.2009
29 * @version 1.0
30 */
31 public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
32
33 /**
34 *
35 */
36 private static final long serialVersionUID = -3085029575759626823L;
37 private static NameEditorInput instance;
38
39 /** Constant <code>ID="bulkeditor.input.name"</code> */
40 public static final String ID = "bulkeditor.input.name";
41
42 /**
43 * <p>Getter for the field <code>instance</code>.</p>
44 *
45 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
46 */
47 public static AbstractBulkEditorInput getInstance() {
48 if (instance == null) {
49 instance = new NameEditorInput();
50 }
51 return instance;
52 }
53
54 /* (non-Javadoc)
55 * @see org.eclipse.ui.IEditorInput#getName()
56 */
57 /**
58 * <p>getName</p>
59 *
60 * @return a {@link java.lang.String} object.
61 */
62 @Override
63 public String getName() {
64 return BulkEditorInputType.NAME.label;
65 }
66
67 /* (non-Javadoc)
68 * @see org.eclipse.ui.IEditorInput#getToolTipText()
69 */
70 /**
71 * <p>getToolTipText</p>
72 *
73 * @return a {@link java.lang.String} object.
74 */
75 @Override
76 public String getToolTipText() {
77 return getName();
78 }
79
80 /**
81 * <p>getID</p>
82 *
83 * @return a {@link java.lang.Object} object.
84 */
85 public static Object getID() {
86 return ID;
87 }
88
89 /* (non-Javadoc)
90 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
91 */
92 /** {@inheritDoc} */
93 @Override
94 public boolean isMergingEnabled() {
95 return false;
96 }
97
98 /** {@inheritDoc} */
99 @Override
100 public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
101 return CdmStore.getSearchManager().findNames(configurator);
102 }
103
104 /** {@inheritDoc}
105 @Override
106 public TaxonNameBase loadEntity(UUID uuid) {
107 List<String> propertyPaths = Arrays.asList(new String[]{});
108 return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
109 }
110 */
111 /** {@inheritDoc}
112 **/
113 @Override
114 public boolean delete(TaxonNameBase entity) {
115 return CdmStore.getService(INameService.class).delete(entity) != null;
116 }
117
118 /** {@inheritDoc} */
119 @Override
120 public TaxonNameBase save(TaxonNameBase entity) {
121 if(CdmStore.getCurrentSessionManager().isRemoting()) {
122 return CdmStore.getService(INameService.class).merge(entity) ;
123 } else {
124 CdmStore.getService(INameService.class).saveOrUpdate(entity);
125 return entity;
126 }
127 }
128
129 /* (non-Javadoc)
130 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
131 */
132 @Override
133 protected IEntityCreator<TaxonNameBase> createEntityCreator() {
134 return new NameCreator();
135 }
136
137 /* (non-Javadoc)
138 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
139 */
140 @Override
141 public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
142 List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
143
144 sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonNameBase>());
145
146 return sortProviders;
147 }
148
149 /* (non-Javadoc)
150 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
151 */
152 @Override
153 public String getTypeText(Object entity) {
154 if((entity instanceof TaxonNameBase) && (((TaxonNameBase) entity).getNomenclaturalCode() != null)){
155 return ((TaxonNameBase) entity).getNomenclaturalCode().getTitleCache();
156 }
157 return super.getTypeText(entity);
158 }
159
160 /* (non-Javadoc)
161 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
162 */
163 @Override
164 public String getText(TaxonNameBase entity) {
165 return (entity).getFullTitleCache();
166 }
167
168 /* (non-Javadoc)
169 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
170 */
171 @Override
172 public void merge() {
173
174 }
175
176
177 }