Features lists now sorted alphabetically. Added microreference, cache strings to...
authorp.ciardelli <p.ciardelli@localhost>
Thu, 2 Apr 2009 13:53:00 +0000 (13:53 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 2 Apr 2009 13:53:00 +0000 (13:53 +0000)
26 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/Messages.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNewTaxonEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/DescriptionController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PreferencesController.java [moved from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/PreferencesController.java with 92% similarity]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/ReferenceController.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/images/ImageComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/CdmParserController.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/handlers/AddTaxonomicChildHandler.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/ICdmSessionDataRepository.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeViewer.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/InitializeDbPreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/RankMenuPreferences.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/description/DescriptionElementPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/description/TaxonDescriptionPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NonViralNamePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/ScientificNamePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/type/wizard/ChooseNameTypeWizardPage.java

index 7d0cbbe7ee500f717432a957d1a9a5cbc1180edd..098746d2f466d450d9264793510786abf661544c 100644 (file)
@@ -440,9 +440,12 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/Ope
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationsListWizardAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNewTaxonEditorAction.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/DescriptionController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/EditorController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/GlobalController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PreferencesController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PropertySheetController.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/ReferenceController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/SearchController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/TreeController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/datasource/CdmDataSourceDialog.java -text
@@ -564,7 +567,6 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/Fea
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.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/PreferencesController.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/RankMenuPreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/TaxonomicPreferences.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/AnnotationPropertySource.java -text
index ab4e5d6ef534a5746f9ffa20e6c6f7b6afceafca..90e88d11da84244d629eb4c4c0c331dd71e526c3 100644 (file)
@@ -21,8 +21,8 @@ import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.taxeditor.controller.GlobalController;
+import eu.etaxonomy.taxeditor.controller.PreferencesController;
 import eu.etaxonomy.taxeditor.preference.InitNomenclaturalCodePrefDialog;
-import eu.etaxonomy.taxeditor.preference.PreferencesController;
 
 /** 
  * @author p.ciardelli
index ad1d69923150032269958ae3b4fc0f491c1a157a..079ee604ab5f6965e615f82887f749cb6d0cd6d5 100644 (file)
@@ -18,7 +18,7 @@ import eu.etaxonomy.cdm.model.name.BotanicalName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 \r
 /**\r
  * @author p.ciardelli\r
index 1698727234674cc774b0877459bbcb359300058b..344c29e732bf3f02b749b27bf2ae13b101dcb798 100644 (file)
@@ -19,9 +19,9 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 \r
 /**\r
  * Opens a name editor for a new, uninitialized taxon. \r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/DescriptionController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/DescriptionController.java
new file mode 100644 (file)
index 0000000..39c48df
--- /dev/null
@@ -0,0 +1,82 @@
+// $Id$\r
+/**\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.controller;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.TextData;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.04.2009\r
+ * @version 1.0\r
+ */\r
+public class DescriptionController {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(DescriptionController.class);\r
+\r
+       /**\r
+        * Returns whatever the element's title cache equivalent is,\r
+        * depending on its class.\r
+        * \r
+        * @param element\r
+        * @param language\r
+        * @return \r
+        */\r
+       public static String getCache(DescriptionElementBase element, \r
+                       Language language) {\r
+               String cache = null;\r
+               if (element instanceof TextData) {\r
+                       cache = ((TextData) element).getText(language);\r
+               }\r
+               return cache == null ? "" : cache;\r
+       }\r
+\r
+       /**\r
+        * Returns whatever the element's title cache equivalent is,\r
+        * depending on its class, using the default language.\r
+        * \r
+        * @param element\r
+        * @return \r
+        */\r
+       public static String getCache(DescriptionElementBase element) {\r
+               return getCache(element, Language.DEFAULT());\r
+       }\r
+       \r
+       /**\r
+        * Set whatever the element's title cache equivalent is,\r
+        * depending on its class.\r
+        * \r
+        * @param element\r
+        * @param value\r
+        * @param language\r
+        */\r
+       public static void setCache(DescriptionElementBase element,\r
+                       String value, Language language) {\r
+               if (element instanceof TextData) {\r
+                       ((TextData) element).putText(value, language);\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Set whatever the element's title cache equivalent is,\r
+        * depending on its class, using the default language.\r
+        * \r
+        * @param element\r
+        * @param value\r
+        */     \r
+       public static void setCache(DescriptionElementBase element,\r
+                       String value) {\r
+               setCache(element, value, Language.DEFAULT());\r
+       }\r
+}\r
index 8c5c9e19a22c6e33650da314732273c747252d5c..8ce7a33d1205599977675bc15bcf1ac0df1ed004 100644 (file)
@@ -39,7 +39,6 @@ import eu.etaxonomy.taxeditor.model.CdmUtil;
 import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 \r
 /**\r
  * @author n.hoffmann\r
index c6cdff4fda564463bd97b790b2856d3765553a12..f831d2d744de92c29c305893f0326b1818212a2e 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.controller;\r
 \r
 import java.net.URL;\r
+import java.util.List;\r
 import java.util.Set;\r
 import java.util.SortedSet;\r
 \r
@@ -37,7 +38,6 @@ import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.editor.images.UrlDialog;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 \r
 /**\r
  * A collection of useful methods related to the UI.\r
@@ -49,7 +49,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesController;
 public class GlobalController {\r
        private static final Logger logger = Logger.getLogger(GlobalController.class);\r
 \r
-       private static Set<Feature> preferredFeatureSet;\r
+       private static List<Feature> preferredFeatureSet;\r
        private static Set<Rank> preferredRankSet;\r
        \r
        /**\r
@@ -177,11 +177,11 @@ public class GlobalController {
                return statusLineManager.getProgressMonitor();\r
        }\r
 \r
-       public static Set<Feature> getPreferredFeatures() {\r
+       public static List<Feature> getPreferredFeatures() {\r
                return preferredFeatureSet;\r
        }\r
 \r
-       public static void setPreferredFeatures(Set<Feature> preferredFeatureSet) {\r
+       public static void setPreferredFeatures(List<Feature> preferredFeatureSet) {\r
                GlobalController.preferredFeatureSet = preferredFeatureSet;\r
        }\r
 \r
similarity index 92%
rename from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/PreferencesController.java
rename to eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/PreferencesController.java
index 97b6bb94e3b79f6160a2064259a016c2896036ad..7acbf93a13a810647a8c8631252de9295f4cd5ab 100644 (file)
@@ -7,11 +7,17 @@
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
 \r
-package eu.etaxonomy.taxeditor.preference;\r
+package eu.etaxonomy.taxeditor.controller;\r
 \r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.HashMap;\r
 import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Map;\r
 import java.util.Set;\r
 import java.util.SortedSet;\r
+import java.util.TreeMap;\r
 \r
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.preference.IPreferenceStore;\r
@@ -24,7 +30,6 @@ import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 \r
 /**\r
@@ -84,21 +89,20 @@ public class PreferencesController {
         * </p>\r
         * @return\r
         */\r
-       public static Set<Feature> getPreferredFeatures() {\r
+       public static List<Feature> getPreferredFeatures() {\r
                \r
                // Initialize preferredFeatureSet as necessary\r
                if (GlobalController.getPreferredFeatures() == null) {\r
-                       \r
-                       GlobalController.setPreferredFeatures(new HashSet<Feature>());  \r
-                                               \r
-                       for (Feature feature : CdmSessionDataRepository.getDefault().getFeatures()) {\r
                                \r
+                       GlobalController.setPreferredFeatures(new ArrayList<Feature>());\r
+                       for (Feature feature : CdmSessionDataRepository.getDefault().getFeatures()) {\r
+                       \r
                                // If the feature is set to show, add it to preferredFeatureSet\r
                                if (PreferencesController.getFeaturePreference(feature)) {\r
                                        GlobalController.addPreferredFeature(feature);\r
                                }\r
+                               \r
                        }\r
-                       \r
                }\r
                return GlobalController.getPreferredFeatures();\r
        }\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/ReferenceController.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/controller/ReferenceController.java
new file mode 100644 (file)
index 0000000..542a546
--- /dev/null
@@ -0,0 +1,43 @@
+// $Id$\r
+/**\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.controller;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;\r
+import eu.etaxonomy.cdm.model.reference.Generic;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.04.2009\r
+ * @version 1.0\r
+ */\r
+public class ReferenceController {\r
+       private static final Logger logger = Logger\r
+                       .getLogger(ReferenceController.class);\r
+\r
+       /**\r
+        * Returns the entity's citation. If none exists, gives the\r
+        * entity a Generic citation.\r
+        *  \r
+        * @param entity \r
+        * @return\r
+        */\r
+       public static ReferenceBase getOrCreateCitation(ReferencedEntityBase entity) {\r
+               ReferenceBase citation = entity.getCitation();\r
+               if (citation == null) {\r
+                       citation = Generic.NewInstance();\r
+                       entity.setCitation(citation);\r
+               }\r
+               return citation;\r
+       }\r
+}\r
index d56176067ecd787657602d594c2cc7c5692ccc2e..16dbae017fcf3f3ec0cc5eea486ed22d5332f5e3 100644 (file)
@@ -25,6 +25,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.controller.DescriptionController;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
@@ -92,12 +93,13 @@ public class DescriptionElementComposite extends GroupedComposite {
        private void initTextViewer() {\r
                \r
                String text = null;\r
-               if (element instanceof TextData) {\r
-                       text = ((TextData) element).getText(Language.DEFAULT());\r
-               }\r
-               if (text == null) {\r
-                       text = "";\r
-               }\r
+//             if (element instanceof TextData) {\r
+//                     text = ((TextData) element).getText(Language.DEFAULT());\r
+//             }\r
+//             if (text == null) {\r
+//                     text = "";\r
+//             }\r
+               text = DescriptionController.getCache(element);\r
                \r
                if (text.length() == 0) {\r
                        initEmptyText();\r
@@ -116,9 +118,14 @@ public class DescriptionElementComposite extends GroupedComposite {
        \r
        protected void parse(String text) {\r
                \r
-               if (getElement() instanceof TextData) {\r
-                       ((TextData) getElement()).putText(text, Language.DEFAULT());\r
-               }\r
+//             if (getElement() instanceof TextData) {\r
+//                     ((TextData) getElement()).putText(text, Language.DEFAULT());\r
+//                     \r
+//             }\r
+               DescriptionController.setCache(getElement(), text);\r
+               \r
+               // Manually refresh the property sheet to reflect changes\r
+               setSelection();\r
                \r
                setDirty(true);\r
        }\r
index 11507e10eb68098c117f204e7c173665bf5b8b3e..22d499fda9d05e85406c7573bd1e197a9775f983 100644 (file)
@@ -28,10 +28,10 @@ import eu.etaxonomy.taxeditor.ITaxEditorConstants;
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.editor.GroupedComposite;\r
 import eu.etaxonomy.taxeditor.operations.description.AddElementOperation;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 import eu.etaxonomy.taxeditor.propertysheet.description.TaxonDescriptionPropertySource;\r
 \r
 /**\r
@@ -115,7 +115,6 @@ public class DescriptionLabelComposite extends GroupedComposite {
                featuresMenu.addMenuListener(new IMenuListener() {\r
                        public void menuAboutToShow(IMenuManager manager) {\r
                                for (final Feature feature : PreferencesController.getPreferredFeatures()) {\r
-                                       \r
                                        String text = feature.getLabel();\r
                                        manager.add(new Action(text){\r
                                                \r
@@ -139,6 +138,10 @@ public class DescriptionLabelComposite extends GroupedComposite {
 \r
        protected void parse(String text) {\r
                getDescription().setTitleCache(text);\r
+               \r
+               // Manually refresh the property sheet to reflect changes\r
+               setSelection();\r
+               \r
                setDirty(true);         \r
        }\r
        \r
index 5d79256c7312a0374677fb202abd4067f3ffc6fe..a96bd24c6730e7958ce8c6e775087c02f65a0176 100644 (file)
@@ -64,7 +64,7 @@ public class ImageComposite extends GroupedComposite {
                this.url = url;\r
                \r
                setIsDraggable(false);\r
-               setIcon(AcceptedNameComposite.ACCEPTED_ICON);\r
+//             setIcon(AcceptedNameComposite.ACCEPTED_ICON);\r
                setIndent(AcceptedNameComposite.ACCEPTED_INDENT);\r
 \r
                createImage(url);\r
index 8b784b318d3769c9dc73e95e7513250430173a76..c53f470089cb84ad5fc074d037e3a63bd9d72087 100644 (file)
@@ -17,7 +17,7 @@ import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.strategy.parser.INonViralNameParser;\r
 import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 \r
 /**\r
  * @author p.ciardelli\r
index 727281108143b11e7b76ee0eb7e231467ba4e3d5..c9250d2b9731cfc8956206e8694e6bc5b36e6b3b 100644 (file)
@@ -18,8 +18,8 @@ import org.eclipse.core.commands.IHandler;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.controller.TreeController;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 \r
 /**\r
  * @author n.hoffmann\r
index 01127306aa0edaa8ef778013b25047b0af64b1aa..f33674f49b31762fe5fd7244717723ff3c2dcb53 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.model;
 \r
 import java.util.ArrayList;\r
 import java.util.Collection;\r
+import java.util.Collections;\r
 import java.util.HashMap;\r
 import java.util.HashSet;\r
 import java.util.List;\r
@@ -29,9 +30,7 @@ import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.swt.widgets.Display;\r
 \r
 import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
-import eu.etaxonomy.cdm.api.service.IReferenceService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
-import eu.etaxonomy.cdm.api.service.ReferenceServiceImpl;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
@@ -43,6 +42,7 @@ import eu.etaxonomy.cdm.model.name.TypeDesignationStatus;
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.controller.TreeController;\r
 import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
 import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
@@ -75,7 +75,7 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
 \r
        private List<ICdmTaxonSetListener> listeners;\r
 \r
-       private TermVocabulary<Feature> features;\r
+       private List<Feature> features;\r
 \r
        private SortedSet<Rank> ranks;\r
 \r
@@ -370,10 +370,25 @@ public class CdmSessionDataRepository implements ICdmSessionDataRepository {
        }\r
        \r
        \r
-       public TermVocabulary<Feature> getFeatures() {\r
+       public List<Feature> getFeatures() {\r
                if (features == null) {\r
-                       features = getApplicationController().getDescriptionService().\r
-                                       getDefaultFeatureVocabulary();\r
+                       \r
+                       Map<String, Feature> featuresMap = new HashMap<String, Feature>();\r
+                                                                       \r
+                       for (Feature feature : getApplicationController().getDescriptionService().\r
+                                       getDefaultFeatureVocabulary()) {\r
+                               featuresMap.put(feature.getLabel(), feature);\r
+                       }\r
+                       \r
+                       // Alphabetize features by label\r
+                       List<String> labels = new ArrayList<String>();\r
+                       labels.addAll(featuresMap.keySet());\r
+                       Collections.sort(labels);\r
+                       \r
+                       features = new ArrayList<Feature>();\r
+                       for (String label : labels) {\r
+                               features.add(featuresMap.get(label));\r
+                       }\r
                }\r
                return features;\r
        }\r
index b71dac2b4e353cf5c357b48b0e0f0f71f90a261f..37d0df6b7256b55060b52ef46a25f6602fefbfeb 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.model;\r
 \r
 import java.util.Collection;\r
+import java.util.List;\r
 import java.util.Set;\r
 import java.util.SortedSet;\r
 \r
@@ -129,7 +130,7 @@ public interface ICdmSessionDataRepository {
 \r
        public void setTaxonomicParent(Taxon taxon, Taxon newParentTaxon);\r
        \r
-       public TermVocabulary<Feature> getFeatures();\r
+       public List<Feature> getFeatures();\r
        \r
        public SortedSet<Rank> getRanks();\r
        \r
index 367303ada5547bea681c72d1f59d6c1ee902e326..f96edb304373234466baf0f839c8325238f96a66 100644 (file)
@@ -60,12 +60,12 @@ import eu.etaxonomy.taxeditor.actions.ui.OpenNewTaxonEditorAction;
 import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.model.ICdmTaxonSetListener;\r
 import eu.etaxonomy.taxeditor.operations.MoveTaxonOperation;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 \r
 /**\r
  * Taxon tree viewer which responds to events within individual taxa.\r
index 23e95c9e5b803d5a9019ac7f812a3c0f34fc854b..82993a8f79b2c7b3b772e2aa431fdb00678ccd0f 100644 (file)
@@ -9,6 +9,7 @@
 package eu.etaxonomy.taxeditor.preference;\r
 \r
 import java.util.HashMap;\r
+import java.util.List;\r
 import java.util.Map;\r
 \r
 import org.apache.log4j.Logger;\r
@@ -21,10 +22,9 @@ import org.eclipse.swt.widgets.Control;
 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.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -60,7 +60,7 @@ public class FeaturePreferences extends PreferencePage implements
                gridLayout.numColumns = 3;\r
                container.setLayout(gridLayout);\r
 \r
-               TermVocabulary<Feature> features = \r
+               List<Feature> features = \r
                                CdmSessionDataRepository.getDefault().getFeatures();\r
                \r
                for (Feature feature : features) {\r
index 84962198c185ab31f9af1cb679b8d5fffc190932..8ed52d72aa7e287e0a967bff38fb1c7ee72ed585 100644 (file)
@@ -24,6 +24,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;\r
 \r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 \r
 /** \r
  * @author p.ciardelli\r
index 1d165e9d1226fac8d77b154fea85cf68a8127688..9b8705af633874727df1e785f848888d3c4403f5 100644 (file)
@@ -23,6 +23,7 @@ import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 \r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 \r
 /**\r
  * @author p.ciardelli\r
index c838e44c8e14a813098294a63918a2ae18754daa..8a1b3f106769fcab1279238a0547c43fa5d84f88 100644 (file)
@@ -23,6 +23,7 @@ import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 \r
 import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 \r
index 3bd738f7df38bc3db17352273997a16476d69192..63bc8c6bebdf93e379318f409b4a9072e67cbc27 100644 (file)
@@ -20,7 +20,9 @@ import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 import org.eclipse.ui.views.properties.PropertyDescriptor;\r
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;\r
 \r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.cdm.model.description.Distribution;\r
@@ -29,9 +31,10 @@ import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;\r
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
-import eu.etaxonomy.cdm.model.reference.Generic;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.controller.DescriptionController;\r
+import eu.etaxonomy.taxeditor.controller.ReferenceController;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
@@ -59,8 +62,10 @@ public class DescriptionElementPropertySource implements IPropertySource {
         * Property unique keys\r
         */\r
        public static final String P_ID_ELEMENT_CLASS = "element_class";\r
+       public static final String P_ID_ELEMENT_TEXT = "text";\r
        public static final String P_ID_FEATURE = "feature";\r
        public static final String P_ID_BIBREF = "bibref";\r
+       public static final String P_ID_MICROREF = "microref";\r
 \r
        /**\r
         * Property display keys\r
@@ -68,11 +73,13 @@ public class DescriptionElementPropertySource implements IPropertySource {
         *  @see eu.etaxonomy.taxeditor.propertysheet.EditorPropertySheetEntry\r
         */\r
        public static final String P_ELEMENT_CLASS = "01:Save element as";\r
-       public static final String P_FEATURE = "00:Feature";\r
+       public static final String P_ELEMENT_TEXT = "00:Element";\r
+       public static final String P_FEATURE = "01:Feature";\r
        public static final String P_BIBREF = "02:Bibliographic Reference";\r
+       public static final String P_MICROREF = "03:Reference Detail";\r
        \r
-//     protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {P_ID_ELEMENT_CLASS, P_ID_FEATURE, P_ID_BIBREF};\r
-       protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {P_ID_BIBREF};\r
+       protected static final String[] TOP_LEVEL_PROPERTIES = \r
+                       new String[] {P_ID_ELEMENT_TEXT, P_ID_FEATURE, P_ID_BIBREF, P_ID_MICROREF};\r
        \r
        private String[] P_FEATURE_CLASS_NAME_MENU;\r
        private Class[] P_FEATURE_CLASSES;\r
@@ -152,12 +159,19 @@ public class DescriptionElementPropertySource implements IPropertySource {
                }\r
                \r
                if (id.equals(P_ID_BIBREF)) {\r
-                       descriptors.addElement(new ReferenceSearchDescriptor(P_ID_BIBREF, P_BIBREF, IReferenceSearch.BIBREF) {\r
-                               protected void saveReference(ReferenceBase reference) {\r
-                                       setPropertyValue(P_ID_BIBREF, reference);\r
-                               }\r
-                       });                     \r
-//                     descriptors.addElement(new TextPropertyDescriptor(P_ID_BIBREF, P_BIBREF));\r
+//                     descriptors.addElement(new ReferenceSearchDescriptor(P_ID_BIBREF, P_BIBREF, IReferenceSearch.BIBREF) {\r
+//                             protected void saveReference(ReferenceBase reference) {\r
+//                                     setPropertyValue(P_ID_BIBREF, reference);\r
+//                             }\r
+//                     });                     \r
+                       descriptors.addElement(new PropertyDescriptor(P_ID_BIBREF, P_BIBREF));\r
+               }\r
+               if (id.equals(P_ID_ELEMENT_TEXT)) {\r
+                       descriptors.addElement(new TextPropertyDescriptor(P_ID_ELEMENT_TEXT, P_ELEMENT_TEXT));\r
+               }\r
+               \r
+               if (id.equals(P_ID_MICROREF)) {\r
+                       descriptors.addElement(new TextPropertyDescriptor(P_ID_MICROREF, P_MICROREF));\r
                }\r
        }\r
        \r
@@ -210,7 +224,15 @@ public class DescriptionElementPropertySource implements IPropertySource {
                                }\r
                        });\r
                        return bibRefPropertySource;\r
-               }               \r
+               }\r
+               \r
+               if (id.equals(P_ID_ELEMENT_TEXT)) {\r
+                       return DescriptionController.getCache(descriptionElement);      \r
+               }\r
+\r
+               if (id.equals(P_ID_MICROREF)) {\r
+                       return CdmUtils.Nz(descriptionElement.getCitationMicroReference());\r
+               }\r
                \r
                return null;\r
        }\r
@@ -241,20 +263,22 @@ public class DescriptionElementPropertySource implements IPropertySource {
                                descriptionElement.setCitation((ReferenceBase) value);\r
                        }\r
                        \r
-                       if (value instanceof String) {\r
-                               \r
-                       }\r
-                       ReferenceBase bibRef = descriptionElement.getCitation();\r
-                       if (bibRef == null) {\r
-                               bibRef = Generic.NewInstance();\r
-                               descriptionElement.setCitation(bibRef);\r
-                       }\r
+                       ReferenceBase bibRef = \r
+                                       ReferenceController.getOrCreateCitation(descriptionElement);\r
                        \r
                        // "value" is the ReferencePropertySource, so we get the TitleCache from its\r
                        // toString() method\r
                        bibRef.setTitleCache(value.toString());\r
                }\r
                \r
+               if (id.equals(P_ID_ELEMENT_TEXT)) {\r
+                       DescriptionController.setCache(descriptionElement, (String) value);\r
+               }\r
+               \r
+               if (id.equals(P_ID_MICROREF)) {\r
+                       descriptionElement.setCitationMicroReference((String) value);\r
+               }\r
+               \r
                descriptionElement.firePropertyChange(ITaxEditorConstants.PROPERTY_SHEET_CHANGE, null, null);\r
        }\r
 }\r
index a825688437aea78cf27ef1dd325df608cb2f0b2d..a95cdaf04d0cf72805ff602b9e8cbb4aab4e0655 100644 (file)
@@ -35,19 +35,19 @@ public class TaxonDescriptionPropertySource implements IPropertySource {
        private String parentid;\r
        \r
     // Property unique keys\r
-       public static final String P_ID_LABEL = "label";\r
        public static final String P_ID_UUID = "uuid";\r
+       public static final String P_ID_LABEL = "label";\r
 \r
     // Property display keys\r
        // Note: for an explanation of the sorting prefixes ("04:"), \r
        //  @see eu.etaxonomy.taxeditor.propertysheet.CustomSortPropertySheetEntry\r
-       public static final String P_LABEL = "00:Description Text";\r
-       public static final String P_UUID = "01:UUID";  \r
+       public static final String P_UUID = "00:UUID";  \r
+       public static final String P_LABEL = "01:Description Label";\r
        \r
 //     protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {\r
 //                     P_ID_LABEL, P_ID_UUID};\r
        protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {\r
-               P_ID_UUID};             \r
+               P_ID_LABEL};            \r
                \r
        /**\r
         * Constructor for top level property fields. All fields that are not subfields\r
index 333a4c9ea4a73fd0fbfd6ff655e1a19c23a6cd35..bb27b449ac6010f101f9215095b3898150dc1b1e 100644 (file)
@@ -35,8 +35,8 @@ import eu.etaxonomy.cdm.model.reference.Generic;
 import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
 import eu.etaxonomy.taxeditor.propertysheet.AnnotationPropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.AnnotationsPropertyDescriptor;\r
 import eu.etaxonomy.taxeditor.propertysheet.MarkersPropertySource;\r
index b82222123613fdee5fb88f55467de12e593a784d..a414405fe8b6324efe7df329225fa5d59587d614 100644 (file)
@@ -25,7 +25,7 @@ import org.eclipse.ui.views.properties.TextPropertyDescriptor;
 import eu.etaxonomy.cdm.common.CdmUtils;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 \r
 /**\r
  * @author p.ciardelli\r
index 9a4978869200cb1c4344298976a1cb187ff53ebd..d0551f7510222f9e052aea7ce702549e9be29a79 100644 (file)
@@ -32,7 +32,7 @@ import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.reference.Generic;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesController;\r
+import eu.etaxonomy.taxeditor.controller.PreferencesController;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDialog;\r
 \r