From 7efbd7cf09b62d5e802b7b827a6cd02fc7a096f9 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Fri, 10 Jun 2016 14:14:19 +0200 Subject: [PATCH] use the CdmFilteredSelectionDialog --- ...actFilteredCdmResourceSelectionDialog.java | 6 +- .../selection/AgentSelectionDialog.java | 13 +- .../ClassificationSelectionDialog.java | 28 +-- .../selection/CollectionSelectionDialog.java | 2 +- .../selection/MediaSelectionDialog.java | 2 +- .../dialog/selection/NameSelectionDialog.java | 11 +- .../selection/NamedAreaSelectionDialog.java | 4 +- .../NomenclaturalAuthorSelectionDialog.java | 168 +++++++++--------- ...omenclaturalAuthorTeamSelectionDialog.java | 2 +- .../PolytomousKeySelectionDialog.java | 2 +- .../selection/ReferenceSelectionDialog.java | 11 +- .../selection/SelectionDialogFactory.java | 12 +- ...cimenOrObservationBaseSelectionDialog.java | 134 +++++++------- .../selection/TaxonBaseSelectionDialog.java | 16 +- .../selection/TaxonNodeSelectionDialog.java | 9 +- 15 files changed, 241 insertions(+), 179 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java index a22f14454..8f8fa3144 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmResourceSelectionDialog.java @@ -39,7 +39,6 @@ import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IMemento; -import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; @@ -62,13 +61,14 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; * @version 1.0 */ public abstract class AbstractFilteredCdmResourceSelectionDialog extends - FilteredItemsSelectionDialog implements IConversationEnabled { + CdmFilteredItemsSelectionDialog implements IConversationEnabled { private final ConversationHolder conversation; protected List> model; private final Set transientCdmObjects = new HashSet(); private final String settings; + protected final int limitOfInitialElements = 100; protected T cdmBaseToBeFiltered; @@ -302,6 +302,8 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog * FilteredClassificationSelectionDialog class. *

- * + * * @author n.hoffmann * @created Sep 21, 2009 * @version 1.0 @@ -38,13 +39,13 @@ public class ClassificationSelectionDialog extends *

* select *

- * + * * @param shell * a {@link org.eclipse.swt.widgets.Shell} object. * @param conversation * a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} * object. - * @param curentSelection + * @param curentSelection * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object. */ public static Classification select(Shell shell, @@ -58,7 +59,7 @@ public class ClassificationSelectionDialog extends *

* Constructor for FilteredClassificationSelectionDialog. *

- * + * * @param shell * a {@link org.eclipse.swt.widgets.Shell} object. * @param title @@ -81,7 +82,7 @@ public class ClassificationSelectionDialog extends /* * (non-Javadoc) - * + * * @see * org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea * (org.eclipse.swt.widgets.Composite) @@ -94,7 +95,7 @@ public class ClassificationSelectionDialog extends /* * (non-Javadoc) - * + * * @see * eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog * #getPersistentObject(java.util.UUID) @@ -107,7 +108,7 @@ public class ClassificationSelectionDialog extends /* * (non-Javadoc) - * + * * @see * eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog * #initModel() @@ -115,8 +116,15 @@ public class ClassificationSelectionDialog extends /** {@inheritDoc} */ @Override protected void initModel() { + Control control = getPatternControl(); + String pattern = null; + if (control != null){ + pattern = ((Text)control).getText(); + } + + model = CdmStore.getService(IClassificationService.class) - .getUuidAndTitleCache(); + .getUuidAndTitleCache(limitOfInitialElements, pattern); } /** {@inheritDoc} */ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java index 6f084b1f1..202ba7370 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java @@ -76,7 +76,7 @@ public class CollectionSelectionDialog extends /** {@inheritDoc} */ @Override protected void initModel() { - model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache(); + model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache(null, null); } /* (non-Javadoc) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java index a0df66d81..b91471b49 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java @@ -60,7 +60,7 @@ AbstractFilteredCdmResourceSelectionDialog { /** {@inheritDoc} */ @Override protected void initModel() { - model = CdmStore.getService(IMediaService.class).getUuidAndTitleCache(); + model = CdmStore.getService(IMediaService.class).getUuidAndTitleCache(null, null); } /* (non-Javadoc) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java index a3e52d6d9..86222d5a8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java @@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection; import java.util.UUID; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.INameService; @@ -47,7 +49,14 @@ public class NameSelectionDialog extends AbstractFilteredCdmResourceSelectionDia /** {@inheritDoc} */ @Override protected void initModel() { - model = CdmStore.getService(INameService.class).getUuidAndTitleCache(); + Control control = getPatternControl(); + String pattern = null; + if (control != null){ + pattern = ((Text)control).getText(); + } + + + model = CdmStore.getService(INameService.class).getUuidAndTitleCache(limitOfInitialElements, pattern); } /** {@inheritDoc} */ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java index b671c35be..055fd74cb 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java @@ -66,8 +66,8 @@ public class NamedAreaSelectionDialog extends } } - private Collection selectedVocabularies; - private ArrayList preselectedVocabularies; + protected Collection selectedVocabularies; + protected ArrayList preselectedVocabularies; /** diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java index 7aa0dd9ff..f5a5e41c9 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorSelectionDialog.java @@ -1,84 +1,84 @@ -// $Id$ -/** -* Copyright (C) 2016 EDIT -* European Distributed Institute of Taxonomy -* http://www.e-taxonomy.eu -* -* The contents of this file are subject to the Mozilla Public License Version 1.1 -* See LICENSE.TXT at the top of this package for the full license terms. -*/ -package eu.etaxonomy.taxeditor.ui.dialog.selection; - -import org.eclipse.swt.widgets.Shell; - -import eu.etaxonomy.cdm.api.conversation.ConversationHolder; -import eu.etaxonomy.cdm.api.service.IAgentService; -import eu.etaxonomy.cdm.model.agent.AgentBase; -import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; -import eu.etaxonomy.taxeditor.store.CdmStore; - -/** - * @author k.luther - * @date 25.05.2016 - * - */ -public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog { - - - /** - * @param shell - * @param conversation - * @param title - * @param multi - * @param settings - * @param agent - */ - protected NomenclaturalAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title, - boolean multi, String settings, AgentBase agent) { - super(shell, conversation, title, multi, settings, agent); - // TODO Auto-generated constructor stub - } - - @Override - protected void initModel() { - model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(); - } - - /** - *

select

- * - * @param shell a {@link org.eclipse.swt.widgets.Shell} object. - * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object. - * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object. - * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object. - */ - public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) { - NomenclaturalAuthorSelectionDialog dialog = new NomenclaturalAuthorSelectionDialog(shell, conversation, - "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity); - return getSelectionFromDialog(dialog); - } - - /** - *

getTitle

- * - * @param cdmObject a T object. - * @return a {@link java.lang.String} object. - */ - @Override - protected String getTitle(AgentBase cdmObject) { - if(cdmObject == null){ - return ""; - } - - if (cdmObject instanceof TeamOrPersonBase) { - return ((TeamOrPersonBase) cdmObject).getNomenclaturalTitle(); - } else if (cdmObject instanceof AgentBase){ - return ((TeamOrPersonBase) cdmObject).getTitleCache(); - } - - throw new IllegalArgumentException("Generic method only" + - " supports cdmObject of type IIdentifiableEntity." + - " Please implement specific method in subclass."); - } - -} +// $Id$ +/** +* Copyright (C) 2016 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ +package eu.etaxonomy.taxeditor.ui.dialog.selection; + +import org.eclipse.swt.widgets.Shell; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.service.IAgentService; +import eu.etaxonomy.cdm.model.agent.AgentBase; +import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; +import eu.etaxonomy.taxeditor.store.CdmStore; + +/** + * @author k.luther + * @date 25.05.2016 + * + */ +public class NomenclaturalAuthorSelectionDialog extends AgentSelectionDialog { + + + /** + * @param shell + * @param conversation + * @param title + * @param multi + * @param settings + * @param agent + */ + protected NomenclaturalAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title, + boolean multi, String settings, AgentBase agent) { + super(shell, conversation, title, multi, settings, agent); + // TODO Auto-generated constructor stub + } + + @Override + protected void initModel() { + model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(null, null, null); + } + + /** + *

select

+ * + * @param shell a {@link org.eclipse.swt.widgets.Shell} object. + * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object. + * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object. + * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object. + */ + public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) { + NomenclaturalAuthorSelectionDialog dialog = new NomenclaturalAuthorSelectionDialog(shell, conversation, + "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity); + return getSelectionFromDialog(dialog); + } + + /** + *

getTitle

+ * + * @param cdmObject a T object. + * @return a {@link java.lang.String} object. + */ + @Override + protected String getTitle(AgentBase cdmObject) { + if(cdmObject == null){ + return ""; + } + + if (cdmObject instanceof TeamOrPersonBase) { + return ((TeamOrPersonBase) cdmObject).getNomenclaturalTitle(); + } else if (cdmObject instanceof AgentBase){ + return ((TeamOrPersonBase) cdmObject).getTitleCache(); + } + + throw new IllegalArgumentException("Generic method only" + + " supports cdmObject of type IIdentifiableEntity." + + " Please implement specific method in subclass."); + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java index 5d9099441..ee313e858 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalAuthorTeamSelectionDialog.java @@ -64,7 +64,7 @@ public class NomenclaturalAuthorTeamSelectionDialog extends /** {@inheritDoc} */ @Override protected AbstractNewEntityWizard getNewEntityWizard(String parameter) { - return new NewTeamWizard(); + return new NewTeamWizard(true); } /** {@inheritDoc} */ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java index 3a31d6fc9..8accc6c3d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java @@ -61,7 +61,7 @@ public class PolytomousKeySelectionDialog extends */ @Override protected void initModel() { - model = CdmStore.getService(IPolytomousKeyService.class).getUuidAndTitleCache(); + model = CdmStore.getService(IPolytomousKeyService.class).getUuidAndTitleCache(null, null); } /* (non-Javadoc) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java index 0bba39ae2..805a5e2ff 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java @@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection; import java.util.UUID; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.IReferenceService; @@ -75,7 +77,14 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti /** {@inheritDoc} */ @Override protected void initModel() { - model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(); + Control control = getPatternControl(); + String pattern = null; + if (control != null){ + pattern = ((Text)control).getText(); + } + + + model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern); } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java index 70cdd0fb3..d7d022a5f 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java @@ -21,6 +21,7 @@ import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; import eu.etaxonomy.cdm.model.common.Group; import eu.etaxonomy.cdm.model.common.ICdmBase; +import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.common.User; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.FeatureTree; @@ -42,8 +43,11 @@ import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.model.MessagingUtils; +import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.IEntityElement; +import eu.etaxonomy.taxeditor.ui.section.agent.TeamMemberElement; +import eu.etaxonomy.taxeditor.ui.section.description.detail.DistributionDetailElement; import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement; /** @@ -89,7 +93,9 @@ public class SelectionDialogFactory { //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545) return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection); } - + if(clazz.equals(Person.class) && parentElement instanceof TeamMemberElement){ + return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection); + } if(clazz.equals(AgentBase.class)){ return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection); } @@ -117,7 +123,9 @@ public class SelectionDialogFactory { return (T) SpecimenOrObservationBaseSelectionDialog.select(shell, conversation, (SpecimenOrObservationBase) currentSelection); } if(clazz.equals(NamedArea.class)){ - if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){ + if(parentElement instanceof DistributionDetailElement){ + return (T) NamedAreaSelectionForDistributionDialog.select(shell, conversation, (NamedArea) currentSelection, CdmStore.getTermManager().getPreferredVocabulary(TermType.NamedArea)); + }else if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){ return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, Country.uuidCountryVocabulary); } else{ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationBaseSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationBaseSelectionDialog.java index 589b08440..9a6a92ac2 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationBaseSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationBaseSelectionDialog.java @@ -1,67 +1,67 @@ -// $Id$ -/** -* Copyright (C) 2007 EDIT -* European Distributed Institute of Taxonomy -* http://www.e-taxonomy.eu -* -* The contents of this file are subject to the Mozilla Public License Version 1.1 -* See LICENSE.TXT at the top of this package for the full license terms. -*/ - -package eu.etaxonomy.taxeditor.ui.dialog.selection; - -import java.util.UUID; - -import org.eclipse.swt.widgets.Shell; - -import eu.etaxonomy.cdm.api.conversation.ConversationHolder; -import eu.etaxonomy.cdm.api.service.IOccurrenceService; -import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; -import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; -import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; -import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard; -import eu.etaxonomy.taxeditor.store.CdmStore; - -/** - * @author pplitzner - */ -public class SpecimenOrObservationBaseSelectionDialog extends - AbstractFilteredCdmResourceSelectionDialog { - - public static SpecimenOrObservationBase select(Shell shell, ConversationHolder conversation, SpecimenOrObservationBase observation){ - SpecimenOrObservationBaseSelectionDialog dialog = new SpecimenOrObservationBaseSelectionDialog(shell, conversation, - "Choose field unit or derived unit", false, SpecimenOrObservationBaseSelectionDialog.class.getCanonicalName(), observation); - return getSelectionFromDialog(dialog); - } - - protected SpecimenOrObservationBaseSelectionDialog(Shell shell, ConversationHolder conversation, - String title, boolean multi, String settings, - SpecimenOrObservationBase cdmObject) { - super(shell, conversation, title, multi, settings, cdmObject); - } - - /** {@inheritDoc} */ - @Override - protected SpecimenOrObservationBase getPersistentObject(UUID uuid) { - Object object = CdmStore.getService(IOccurrenceService.class).load(uuid); - return HibernateProxyHelper.deproxy(object, SpecimenOrObservationBase.class); - } - - /** {@inheritDoc} */ - @Override - protected void initModel() { - model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache(); - } - - /** {@inheritDoc} */ - @Override - protected AbstractNewEntityWizard getNewEntityWizard(String parameter) { - return new NewDerivedUnitBaseWizard(); - } - - /** {@inheritDoc} */ - @Override - protected String getNewWizardLinkText() { - return String.format("Create a new %1s", "field unit/derived unit"); - } -} +// $Id$ +/** +* Copyright (C) 2007 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ + +package eu.etaxonomy.taxeditor.ui.dialog.selection; + +import java.util.UUID; + +import org.eclipse.swt.widgets.Shell; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.service.IOccurrenceService; +import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; +import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; +import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard; +import eu.etaxonomy.taxeditor.store.CdmStore; + +/** + * @author pplitzner + */ +public class SpecimenOrObservationBaseSelectionDialog extends + AbstractFilteredCdmResourceSelectionDialog { + + public static SpecimenOrObservationBase select(Shell shell, ConversationHolder conversation, SpecimenOrObservationBase observation){ + SpecimenOrObservationBaseSelectionDialog dialog = new SpecimenOrObservationBaseSelectionDialog(shell, conversation, + "Choose field unit or derived unit", false, SpecimenOrObservationBaseSelectionDialog.class.getCanonicalName(), observation); + return getSelectionFromDialog(dialog); + } + + protected SpecimenOrObservationBaseSelectionDialog(Shell shell, ConversationHolder conversation, + String title, boolean multi, String settings, + SpecimenOrObservationBase cdmObject) { + super(shell, conversation, title, multi, settings, cdmObject); + } + + /** {@inheritDoc} */ + @Override + protected SpecimenOrObservationBase getPersistentObject(UUID uuid) { + Object object = CdmStore.getService(IOccurrenceService.class).load(uuid); + return HibernateProxyHelper.deproxy(object, SpecimenOrObservationBase.class); + } + + /** {@inheritDoc} */ + @Override + protected void initModel() { + model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache(null, null); + } + + /** {@inheritDoc} */ + @Override + protected AbstractNewEntityWizard getNewEntityWizard(String parameter) { + return new NewDerivedUnitBaseWizard(); + } + + /** {@inheritDoc} */ + @Override + protected String getNewWizardLinkText() { + return String.format("Create a new %1s", "field unit/derived unit"); + } +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java index a02f2c0e1..d28a01d24 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java @@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.dialog.selection; import java.util.UUID; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.ITaxonService; @@ -69,14 +71,22 @@ public class TaxonBaseSelectionDialog extends AbstractFilteredCdmResourceSelecti /** {@inheritDoc} */ @Override protected void initModel() { + Control control = getPatternControl(); + String pattern = null; + if (control != null){ + pattern = ((Text)control).getText(); + } + + + if(clazz == TaxonBase.class){ - model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCache(); + model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCache(limitOfInitialElements, pattern); } else if(clazz == Taxon.class){ - model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheTaxon(); + model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheTaxon(limitOfInitialElements, pattern); } else if(clazz == Synonym.class){ - model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheSynonym(); + model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCacheSynonym(limitOfInitialElements, pattern); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java index 35239371c..9392a4c4c 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java @@ -19,6 +19,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.service.IClassificationService; @@ -126,6 +127,12 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti // default to first tree // TODO this will be problematic and can only be seen as workaround + Control control = getPatternControl(); + String pattern = null; + if (control != null){ + pattern = ((Text)control).getText(); + } + if(classifications == null){ classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null); @@ -143,7 +150,7 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti } } - model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(), excludeTaxa); + model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(), excludeTaxa, limitOfInitialElements, pattern); } /** {@inheritDoc} */ -- 2.34.1