refactored filtered selection, again
authorn.hoffmann <n.hoffmann@localhost>
Fri, 11 Sep 2009 08:55:05 +0000 (08:55 +0000)
committern.hoffmann <n.hoffmann@localhost>
Fri, 11 Sep 2009 08:55:05 +0000 (08:55 +0000)
.gitattributes
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AbstractFilteredCdmResourceSelectionDialog.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AgentFilteredSelectionDialog.java [new file with mode: 0644]
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredNameSelectionDialog.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredReferenceSelectionDialog.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredTaxonNodeSelectionDialog.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java

index d84d698cfaddca44bd332acd7f57313934d99e2c..061dfc558991e643ef4eceffa4d91996bd725cab 100644 (file)
@@ -1031,6 +1031,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSo
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceTypeSelectionWizardPage.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AbstractFilteredCdmResourceSelectionDialog.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AgentFilteredSelectionDialog.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredNameSelectionDialog.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredReferenceSelectionDialog.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/FilteredTaxonNodeSelectionDialog.java -text
index d1803e5659a2ec7cf46bce40c4e456a6a2d6d09c..1b7158daa85b1bd36bda74e7c858464ce22dfe38 100644 (file)
@@ -12,7 +12,10 @@ package eu.etaxonomy.taxeditor.dialogs;
 
 import java.text.Collator;
 import java.util.Comparator;
+import java.util.List;
 
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.IDialogSettings;
@@ -20,6 +23,7 @@ import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
@@ -28,16 +32,21 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
  * @created 04.06.2009
  * @version 1.0
  */
-public abstract class AbstractFilteredCdmResourceSelectionDialog extends
+public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends CdmBase> extends
                FilteredItemsSelectionDialog {
 
+
+       protected List<UuidAndTitleCache<T>> model;
+       private String settings;        
+       
        /**
         * @param shell
         */
-       public AbstractFilteredCdmResourceSelectionDialog(Shell shell, String title, boolean multi) {
+       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell, String title, boolean multi, String settings) {
                super(shell, multi);
                setTitle(title);
                setMessage("Use * for wildcard, or ? to see all entries");
+               this.settings = settings;
        }
        
        /* (non-Javadoc)
@@ -60,6 +69,19 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog extends
                        
                };
        }
+       
+       /* (non-Javadoc)
+       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
+       */
+       @Override
+       protected void fillContentProvider(AbstractContentProvider contentProvider,
+               ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
+               throws CoreException {
+               progressMonitor.beginTask("Looking for names", 1000); // Why no progress monitor?
+               for(UuidAndTitleCache<T> element : model){
+                       contentProvider.add(element, itemsFilter);
+               }
+       }
 
        /* (non-Javadoc)
         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings()
@@ -108,7 +130,20 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog extends
                
        }
        
-       public abstract String getSettings();
+       /**
+       * @return
+       */
+       protected UuidAndTitleCache getSelectedUuidAndTitleCache() {
+               Object[] result = getResult();
+               return result[0] == null ? null : (UuidAndTitleCache) result[0];
+       }
+       
+       public String getSettings()  {
+               if(settings == null){
+                       throw new IllegalStateException("No SETTINGS set.");
+               }
+               return settings;
+       }
        
        public class FilteredCdmResourceLabelProvider extends LabelProvider {
                public String getText(Object element) {
@@ -118,4 +153,5 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog extends
                        return ((UuidAndTitleCache) element).getTitleCache();
                }                       
        };
+
 }
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AgentFilteredSelectionDialog.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/AgentFilteredSelectionDialog.java
new file mode 100644 (file)
index 0000000..0568414
--- /dev/null
@@ -0,0 +1,76 @@
+// $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.dialogs;
+
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Sep 10, 2009
+ * @version 1.0
+ */
+public class AgentFilteredSelectionDialog extends
+               AbstractFilteredCdmResourceSelectionDialog<AgentBase> {
+       private static final Logger logger = Logger
+                       .getLogger(AgentFilteredSelectionDialog.class);
+       
+       /**
+       * @param taxon
+       * @return
+       */
+       public static AgentBase selectAgent(Shell shell) {
+               FilteredNameSelectionDialog dialog = new FilteredNameSelectionDialog(shell, 
+                               "Choose a name", false);
+               if (dialog.open() == Window.CANCEL) {
+                       return null;
+               }
+               
+               UUID agentUuid = dialog.getSelectedUuidAndTitleCache().getUuid();
+               
+               if(agentUuid == null){
+                       return null;
+               }
+               
+               return CdmStore.getAgentService().getAgentByUuid(agentUuid);
+       }
+       
+       /**
+       * @param shell
+       * @param title
+       */
+       protected AgentFilteredSelectionDialog(Shell shell, String title, boolean multi) {
+               super(shell, title, multi, AgentFilteredSelectionDialog.class.getCanonicalName());
+               
+               ILabelProvider labelProvider =  new FilteredCdmResourceLabelProvider();
+               setListLabelProvider(labelProvider);
+               setDetailsLabelProvider(labelProvider);
+               
+               model = CdmStore.getAgentService().getUuidAndTitleCache();
+       }
+       
+       /* (non-Javadoc)
+       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)
+       */
+       @Override
+       protected Control createExtendedContentArea(Composite parent) {
+               return null;
+       }
+}
index bbc6d1f845db2d8ab23bc5ca97459feca69eb8f8..0a41c5fc9f8f24f2f30d07c2b4027368656fbaad 100644 (file)
 
 package eu.etaxonomy.taxeditor.dialogs;
 
-import java.util.List;
 import java.util.UUID;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -31,12 +27,10 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 04.06.2009
  * @version 1.0
  */
-public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog {
+public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<TaxonNameBase> {
        private static final Logger logger = Logger
        .getLogger(FilteredNameSelectionDialog.class);
 
-       public static final String SETTINGS = FilteredNameSelectionDialog.class.getCanonicalName();
-       
        /**
        * @param taxon
        * @return
@@ -48,7 +42,7 @@ public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSele
                        return null;
                }
                
-               UUID nameUuid = dialog.getNameUuidAndTitleCache().getUuid();
+               UUID nameUuid = dialog.getSelectedUuidAndTitleCache().getUuid();
                
                if(nameUuid == null){
                        return null;
@@ -57,41 +51,18 @@ public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSele
                return CdmStore.getNameService().getTaxonNameByUuid(nameUuid);
        }
        
-       private List<UuidAndTitleCache> allTaxonNameBases;      
-       
        /**
        * @param shell
        * @param title
        */
        protected FilteredNameSelectionDialog(Shell shell, String title, boolean multi) {
-               super(shell, title, multi);
+               super(shell, title, multi, FilteredNameSelectionDialog.class.getCanonicalName());
                
-               ILabelProvider labelProvider = new FilteredCdmResourceLabelProvider();
+               ILabelProvider labelProvider =  new FilteredCdmResourceLabelProvider();
                setListLabelProvider(labelProvider);
                setDetailsLabelProvider(labelProvider);
                
-               allTaxonNameBases = CdmStore.getNameService().getUuidAndTitleCacheOfNames();
-       }
-       
-       /* (non-Javadoc)
-       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
-       */
-       @Override
-       protected void fillContentProvider(AbstractContentProvider contentProvider,
-               ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
-               throws CoreException {
-               progressMonitor.beginTask("Looking for names", 1000); // Why no progress monitor?
-               for(UuidAndTitleCache name : allTaxonNameBases){
-                       contentProvider.add(name, itemsFilter);
-               }
-       }
-       
-       /**
-       * @return
-       */
-       private UuidAndTitleCache getNameUuidAndTitleCache() {
-               Object[] result = getResult();
-               return result[0] == null ? null : (UuidAndTitleCache) result[0];
+               model = CdmStore.getNameService().getUuidAndTitleCache();
        }
        
        /* (non-Javadoc)
@@ -101,15 +72,4 @@ public class FilteredNameSelectionDialog extends AbstractFilteredCdmResourceSele
        protected Control createExtendedContentArea(Composite parent) {
                return null;
        }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getSettings()
-        */
-       @Override
-       public String getSettings()  {
-               if(SETTINGS == null){
-                       throw new IllegalStateException("No SETTINGS set.");
-               }
-               return SETTINGS;
-       }
 }
index ed5f17458bce7cb564629e4ec4940b2e9ac38bc1..8e2813ad3395c16b1d90c51d22225999820786a9 100644 (file)
 
 package eu.etaxonomy.taxeditor.dialogs;
 
-import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 
 import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -33,12 +28,11 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class FilteredReferenceSelectionDialog extends
-                                                       AbstractFilteredCdmResourceSelectionDialog {
+                                                       AbstractFilteredCdmResourceSelectionDialog<ReferenceBase> {
        
        private static final Logger logger = Logger
        .getLogger(FilteredReferenceSelectionDialog.class);
 
-       public static final String SETTINGS = FilteredReferenceSelectionDialog.class.getCanonicalName();
        
        /**
        * @param taxon
@@ -51,7 +45,7 @@ public class FilteredReferenceSelectionDialog extends
                        return null;
                }
                
-               UUID referenceUuid = dialog.getReferenceUuidAndTitleCache().getUuid();
+               UUID referenceUuid = dialog.getSelectedUuidAndTitleCache().getUuid();
                
                if(referenceUuid == null){
                        return null;
@@ -59,42 +53,19 @@ public class FilteredReferenceSelectionDialog extends
                
                return CdmStore.getReferenceService().getReferenceByUuid(referenceUuid); 
        }
-       
-       private List<UuidAndTitleCache> allReferenceBases;      
-       
+
        /**
        * @param shell
        * @param title
        */
        protected FilteredReferenceSelectionDialog(Shell shell, String title, boolean multi) {
-               super(shell, title, multi);
+               super(shell, title, multi, FilteredReferenceSelectionDialog.class.getCanonicalName());
                
                ILabelProvider labelProvider = new FilteredCdmResourceLabelProvider();
                setListLabelProvider(labelProvider);
                setDetailsLabelProvider(labelProvider);
                
-               allReferenceBases = CdmStore.getReferenceService().getUuidAndTitleCacheOfReferences();
-       }
-       
-       /* (non-Javadoc)
-       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
-       */
-       @Override
-       protected void fillContentProvider(AbstractContentProvider contentProvider,
-               ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
-               throws CoreException {
-               progressMonitor.beginTask("Looking for references", 1000); // Why no progress monitor?
-               for(UuidAndTitleCache reference : allReferenceBases){
-                       contentProvider.add(reference, itemsFilter);
-               }
-       }
-       
-       /**
-       * @return
-       */
-       private UuidAndTitleCache getReferenceUuidAndTitleCache() {
-               Object[] result = getResult();
-               return result[0] == null ? null : (UuidAndTitleCache) result[0];
+               model = CdmStore.getReferenceService().getUuidAndTitleCache();
        }
        
        /* (non-Javadoc)
@@ -105,15 +76,4 @@ public class FilteredReferenceSelectionDialog extends
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getSettings()
-        */
-       @Override
-       public String getSettings()  {
-               if(SETTINGS == null){
-                       throw new IllegalStateException("No SETTINGS set.");
-               }
-               return SETTINGS;
-       }
-
 }
index f727e2eedcef3aa0e452701f7e5b923b5abddb80..a12dbcda26c45ee3082fc718c8ceef4c410ecc89 100644 (file)
@@ -4,7 +4,6 @@
 package eu.etaxonomy.taxeditor.dialogs;\r
 \r
 import java.util.List;\r
-import java.util.Map;\r
 import java.util.UUID;\r
 \r
 import org.apache.log4j.Logger;\r
@@ -37,7 +36,6 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
        private static final Logger logger = Logger\r
                        .getLogger(FilteredTaxonNodeSelectionDialog.class);\r
 \r
-       public static final String SETTINGS = FilteredTaxonNodeSelectionDialog.class.getCanonicalName();\r
        \r
        /**\r
         * @param taxon\r
@@ -52,7 +50,7 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
                        return null;\r
                }\r
                \r
-               UUID taxonNodeUuid = dialog.getTaxonNodeUuidAndTitleCache().getUuid();\r
+               UUID taxonNodeUuid = dialog.getSelectedUuidAndTitleCache().getUuid();\r
                \r
                if(taxonNodeUuid != null){\r
                        return CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);\r
@@ -77,7 +75,7 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
         * @param title\r
         */\r
        protected FilteredTaxonNodeSelectionDialog(Shell shell, String title, List<UUID> excludeTaxa, boolean multi) {\r
-               super(shell, title, multi);\r
+               super(shell, title, multi, FilteredTaxonNodeSelectionDialog.class.getCanonicalName());\r
                \r
                this.excludeTaxa = excludeTaxa;\r
                taxonomicTrees = CdmStore.getTaxonService().listTaxonomicTrees(null, null, null, null);\r
@@ -113,14 +111,6 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
                        }\r
                }\r
        }\r
-               \r
-       /**\r
-        * @return\r
-        */\r
-       private UuidAndTitleCache getTaxonNodeUuidAndTitleCache() {\r
-               Object[] result = getResult();\r
-               return result[0] == null ? null : (UuidAndTitleCache) result[0];\r
-       }\r
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)\r
@@ -171,15 +161,4 @@ public class FilteredTaxonNodeSelectionDialog extends AbstractFilteredCdmResourc
                \r
                return taxonomicTreeSelection;\r
        }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getSettings()\r
-        */\r
-       @Override\r
-       public String getSettings()  {\r
-               if(SETTINGS == null){\r
-                       throw new IllegalStateException("No SETTINGS set.");\r
-               }\r
-               return SETTINGS;\r
-       }\r
 }
\ No newline at end of file
index 50ff7fb69537f36a3a8bb4f5831896c6957148f3..3783458b6975ed6b4f8ea8908dfdbea67ca9cbfa 100644 (file)
@@ -13,14 +13,11 @@ package eu.etaxonomy.taxeditor.io;
 import org.apache.log4j.Logger;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbenchPart;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
index 88e84ba81a36de0726e73d6d5f3e871cf72604be..15f9c88bebf306a3e0ac0a85948afe2a288cbadc 100644 (file)
@@ -21,6 +21,7 @@ import org.springframework.security.providers.ProviderManager;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.ILocationService;
 import eu.etaxonomy.cdm.api.service.INameService;
@@ -232,6 +233,8 @@ public class CdmStore{
        
        public static ICommonService getCommonService() { return getDefault().getApplicationControllerInternal().getCommonService(); }
        
+       public static IAgentService getAgentService() { return getDefault().getApplicationControllerInternal().getAgentService(); }
+       
        
        public static IEditGeoService getGeoService(){
                return (IEditGeoService) getDefault().getApplicationControllerInternal().getBean("editGeoService");