Added FeaturePreferences to enable user to choose which Features to display in the...
authorp.ciardelli <p.ciardelli@localhost>
Wed, 17 Sep 2008 12:38:57 +0000 (12:38 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 17 Sep 2008 12:38:57 +0000 (12:38 +0000)
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/TaxEditorPlugin.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/CdmPreferences.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/InitializeDbPreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.java

index 91c439aa4bbe631de260c7374d7a239a7104c2d0..5529b921385037590c049a06b03e6eac90717cc7 100644 (file)
@@ -500,7 +500,9 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/Sea
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeLabelProvider.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/CdmPreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/InitializeDbPreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.java -text
index 49688bb85c6cdfbd48d0d64b595e057c537d5852..ac4602e97fb717b9a663893a69fca4a9ad09b49b 100644 (file)
@@ -467,22 +467,22 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
        /* (non-Javadoc)\r
         * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeDefaultPreferences(org.eclipse.jface.preference.IPreferenceStore)\r
         */\r
-       protected void initializeDefaultPreferences(IPreferenceStore store) {\r
-               // Platform.getPreferencesService().getBoolean(qualifier, key,\r
-               // defaultValue, contexts)\r
-               store.setDefault(ITaxEditorConstants.CODE_PREFERENCE,\r
-                               ITaxEditorConstants.DEFAULT_CODE_PREFERENCE);\r
-               \r
-               // Set preferences to display all features\r
-               TermVocabulary<Feature> features = descriptionService.getDefaultFeatureVocabulary();\r
-               for (Feature feature : features) {\r
-                       String preferenceKey = ITaxEditorConstants.FEATURE_PREFERENCE \r
-                               . concat(".")\r
-                               . concat(feature.getUuid().toString());\r
-                       store.setDefault(preferenceKey, true);\r
-               }\r
-               \r
-       }\r
+//     protected void initializeDefaultPreferences(IPreferenceStore store) {\r
+//             // Platform.getPreferencesService().getBoolean(qualifier, key,\r
+//             // defaultValue, contexts)\r
+//             store.setDefault(ITaxEditorConstants.CODE_PREFERENCE,\r
+//                             ITaxEditorConstants.DEFAULT_CODE_PREFERENCE);\r
+//             \r
+//             // Set preferences to display all features\r
+//             TermVocabulary<Feature> features = descriptionService.getDefaultFeatureVocabulary();\r
+//             for (Feature feature : features) {\r
+//                     String preferenceKey = ITaxEditorConstants.FEATURE_PREFERENCE \r
+//                             . concat(".")\r
+//                             . concat(feature.getUuid().toString());\r
+//                     store.setDefault(preferenceKey, true);\r
+//             }\r
+//             \r
+//     }\r
 \r
        /***************************************************************************\r
         * TAXONOMIC TREE\r
index d4d7693d0082953cf5e8204f4c2672e24e4f00e2..1eba4424f546ecd4b7387f9be820c34f320c806d 100644 (file)
@@ -9,10 +9,14 @@
 \r
 package eu.etaxonomy.taxeditor;\r
 \r
+import java.util.HashSet;\r
+import java.util.Set;\r
+\r
 import org.apache.log4j.Logger;\r
 import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.OperationHistoryFactory;\r
+import org.eclipse.jface.preference.IPreferenceStore;\r
 import org.eclipse.jface.viewers.TreeViewer;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
@@ -30,6 +34,12 @@ import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.operations.IWorkbenchOperationSupport;\r
 import org.eclipse.ui.views.properties.PropertySheet;\r
 \r
+import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.editor.CompositeBorderDecorator;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupComposite;\r
@@ -48,6 +58,8 @@ import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;
 public class UiUtil {\r
        private static final Logger logger = Logger.getLogger(UiUtil.class);\r
 \r
+       private static Set<Feature> preferredFeatureSet;\r
+       \r
        public static IViewPart getPropertySheet() {\r
                for (IViewReference reference : getActivePage().getViewReferences()) {\r
                        if (reference.getId().equals(IPageLayout.ID_PROP_SHEET)) {\r
@@ -233,4 +245,116 @@ public class UiUtil {
                new CompositeBorderDecorator(composite, managedForm);\r
                return composite;\r
        }\r
+       \r
+       public static IPreferenceStore getPrefStore() {\r
+               return TaxEditorPlugin.getDefault().getPreferenceStore();\r
+       }\r
+       \r
+       /**\r
+        * Returns a <code>Set</code> of the <code>Feature</code>s that the user has chosen\r
+        * to have shown in preferences.\r
+        * </p>\r
+        * <p>\r
+        * <code>Feature</code>s are shown unless otherwise specified.\r
+        * </p>\r
+        * @return\r
+        */\r
+       public static Set<Feature> getPreferredFeatures() {\r
+               \r
+               // Initialize preferredFeatureSet as necessary\r
+               if (preferredFeatureSet == null) {\r
+                       \r
+                       preferredFeatureSet = new HashSet<Feature>();   \r
+                       \r
+                       TermVocabulary<Feature> features = CdmUtil.getDescriptionService().\r
+                                       getDefaultFeatureVocabulary();\r
+                       for (Feature feature : features) {\r
+                               \r
+                               // If the feature is set to show, add it to preferredFeatureSet\r
+                               if (getFeaturePreference(feature)) {\r
+                                       preferredFeatureSet.add(feature);\r
+                               }\r
+                       }\r
+                       \r
+               }\r
+               return preferredFeatureSet;\r
+       }\r
+       \r
+       /**\r
+        * True if <code>feature</code> is set to "show" in preferences.\r
+        * \r
+        * @param feature\r
+        * @return\r
+        */\r
+       public static boolean getFeaturePreference(Feature feature) {\r
+               \r
+               String preferenceKey = getPreferenceKey(feature);\r
+               \r
+               // If feature does not yet have a pref, set it to true\r
+               if (!getPrefStore().contains(preferenceKey)) {\r
+                       getPrefStore().setDefault(preferenceKey, true);\r
+               }\r
+               \r
+               return getPrefStore().getBoolean(preferenceKey);\r
+       }\r
+       \r
+       public static void setFeaturePreference(Feature feature, boolean show) {\r
+               getPrefStore().setValue(getPreferenceKey(feature), show);\r
+       }\r
+       \r
+       /**\r
+        * Construct a unique key using feature's Uuid\r
+        * \r
+        * @param feature\r
+        * @return\r
+        */\r
+       private static String getPreferenceKey(Feature feature) {\r
+               return ITaxEditorConstants.FEATURE_PREFERENCE \r
+                               . concat(".")\r
+                               . concat(feature.getUuid().toString());\r
+       }\r
+\r
+       /**\r
+        * @return\r
+        */\r
+       public static NonViralName getPreferredNameClassInstance() {\r
+               String nameCodePreference = TaxEditorPlugin.getDefault().getPreferenceStore().getString(ITaxEditorConstants.CODE_PREFERENCE);\r
+               \r
+               // Check whether name code preference needs to be initialized\r
+               if (nameCodePreference == null || nameCodePreference.equals("")) {\r
+                       nameCodePreference = ITaxEditorConstants.DEFAULT_CODE_PREFERENCE;\r
+                       UiUtil.getPrefStore().setValue(ITaxEditorConstants.CODE_PREFERENCE, \r
+                                       nameCodePreference);\r
+               }\r
+               \r
+               if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICBN)) {\r
+                       return BotanicalName.NewInstance(null);\r
+               } else if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICZN)) {\r
+                       return ZoologicalName.NewInstance(null);                        \r
+               }\r
+               return NonViralName.NewInstance(null);\r
+       }\r
+       \r
+       /**\r
+        * @return\r
+        */\r
+       public static NomenclaturalCode getPreferredNomenclaturalCode() {\r
+\r
+               String nameCodePreference = TaxEditorPlugin.getDefault().getPreferenceStore().getString(ITaxEditorConstants.CODE_PREFERENCE);\r
+               \r
+               // Check whether name code preference needs to be initialized\r
+               if (nameCodePreference == null || nameCodePreference.equals("")) {\r
+                       nameCodePreference = ITaxEditorConstants.DEFAULT_CODE_PREFERENCE;\r
+                       TaxEditorPlugin.getDefault().getPreferenceStore().setValue(ITaxEditorConstants.CODE_PREFERENCE, \r
+                                       nameCodePreference);\r
+               }\r
+               \r
+               if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICBN)) {\r
+                       return NomenclaturalCode.ICBN();\r
+               } else if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICZN)) {\r
+                       return NomenclaturalCode.ICZN();\r
+               }\r
+               return null;\r
+       }\r
+\r
 }
\ No newline at end of file
index 1feed627484d1baaea5df05f494d1f4601d8e42a..f68bb4f1b7f999d40501ce5e6c003b3c49ad47c9 100644 (file)
@@ -13,7 +13,6 @@ import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.Assert;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.MenuManager;\r
-import org.eclipse.jface.preference.IPreferenceStore;\r
 import org.eclipse.jface.text.Document;\r
 import org.eclipse.jface.text.source.SourceViewer;\r
 import org.eclipse.swt.SWT;\r
@@ -23,12 +22,11 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.IManagedForm;\r
 import org.eclipse.ui.forms.widgets.TableWrapData;\r
 \r
-import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.ui.description.AddDescriptionElementCompositeAction;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.editor.EditorGroupedComposite;\r
@@ -58,8 +56,6 @@ public class DescriptionLabelComposite extends EditorGroupedComposite {
                        .getImage(ITaxEditorConstants.BLACK_SQUARE_ICON);       \r
        \r
        private static final String EMPTY_NAME_PROMPT = "Click to add description label";\r
-\r
-//     private TaxonDescription taxonDescription;\r
        \r
        public DescriptionLabelComposite(Composite parent, IManagedForm managedForm, TaxonDescription taxonDescription) {\r
                super(parent, managedForm);\r
@@ -89,8 +85,6 @@ public class DescriptionLabelComposite extends EditorGroupedComposite {
                \r
                Assert.isTrue((data instanceof TaxonDescription), \r
                                "DescriptionLabelComposite's data field must contain a TaxonDescription object");\r
-\r
-//             this.taxonDescription = (TaxonDescription) data; \r
                \r
                String label = ((TaxonDescription) data).getTitleCache();\r
                getTextViewer().getTextWidget().setText(label);\r
@@ -103,20 +97,9 @@ public class DescriptionLabelComposite extends EditorGroupedComposite {
                \r
                Composite parentComposite = this.getParent();\r
                \r
-               IPreferenceStore store = TaxEditorPlugin.getDefault().getPreferenceStore();\r
-               \r
-               IDescriptionService descriptionService = TaxEditorPlugin.getDefault().getDescriptionService();\r
-               TermVocabulary<Feature> features = descriptionService.getDefaultFeatureVocabulary();\r
-               for (Feature feature : features) {\r
-                       \r
-                       String preferenceKey = ITaxEditorConstants.FEATURE_PREFERENCE \r
-                                       . concat(".")\r
-                                       . concat(feature.getUuid().toString());\r
-                       \r
-                       if (store.getBoolean(preferenceKey)) {\r
-                               Action action = new AddDescriptionElementCompositeAction(parentComposite, managedForm, feature);\r
-                               menuManager.add(action);\r
-                       }\r
+               for (Feature feature : UiUtil.getPreferredFeatures()) {\r
+                       Action action = new AddDescriptionElementCompositeAction(parentComposite, managedForm, feature);\r
+                       menuManager.add(action);\r
                }\r
                contextMenu.addSubmenu(menuManager);\r
        }\r
index 3c888d9eddd10c74b42bc5194224856e2b49b663..1f15020d5d911b9252ce6254417950cc3cecefca 100644 (file)
@@ -14,10 +14,9 @@ import java.util.Set;
 \r
 import org.apache.log4j.Logger;\r
 \r
+import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
-import eu.etaxonomy.cdm.model.description.Feature;\r
-import eu.etaxonomy.cdm.model.name.BotanicalName;\r
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
@@ -25,7 +24,6 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
@@ -33,8 +31,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.cdm.strategy.parser.INonViralNameParser;\r
 import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;\r
-import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -240,7 +238,7 @@ public class CdmUtil {
                        NomenclaturalCode nomCode, Rank rank) {\r
                \r
                if (nomCode == null) {\r
-                       nomCode = getPreferredNomenclaturalCode();\r
+                       nomCode = UiUtil.getPreferredNomenclaturalCode();\r
                }\r
                \r
 //             logger.warn("Nomenclatural code: " + nomCode.toString());\r
@@ -275,48 +273,7 @@ public class CdmUtil {
                                rank, makeEmpty);\r
        }\r
 \r
-       /**\r
-        * @return\r
-        */\r
-       public static NomenclaturalCode getPreferredNomenclaturalCode() {\r
 \r
-               String nameCodePreference = TaxEditorPlugin.getDefault().getPreferenceStore().getString(ITaxEditorConstants.CODE_PREFERENCE);\r
-               \r
-               // Check whether name code preference needs to be initialized\r
-               if (nameCodePreference == null || nameCodePreference.equals("")) {\r
-                       nameCodePreference = ITaxEditorConstants.DEFAULT_CODE_PREFERENCE;\r
-                       TaxEditorPlugin.getDefault().getPreferenceStore().setValue(ITaxEditorConstants.CODE_PREFERENCE, \r
-                                       nameCodePreference);\r
-               }\r
-               \r
-               if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICBN)) {\r
-                       return NomenclaturalCode.ICBN();\r
-               } else if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICZN)) {\r
-                       return NomenclaturalCode.ICZN();\r
-               }\r
-               return null;\r
-       }\r
-       \r
-       /**\r
-        * @return\r
-        */\r
-       public static NonViralName getPreferredNameClassInstance() {\r
-               String nameCodePreference = TaxEditorPlugin.getDefault().getPreferenceStore().getString(ITaxEditorConstants.CODE_PREFERENCE);\r
-               \r
-               // Check whether name code preference needs to be initialized\r
-               if (nameCodePreference == null || nameCodePreference.equals("")) {\r
-                       nameCodePreference = ITaxEditorConstants.DEFAULT_CODE_PREFERENCE;\r
-                       TaxEditorPlugin.getDefault().getPreferenceStore().setValue(ITaxEditorConstants.CODE_PREFERENCE, \r
-                                       nameCodePreference);\r
-               }\r
-               \r
-               if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICBN)) {\r
-                       return BotanicalName.NewInstance(null);\r
-               } else if (nameCodePreference.equals(ITaxEditorConstants.CODE_PREFERENCE_ICZN)) {\r
-                       return ZoologicalName.NewInstance(null);                        \r
-               }\r
-               return NonViralName.NewInstance(null);\r
-       }\r
        \r
        /**\r
         * @return\r
@@ -336,8 +293,7 @@ public class CdmUtil {
        public static void makeTaxonSynonym(Taxon oldTaxon, Taxon newAcceptedTaxon,\r
                        SynonymRelationshipType synonymType, ReferenceBase citation,\r
                        String citationMicroReference) {\r
-               ITaxonService taxonService = TaxEditorPlugin.getDefault()\r
-                               .getTaxonService();\r
+               ITaxonService taxonService = getTaxonService();\r
                taxonService.makeTaxonSynonym(oldTaxon, newAcceptedTaxon, synonymType,\r
                                citation, citationMicroReference);\r
        }\r
@@ -348,11 +304,23 @@ public class CdmUtil {
         */\r
        public static Set<TaxonNameBase> getNameByName(String searchText) {\r
                Set<TaxonNameBase> resultsSet = new HashSet<TaxonNameBase>();\r
-               resultsSet.addAll(TaxEditorPlugin.getDefault().getNameService()\r
+               resultsSet.addAll(getNameService()\r
                                .getNamesByName(searchText.replace("*", "%")));\r
                return resultsSet;\r
        }\r
+       \r
+       public static INameService getNameService() {\r
+               return TaxEditorPlugin.getDefault().getNameService();\r
+       }\r
+       \r
+       public static ITaxonService getTaxonService() {\r
+               return TaxEditorPlugin.getDefault().getTaxonService();\r
+       }\r
 \r
+       public static IDescriptionService getDescriptionService() {\r
+               return TaxEditorPlugin.getDefault().getDescriptionService();\r
+       }\r
+       \r
        /**\r
         * @param searchText\r
         * @param taxon\r
@@ -360,12 +328,10 @@ public class CdmUtil {
         */\r
        public static Set<TaxonNameBase> getNameByNameForTaxonContext(String searchText, Taxon taxon) {\r
                Set<TaxonNameBase> resultsSet = new HashSet<TaxonNameBase>();\r
-//             resultsSet.addAll(TaxEditorPlugin.getDefault().getNameService()\r
-//                             .getNamesByName(searchText.replace("*", "%")));\r
-               resultsSet.addAll(TaxEditorPlugin.getDefault().getNameService().\r
-                               getNamesByName(searchText.replace("*", "%"), taxon));\r
+               resultsSet.addAll(getNameService().getNamesByName\r
+                               (searchText.replace("*", "%"), taxon));\r
                return resultsSet;\r
        }\r
        \r
-//     public static TermVocabulary<Feature> \r
+\r
 }\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/CdmPreferences.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/CdmPreferences.java
new file mode 100644 (file)
index 0000000..bbfb651
--- /dev/null
@@ -0,0 +1,54 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.preference;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.preference.PreferencePage;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.IWorkbenchPreferencePage;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 20.05.2008\r
+ * @version 1.0\r
+ */\r
+public class CdmPreferences extends PreferencePage implements\r
+               IWorkbenchPreferencePage {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(CdmPreferences.class);\r
+\r
+       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.cdm";\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)\r
+        */\r
+       @Override\r
+       protected Control createContents(Composite parent) {\r
+               \r
+               Composite container = new Composite(parent, SWT.NULL);\r
+               container.setLayout(new GridLayout());\r
+\r
+               //\r
+               return container;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)\r
+        */\r
+       @Override\r
+       public void init(IWorkbench workbench) {\r
+               // TODO Auto-generated method stub\r
+\r
+       }\r
+}\r
index 5eb85ed7a19c8fb3d1467fe87871f545fc69d4db..fb770ec96534814b21a6631ff69fb815a356b170 100644 (file)
@@ -6,26 +6,21 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
+\r
 package eu.etaxonomy.taxeditor.preference;\r
 \r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.preference.PreferencePage;\r
 import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.ui.IWorkbench;\r
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 \r
-import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-\r
 /**\r
  * @author p.ciardelli\r
- * @created 16.09.2008\r
+ * @created 20.05.2008\r
  * @version 1.0\r
  */\r
 public class DescriptionPreferences extends PreferencePage implements\r
@@ -34,76 +29,26 @@ public class DescriptionPreferences extends PreferencePage implements
                        .getLogger(DescriptionPreferences.class);\r
 \r
        public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.description";\r
-\r
-       private Button icznButton;\r
-       private Button icbnButton;      \r
        \r
-       private String preferredCode;\r
-       \r
-       /**\r
-        * Create the preference page\r
-        */\r
-       public DescriptionPreferences() {\r
-               super();\r
-       }\r
-\r
-       /**\r
-        * Create contents of the preference page\r
-        * @param parent\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)\r
         */\r
        @Override\r
-       public Control createContents(Composite parent) {\r
+       protected Control createContents(Composite parent) {\r
+               \r
                Composite container = new Composite(parent, SWT.NULL);\r
                container.setLayout(new GridLayout());\r
 \r
-               icbnButton = new Button(container, SWT.RADIO);\r
-               icbnButton.setText("Botanical (ICBN)");\r
-               icbnButton.addSelectionListener(new SelectionAdapter() {\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               preferredCode = ITaxEditorConstants.CODE_PREFERENCE_ICBN;\r
-                       }\r
-               });\r
-\r
-               icznButton = new Button(container, SWT.RADIO);\r
-               icznButton.setText("Zoological (ICZN)");\r
-               icznButton.addSelectionListener(new SelectionAdapter() {\r
-                       public void widgetSelected(SelectionEvent e) {\r
-                               preferredCode = ITaxEditorConstants.CODE_PREFERENCE_ICZN;\r
-                       }\r
-               });\r
-               \r
-               setButton(getPreferenceStore().getString(ITaxEditorConstants.CODE_PREFERENCE));         \r
-               \r
+               //\r
                return container;\r
        }\r
 \r
-       /**\r
-        * Initialize the preference page\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)\r
         */\r
+       @Override\r
        public void init(IWorkbench workbench) {\r
-               setPreferenceStore(TaxEditorPlugin.getDefault().getPreferenceStore());\r
-       }\r
-       \r
-       protected void performDefaults() {\r
-               setButton(ITaxEditorConstants.DEFAULT_CODE_PREFERENCE);\r
-       }\r
-       \r
-       public boolean performOk() {\r
-               TaxEditorPlugin.getDefault().getPreferenceStore().\r
-                               setValue(ITaxEditorConstants.CODE_PREFERENCE, preferredCode);\r
-               return true;\r
-       }\r
-       \r
-       private void setButton(String preferredCode) {\r
-               this.preferredCode = preferredCode;\r
-               \r
-               if (preferredCode.equals(ITaxEditorConstants.CODE_PREFERENCE_ICBN)) {           \r
-                       icbnButton.setSelection(true);\r
-                       icznButton.setSelection(false);\r
-               }\r
-               if (preferredCode.equals(ITaxEditorConstants.CODE_PREFERENCE_ICZN)) {\r
-                       icbnButton.setSelection(false);\r
-                       icznButton.setSelection(true);\r
-               }\r
+               // TODO Auto-generated method stub\r
+\r
        }\r
 }\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java
new file mode 100644 (file)
index 0000000..f80345e
--- /dev/null
@@ -0,0 +1,110 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.taxeditor.preference;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.preference.PreferencePage;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.IWorkbenchPreferencePage;\r
+\r
+import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 17.09.2008\r
+ * @version 1.0\r
+ */\r
+public class FeaturePreferences extends PreferencePage implements\r
+               IWorkbenchPreferencePage {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(FeaturePreferences.class);\r
+\r
+       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.feature";\r
+       \r
+       private Map<Feature, Button> featureButtons;\r
+\r
+       public FeaturePreferences() {\r
+               super();\r
+               setDescription("Choose which features you would like to use for descriptive elements.");\r
+       }\r
+\r
+\r
+       /**\r
+        * Create contents of the preference page\r
+        * @param parent\r
+        */\r
+       @Override\r
+       public Control createContents(Composite parent) {\r
+\r
+               featureButtons = new HashMap<Feature, Button>();\r
+               \r
+               Composite container = new Composite(parent, SWT.NULL);\r
+               final GridLayout gridLayout = new GridLayout();\r
+               gridLayout.numColumns = 3;\r
+               container.setLayout(gridLayout);\r
+\r
+               TermVocabulary<Feature> features = CdmUtil.getDescriptionService().\r
+                               getDefaultFeatureVocabulary();\r
+               for (Feature feature : features) {\r
+                       \r
+                       Button button = new Button(container, SWT.CHECK);\r
+                       button.setText(feature.getLabel());\r
+                       featureButtons.put(feature, button);\r
+                       \r
+                       if (UiUtil.getFeaturePreference(feature)) {\r
+                               button.setSelection(true);\r
+                       }\r
+               }\r
+               \r
+               return container;\r
+       }\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)\r
+        */\r
+       public void init(IWorkbench workbench) {\r
+               setPreferenceStore(UiUtil.getPrefStore());\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.preference.PreferencePage#performDefaults()\r
+        */\r
+       protected void performDefaults() {\r
+               \r
+               // Set all buttons to show feature\r
+               for (Button button : featureButtons.values()) {\r
+                       button.setSelection(true);\r
+               }\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.jface.preference.PreferencePage#performOk()\r
+        */\r
+       public boolean performOk() {\r
+               \r
+               for (Feature feature : featureButtons.keySet()) {\r
+                       Button button = featureButtons.get(feature);\r
+                       UiUtil.setFeaturePreference(feature, button.getSelection());\r
+               }\r
+               \r
+               return true;\r
+       }\r
+}\r
index 06f862cc385b2a3b8af694f9a641448ba4b9e127..503328ca7169b67670b171e1e3f763a58f6be268 100644 (file)
@@ -38,11 +38,9 @@ public class InitializeDbPreferences extends PreferencePage implements
 \r
        private boolean doReinitialize;\r
        \r
-       /**\r
-        * Create the preference page\r
-        */\r
        public InitializeDbPreferences() {\r
                super();\r
+               setDescription("If you choose this option, taxonomic tree will be empty next time the Editor is started.");\r
        }\r
 \r
        /**\r
@@ -51,6 +49,7 @@ public class InitializeDbPreferences extends PreferencePage implements
         */\r
        @Override\r
        public Control createContents(Composite parent) {\r
+\r
                Composite container = new Composite(parent, SWT.NULL);\r
                container.setLayout(new GridLayout());\r
 \r
index beb247748fc4ba2ec4fb3371c92b189487891480..0a0c2b712ac745407307e08ec61f7bd6e27e8ecd 100644 (file)
@@ -39,12 +39,10 @@ public class NomenclaturalCodePreferences extends PreferencePage implements
        private Button icbnButton;      \r
        \r
        private String preferredCode;\r
-       \r
-       /**\r
-        * Create the preference page\r
-        */\r
+               \r
        public NomenclaturalCodePreferences() {\r
                super();\r
+               setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified.");\r
        }\r
 \r
        /**\r
@@ -53,6 +51,8 @@ public class NomenclaturalCodePreferences extends PreferencePage implements
         */\r
        @Override\r
        public Control createContents(Composite parent) {\r
+               \r
+               \r
                Composite container = new Composite(parent, SWT.NULL);\r
                container.setLayout(new GridLayout());\r
 \r
index 1097d1365180375487a6efbe36be0e15289c1a0c..da00bfbc0a21c7c1b606a065500aa5ac56e8ffba 100644 (file)
@@ -13,10 +13,8 @@ import org.apache.log4j.Logger;
 import org.eclipse.jface.preference.PreferencePage;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Label;\r
 import org.eclipse.ui.IWorkbench;\r
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 \r
@@ -30,7 +28,7 @@ public class TaxonomicPreferences extends PreferencePage implements
        private static final Logger logger = Logger\r
                        .getLogger(TaxonomicPreferences.class);\r
 \r
-       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences";\r
+       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.taxonomic.preferences";\r
        \r
        /* (non-Javadoc)\r
         * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)\r