1 package eu
.etaxonomy
.taxeditor
.bulkeditor
.input
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Arrays
;
8 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
9 import eu
.etaxonomy
.cdm
.api
.service
.config
.FindTaxaAndNamesConfiguratorImpl
;
10 import eu
.etaxonomy
.cdm
.api
.service
.config
.IFindTaxaAndNamesConfigurator
;
11 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
12 import eu
.etaxonomy
.cdm
.api
.service
.exception
.ReferencedObjectUndeletableException
;
13 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
14 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
17 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
18 import eu
.etaxonomy
.taxeditor
.annotatedlineeditor
.IEntityCreator
;
19 import eu
.etaxonomy
.taxeditor
.bulkeditor
.input
.entitycreator
.TaxonCreator
;
20 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
22 public class TaxonEditorInput
extends AbstractBulkEditorInput
<TaxonBase
>{
24 private static TaxonEditorInput instance
;
25 /** Constant <code>ID="bulkeditor.input.taxon"</code> */
26 public static final String ID
= "bulkeditor.input.taxon";
31 * <p>Getter for the field <code>instance</code>.</p>
33 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
35 public static AbstractBulkEditorInput
getInstance() {
36 if (instance
== null) {
37 instance
= new TaxonEditorInput();
45 public String
getName() {
46 return BulkEditorInputType
.TAXON
.label
;
50 public String
getToolTipText() {
58 * @return a {@link java.lang.Object} object.
60 public static Object
getID() {
65 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
69 public boolean isMergingEnabled() {
73 public boolean save(TaxonBase entity
) {
74 if(CdmStore
.getCurrentSessionManager().isRemoting()) {
75 return CdmStore
.getService(ITaxonService
.class).merge(entity
) != null;
77 return CdmStore
.getService(ITaxonService
.class).saveOrUpdate(entity
) != null;
85 public List
listEntities(IIdentifiableEntityServiceConfigurator configurator
) {
86 IFindTaxaAndNamesConfigurator
<TaxonBase
> newConfig
= new FindTaxaAndNamesConfiguratorImpl
<TaxonBase
>();
87 newConfig
.setTitleSearchString(configurator
.getTitleSearchStringSqlized());
88 newConfig
.setMatchMode(MatchMode
.ANYWHERE
);
89 List
<TaxonBase
> taxa
= CdmStore
.getSearchManager().findTaxa(configurator
);
90 List
<TaxonBase
> taxaCopy
= new ArrayList
<TaxonBase
>();
91 for (TaxonBase taxon
:taxa
){
93 if (taxon
instanceof Taxon
){
94 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Taxon
.class));
96 taxaCopy
.add(HibernateProxyHelper
.deproxy(taxon
, Synonym
.class));
104 protected TaxonBase
loadEntity(UUID entityUuid
) {
105 List
<String
> propertyPaths
= Arrays
.asList(new String
[]{});
106 return CdmStore
.getService(ITaxonService
.class).load(entityUuid
, propertyPaths
);
112 * @throws ReferencedObjectUndeletableException */
114 public boolean delete(TaxonBase entity
) {
115 return CdmStore
.getService(ITaxonService
.class).delete(entity
) != null;
118 protected IEntityCreator
<TaxonBase
> createEntityCreator() {
119 return new TaxonCreator();
124 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
127 public void merge() {