Implemented an ILabelImageStrategy to deal w different nomenclatural codes per #776
authorp.ciardelli <p.ciardelli@localhost>
Wed, 24 Jun 2009 13:29:39 +0000 (13:29 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 24 Jun 2009 13:29:39 +0000 (13:29 +0000)
.gitattributes
taxeditor-editor/.settings/org.eclipse.jdt.ui.prefs
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/DefaultLabelStrategy.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ILabelImageStrategy.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/LabelImageProvider.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ZoologicalNameLabelStrategy.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/name/NameRelationsPropertySource.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/namerelations/wizard/ChooseRelationWizardPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/namerelations/wizard/ListNameRelationsWizardPage.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameRelationsUtil.java [deleted file]

index 43a7cf526a737dda921ce36eca8440736db8b7f6..d6f0e944c905b4899ebe9ff9ae1531806970c0b3 100644 (file)
@@ -703,6 +703,10 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/images/TaxonImageEd
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/images/handler/CreateImageHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/images/handler/DeleteImageHandler.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/DefaultLabelStrategy.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ILabelImageStrategy.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/LabelImageProvider.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ZoologicalNameLabelStrategy.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AcceptedNameComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/BasionymSynonymPropertySource.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/CdmParserController.java -text
@@ -989,7 +993,6 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java -
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ImagesUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IterableSynonymyList.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/LanguageUtil.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameRelationsUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ReferenceUtil.java -text
 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/Resources.java -text
index ee6f90d5a9a6be6ad7f43cfe38c88bafb05ecd29..a46e56aa14453dfb1cf3b8a35e5a3b641b12b461 100644 (file)
@@ -1,3 +1,4 @@
-#Mon Apr 20 16:51:59 CEST 2009\r
+#Wed Jun 24 14:12:16 CEST 2009\r
 eclipse.preferences.version=1\r
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>\r
+org.eclipse.jdt.ui.javadoc=true\r
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/DefaultLabelStrategy.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/DefaultLabelStrategy.java
new file mode 100644 (file)
index 0000000..3d14cb4
--- /dev/null
@@ -0,0 +1,69 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.editor.labels;\r
+\r
+import java.util.SortedSet;\r
+\r
+import org.eclipse.swt.graphics.Image;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.taxeditor.model.ImageResources;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ *\r
+ */\r
+public class DefaultLabelStrategy implements ILabelImageStrategy {\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.IEditorLabelStrategy#getNameRelationTypeLabel(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+        */\r
+       public String getNameRelationTypeLabel(NameRelationshipType type) {\r
+               SortedSet<NameRelationshipType> vocab = \r
+                       CdmStore.getDefault().getNameRelationshipTypes();\r
+       \r
+               for (NameRelationshipType type1 : vocab) {\r
+                       if (type1.equals(type)) {\r
+                               return type1.getLabel();\r
+                       }\r
+               }\r
+               return "";\r
+       }\r
+       \r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.IEditorLabelStrategy#getNameRelationInverseTypeLabel(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+        */\r
+       public String getNameRelationTypeInverseLabel(NameRelationshipType type) {\r
+               \r
+               SortedSet<NameRelationshipType> vocab = \r
+               CdmStore.getDefault().getNameRelationshipTypes();\r
+\r
+               for (NameRelationshipType type1 : vocab) {\r
+                       if (type1.equals(type)) {\r
+                               return type1.getInverseLabel();\r
+                       }\r
+               }\r
+               return "";\r
+       }\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy#getNameRelationImage(eu.etaxonomy.cdm.model.name.NameRelationship)\r
+        */\r
+       public Image getNameRelationImage(NameRelationship relation) {\r
+               if (relation.getType().equals(NameRelationshipType.BASIONYM())) {\r
+                       return ImageResources.getImage(\r
+                                       ImageResources.BASIONYM_ICON);\r
+               }\r
+               if (relation.getType().equals(\r
+                               NameRelationshipType.ORTHOGRAPHIC_VARIANT())) {\r
+                       return ImageResources.getImage(\r
+                                       ImageResources.ORTHOGRAPHIC_VARIANT_ICON);\r
+               }\r
+               return null;\r
+       }\r
+}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ILabelImageStrategy.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ILabelImageStrategy.java
new file mode 100644 (file)
index 0000000..42bd0a6
--- /dev/null
@@ -0,0 +1,22 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.editor.labels;\r
+\r
+import org.eclipse.swt.graphics.Image;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ *\r
+ */\r
+public interface ILabelImageStrategy {\r
+\r
+       String getNameRelationTypeLabel(NameRelationshipType type);\r
+       \r
+       String getNameRelationTypeInverseLabel(NameRelationshipType type);\r
+       \r
+       Image getNameRelationImage(NameRelationship relation);\r
+}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/LabelImageProvider.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/LabelImageProvider.java
new file mode 100644 (file)
index 0000000..72128f6
--- /dev/null
@@ -0,0 +1,65 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.editor.labels;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.graphics.Image;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
+\r
+/**\r
+ * Returns labels and images that are dependent on a nomenclatural\r
+ * code using a code-specific ILabelImageStrategy.\r
+ * \r
+ * @author p.ciardelli\r
+ *\r
+ */\r
+public class LabelImageProvider implements ILabelImageStrategy {\r
+       private static final Logger logger = Logger.getLogger(LabelImageProvider.class);\r
+\r
+       private ILabelImageStrategy strategy;\r
+\r
+       public LabelImageProvider(ILabelImageStrategy strategy) {\r
+               this.strategy = strategy;\r
+       }\r
+\r
+       public static ILabelImageStrategy getLabelStrategy(TaxonNameBase name) {\r
+               if (name == null) {\r
+                       if (PreferencesUtil.getPreferredNomenclaturalCode().\r
+                                       equals(NomenclaturalCode.ICZN)) {\r
+                               return new ZoologicalNameLabelStrategy();\r
+                       }\r
+               }\r
+               if (name.getNomenclaturalCode() != null &&\r
+                               name.getNomenclaturalCode().equals(NomenclaturalCode.ICZN)) {\r
+                       return new ZoologicalNameLabelStrategy();\r
+               }\r
+               return new DefaultLabelStrategy();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.IEditorLabelStrategy#getNameRelationTypeLabel(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+        */\r
+       public String getNameRelationTypeLabel(NameRelationshipType type) {\r
+               return strategy.getNameRelationTypeLabel(type);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.IEditorLabelStrategy#getNameRelationInverseTypeLabel(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+        */\r
+       public String getNameRelationTypeInverseLabel(NameRelationshipType type) {\r
+               return strategy.getNameRelationTypeInverseLabel(type);\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy#getNameRelationImage(eu.etaxonomy.cdm.model.name.NameRelationship)\r
+        */\r
+       public Image getNameRelationImage(NameRelationship relation) {\r
+               return strategy.getNameRelationImage(relation);\r
+       }\r
+}\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ZoologicalNameLabelStrategy.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/labels/ZoologicalNameLabelStrategy.java
new file mode 100644 (file)
index 0000000..d27b1b1
--- /dev/null
@@ -0,0 +1,36 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.editor.labels;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.graphics.Image;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationship;\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ *\r
+ */\r
+public class ZoologicalNameLabelStrategy extends DefaultLabelStrategy {\r
+       private static final Logger logger = Logger.getLogger(ZoologicalNameLabelStrategy.class);\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.labels.IEditorLabelStrategy#getNameRelationTypeLabel(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+        */\r
+       public String getNameRelationTypeLabel(NameRelationshipType type) {\r
+               logger.info("Getting zoo. type info for a " + type);\r
+               if (type.equals(NameRelationshipType.BASIONYM())) {\r
+                       return "original combination for";\r
+               }\r
+               return super.getNameRelationTypeLabel(type);\r
+       }\r
+       \r
+       public Image getNameRelationImage(NameRelationship relation) {\r
+               if (relation.getType().equals(NameRelationshipType.BASIONYM())) {\r
+                       return null;\r
+               }\r
+               return super.getNameRelationImage(relation);\r
+       }\r
+}\r
index 3fa24f7d7475e1fd35fc2825923f34d76758040c..e31704c77e27a696e5ac8cd2e6dc3c8023e39847 100644 (file)
@@ -27,8 +27,9 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;\r
 import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
 import eu.etaxonomy.taxeditor.editor.GroupedComposite;\r
+import eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy;\r
+import eu.etaxonomy.taxeditor.editor.labels.LabelImageProvider;\r
 import eu.etaxonomy.taxeditor.model.ImageResources;\r
-import eu.etaxonomy.taxeditor.model.NameRelationsUtil;\r
 import eu.etaxonomy.taxeditor.model.NameUtil;\r
 import eu.etaxonomy.taxeditor.model.Resources;\r
 import eu.etaxonomy.taxeditor.operations.CreateSynonymInNewGroupOperation;\r
@@ -156,6 +157,10 @@ public abstract class NameComposite extends GroupedComposite{
                if (name == null) {\r
                        return;\r
                }\r
+               \r
+               ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);\r
+               LabelImageProvider labelProvider = new LabelImageProvider(strategy);\r
+               \r
                Set<NameRelationship> nameRelations = name.getNameRelations();\r
                if (nameRelations.size() == 0) {\r
                        return;\r
@@ -163,16 +168,14 @@ public abstract class NameComposite extends GroupedComposite{
                for (NameRelationship nameRelation : nameRelations) {\r
                        String typeLabel = null;\r
                        TaxonNameBase<?, ?> relatedName = null; \r
-                       \r
-                       boolean isZoological = name instanceof ZoologicalName ? true : false; \r
-                       \r
+\r
                        if (name.equals(nameRelation.getFromName())) {\r
-                               typeLabel = NameRelationsUtil.getNameRelationTypeLabel( \r
-                                       nameRelation.getType(), isZoological);\r
+                               typeLabel = labelProvider.getNameRelationTypeLabel( \r
+                                                               nameRelation.getType());\r
                                relatedName = nameRelation.getToName();\r
                        } else {\r
-                               typeLabel = NameRelationsUtil.getNameRelationInverseTypeLabel( \r
-                                       nameRelation.getType(), isZoological);\r
+                               typeLabel = labelProvider.getNameRelationTypeInverseLabel( \r
+                                                               nameRelation.getType());\r
                                relatedName = nameRelation.getFromName();\r
                        }\r
                        \r
@@ -219,7 +222,7 @@ public abstract class NameComposite extends GroupedComposite{
                // The parser is no longer active\r
                isParsing = false;\r
                \r
-//             // Manually refresh the property sheet to reflect changes\r
+               // Manually refresh the property sheet to reflect changes\r
                setSelection();\r
                \r
                // Show any errors in the name viewer\r
index e2836ee5bc4a373978861f99c07b3ac64981f123..d5d049bb8f08027966065dd07336afcd2a37eb84 100644 (file)
@@ -15,23 +15,21 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
-import eu.etaxonomy.taxeditor.model.NameRelationsUtil;\r
+import eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy;\r
+import eu.etaxonomy.taxeditor.editor.labels.LabelImageProvider;\r
 import eu.etaxonomy.taxeditor.propertysheet.CollectionPropertySource;\r
 \r
 public class NameRelationsPropertySource extends CollectionPropertySource {\r
        \r
        private TaxonNameBase<?, ?> name;\r
-       private boolean isZoological = false;\r
 \r
        private Set<?> nameRelations;\r
+       private LabelImageProvider labelProvider;\r
 \r
        public NameRelationsPropertySource(TaxonNameBase<?, ?> name, Collection<?> collection) {\r
                super(collection, name);\r
                this.name = name;\r
-               if (name instanceof ZoologicalName) {\r
-                       isZoological = true;\r
-               }\r
-               \r
+                               \r
                this.setNameRelations(name.getNameRelations());\r
        }\r
        \r
@@ -42,19 +40,14 @@ public class NameRelationsPropertySource extends CollectionPropertySource {
                if (item instanceof NameRelationship) {\r
                        \r
                        NameRelationship nameRelation = (NameRelationship) item;\r
-                       \r
-                       if (nameRelation.getFromName() instanceof ZoologicalName &&\r
-                                       nameRelation.getToName() instanceof ZoologicalName) {\r
-                               isZoological = true;    \r
-                       }\r
-                       \r
+                                               \r
                        if (nameRelation.getType() != null) {\r
                                NameRelationshipType type = nameRelation.getType();\r
                                String label;\r
                                if (nameRelation.getFromName().equals(getCollectionOwner())) {\r
-                                       label = NameRelationsUtil.getNameRelationTypeLabel(type, isZoological);\r
+                                       label = getLabelProvider().getNameRelationTypeLabel(type);\r
                                } else {\r
-                                       label = NameRelationsUtil.getNameRelationInverseTypeLabel(type, isZoological);\r
+                                       label = getLabelProvider().getNameRelationTypeInverseLabel(type);\r
                                }\r
                                itemDisplayName = label;\r
                        } else {\r
@@ -64,6 +57,17 @@ public class NameRelationsPropertySource extends CollectionPropertySource {
                return itemDisplayName;\r
        }\r
 \r
+       /**\r
+        * @return\r
+        */\r
+       private ILabelImageStrategy getLabelProvider() {\r
+               if (labelProvider == null) {\r
+                       ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);\r
+                       this.labelProvider = new LabelImageProvider(strategy);\r
+               }\r
+               return labelProvider;\r
+       }\r
+\r
        @Override\r
        public Object getPropertyValue(Object id) {\r
                if (id instanceof NameRelationship) {\r
index 8b4d9466cfd44d629b3cfb4e513f33687155e91b..f5ae2891a302d8114cb4dbe312bc2fd89aac5b2e 100644 (file)
@@ -31,11 +31,11 @@ import org.eclipse.swt.widgets.Label;
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;\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.taxeditor.editor.labels.ILabelImageStrategy;\r
+import eu.etaxonomy.taxeditor.editor.labels.LabelImageProvider;\r
 import eu.etaxonomy.taxeditor.editor.name.NameSelectComposite;\r
 import eu.etaxonomy.taxeditor.editor.reference.ReferenceSelectComposite;\r
-import eu.etaxonomy.taxeditor.model.NameRelationsUtil;\r
 import eu.etaxonomy.taxeditor.model.NameUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
@@ -91,12 +91,17 @@ public class ChooseRelationWizardPage extends WizardPage {
 \r
        private WritableList nameRelationsList;\r
 \r
+       private LabelImageProvider labelProvider;\r
+\r
        public ChooseRelationWizardPage(TaxonNameBase<?, ?> name, WritableList nameRelationsList) {\r
                super("");\r
                \r
                this.baseName = name;\r
                this.nameRelationsList = nameRelationsList;\r
                \r
+               ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);\r
+               this.labelProvider = new LabelImageProvider(strategy);\r
+               \r
                setTitle("Create name relationship.");  \r
                setDescription("Create a relationship for  \""\r
                                + NameUtil.getDisplayName(baseName) + "\".");\r
@@ -130,8 +135,7 @@ public class ChooseRelationWizardPage extends WizardPage {
                                CdmStore.getDefault().getNameRelationshipTypes()) {\r
                        \r
                        relationTypes.add(relationType);\r
-                       boolean isZoological = baseName instanceof ZoologicalName;\r
-                       String label = NameRelationsUtil.getNameRelationTypeLabel(relationType, isZoological);\r
+                       String label = labelProvider.getNameRelationTypeLabel(relationType);\r
                        typeCombo.add(label);\r
                }\r
                typeCombo.setVisibleItemCount(relationTypes.size());\r
index c55ed80d0b4c43de9a4c4c0496859000421fa7d7..2528bca588b07522c40d29052ca6ecfd131d208b 100644 (file)
@@ -32,12 +32,10 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Table;\r
 \r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
-import eu.etaxonomy.taxeditor.model.ImageResources;\r
-import eu.etaxonomy.taxeditor.model.NameRelationsUtil;\r
+import eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy;\r
+import eu.etaxonomy.taxeditor.editor.labels.LabelImageProvider;\r
 import eu.etaxonomy.taxeditor.model.NameUtil;\r
 \r
 /**\r
@@ -56,16 +54,16 @@ public class ListNameRelationsWizardPage extends WizardPage {
 \r
        private NameRelationship selectedRelation;\r
 \r
-       private boolean isZoological = false;\r
+       private LabelImageProvider labelProvider;\r
 \r
        public ListNameRelationsWizardPage(TaxonNameBase<?, ?> name, WritableList nameRelationsList) {\r
                super("");\r
 \r
                this.name = name;\r
                this.nameRelationsList = nameRelationsList;\r
-               if (name instanceof ZoologicalName) {\r
-                       isZoological  = true;\r
-               }\r
+               \r
+               ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);\r
+               this.labelProvider = new LabelImageProvider(strategy);\r
 \r
                setTitle("Nomenclatural relations for \""\r
                                + NameUtil.getDisplayName(name) + "\".");\r
@@ -137,8 +135,7 @@ public class ListNameRelationsWizardPage extends WizardPage {
 \r
                        public Image getColumnImage(Object element, int columnIndex) {\r
                                if (element instanceof NameRelationship) {\r
-                                       NameRelationship nameRelationship = (NameRelationship) element;\r
-                                       return getRelationshipImage(nameRelationship);\r
+                                       return labelProvider.getNameRelationImage((NameRelationship) element);\r
                                }\r
                                return null;\r
                        }\r
@@ -192,24 +189,6 @@ public class ListNameRelationsWizardPage extends WizardPage {
                btnEdit.setEnabled(false);\r
        }\r
 \r
-       private Image getRelationshipImage(NameRelationship nameRelationship) {\r
-               if (nameRelationship.getType().equals(NameRelationshipType.BASIONYM())) {\r
-                       if (isZoological) { \r
-                               return null;\r
-                       }\r
-                       return ImageResources.getImage(\r
-                                       ImageResources.BASIONYM_ICON);\r
-               }\r
-               if (nameRelationship.getType().equals(\r
-                               NameRelationshipType.ORTHOGRAPHIC_VARIANT())) {\r
-                       return ImageResources.getImage(\r
-                                       ImageResources.ORTHOGRAPHIC_VARIANT_ICON);\r
-               }\r
-//             return TaxEditorPlugin.getDefault().getImage(\r
-//                             ITaxEditorConstants.EDIT_ICON);\r
-               return null;\r
-       }\r
-\r
        private String getRelationshipString(NameRelationship nameRelationship) {\r
                String fromName = null;\r
                String type = null;\r
@@ -222,7 +201,7 @@ public class ListNameRelationsWizardPage extends WizardPage {
                if (nameRelationship.getType() == null) {\r
                        type = "";\r
                } else {\r
-                       type = NameRelationsUtil.getNameRelationTypeLabel(nameRelationship.getType(), isZoological);                    \r
+                       type = labelProvider.getNameRelationTypeLabel(nameRelationship.getType());                      \r
                }\r
                if (nameRelationship.getToName() == null) {\r
                        toName = "";\r
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameRelationsUtil.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/NameRelationsUtil.java
deleted file mode 100644 (file)
index c7c4ca1..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// $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.model;\r
-\r
-import java.util.SortedSet;\r
-\r
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 30.04.2009\r
- * @version 1.0\r
- */\r
-public class NameRelationsUtil {\r
-//     \r
-//     /**\r
-//      * Get the type's label out of the session's name relations vocabulary, not directly\r
-//      * from the object. \r
-//      * \r
-//      * @param type\r
-//      * @return\r
-//      */\r
-//     public static String getNameRelationTypeLabel(NameRelationshipType type) {\r
-//             boolean isZoological = \r
-//                     PreferencesUtil.getPreferredNomenclaturalCode() \r
-//                                     == NomenclaturalCode.ICZN ?     true : false;\r
-//             return getNameRelationTypeLabel(type, isZoological);\r
-//     }\r
-//\r
-//     public static String getNameRelationTypeLabel(NameRelationshipType type, TaxonNameBase name) {\r
-//             boolean zoological = (name.getNomenclaturalCode().equals(NomenclaturalCode.ICZN));\r
-//             return getNameRelationTypeLabel(type, zoological);\r
-//     }\r
-//     \r
-//     private static String getNameRelationTypeLabel(NameRelationshipType type,\r
-//                     boolean isZoological) {\r
-//\r
-//             SortedSet<NameRelationshipType> vocab = \r
-//                             CdmStore.getDefault().getNameRelationshipTypes();\r
-//             \r
-//             for (NameRelationshipType type1 : vocab) {\r
-//                     if (type1.equals(type)) {\r
-//                             \r
-//                             if (isZoological && \r
-//                                             type1.equals(NameRelationshipType.BASIONYM())) {\r
-//                                     return "original combination for";\r
-//                             } else {\r
-//                                     return type1.getLabel();\r
-//                             }\r
-//                     }\r
-//             }\r
-//             return "";\r
-//     }\r
-//\r
-//     /**\r
-//      * Get the inverse representation of the type out of the session's \r
-//      * name relations vocabulary, not directly from the object. \r
-//      * \r
-//      * @param type\r
-//      * @return\r
-//      */\r
-//     public static String getNameRelationInverseTypeLabel(NameRelationshipType type) {\r
-//             boolean isZoological = \r
-//                     PreferencesUtil.getPreferredNomenclaturalCode() \r
-//                                     == NomenclaturalCode.ICZN ?     true : false;\r
-//             return getNameRelationInverseTypeLabel(type, isZoological);\r
-//     }\r
-//     \r
-//     public static String getNameRelationInverseTypeLabel(NameRelationshipType type, boolean isZoological) {\r
-//\r
-//             SortedSet<NameRelationshipType> vocab = \r
-//                             CdmStore.getDefault().getNameRelationshipTypes();\r
-//             \r
-//             for (NameRelationshipType type1 : vocab) {\r
-//                     if (type1.equals(type)) {\r
-//                             return type1.getInverseLabel();\r
-//                     }\r
-//             }\r
-//             return "";\r
-//     }\r
-}\r