taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/NomenclaturalCodeWizardPage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsExportWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/TcsImportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/labels/DefaultLabelStrategy.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/labels/ILabelImageStrategy.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/labels/LabelImageProvider.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/labels/ZoologicalNameLabelStrategy.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/CommonHelper.java -text
--- /dev/null
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.labels;\r
+\r
+import java.util.SortedSet;\r
+\r
+import org.eclipse.swt.graphics.Image;\r
+\r
+import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
+import eu.etaxonomy.taxeditor.model.ImageResources;\r
+import eu.etaxonomy.taxeditor.store.VocabularyStore;\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
+ VocabularyStore.getNameRelationshipTypes();\r
+ \r
+ for (NameRelationshipType type1 : vocab) {\r
+ if (type1.equals(type)) {\r
+ return type1.getLabel();\r
+ }\r
+ }\r
+ return "";\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
+ VocabularyStore.getNameRelationshipTypes();\r
+\r
+ for (NameRelationshipType type1 : vocab) {\r
+ if (type1.equals(type)) {\r
+ return type1.getInverseLabel();\r
+ }\r
+ }\r
+ return "";\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.editor.labels.ILabelImageStrategy#getNameRelationImage(eu.etaxonomy.cdm.model.name.NameRelationship)\r
+ */\r
+ public Image getNameRelationTypeImage(NameRelationshipType type) {\r
+ if (NameRelationshipType.BASIONYM().equals(type)) {\r
+ return ImageResources.getImage(\r
+ ImageResources.BASIONYM_ICON);\r
+ }\r
+ if (NameRelationshipType.ORTHOGRAPHIC_VARIANT().equals(type)) {\r
+ return ImageResources.getImage(\r
+ ImageResources.ORTHOGRAPHIC_VARIANT_ICON);\r
+ }\r
+ return null;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.labels.ILabelImageStrategy#getNameRelationDescription(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+ */\r
+ public String getNameRelationTypeDescription(NameRelationshipType type) {\r
+ if (NameRelationshipType.BASIONYM().equals(type)) {\r
+ return "Basionym";\r
+ }\r
+ return type.getDescription();\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.labels;\r
+\r
+import org.eclipse.swt.graphics.Image;\r
+\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 getNameRelationTypeImage(NameRelationshipType type);\r
+ \r
+ String getNameRelationTypeDescription(NameRelationshipType type);\r
+}\r
--- /dev/null
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.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 static ILabelImageStrategy getLabelStrategy(TaxonNameBase name) {\r
+ if (name == null) {\r
+ if (PreferencesUtil.getPreferredNomenclaturalCode().\r
+ equals(NomenclaturalCode.ICZN)) {\r
+ return new ZoologicalNameLabelStrategy();\r
+ }\r
+ } else if (name.getNomenclaturalCode() != null &&\r
+ name.getNomenclaturalCode().equals(NomenclaturalCode.ICZN)) {\r
+ return new ZoologicalNameLabelStrategy();\r
+ }\r
+ return new DefaultLabelStrategy();\r
+ }\r
+\r
+ public LabelImageProvider(ILabelImageStrategy strategy) {\r
+ this.strategy = strategy;\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 getNameRelationTypeImage(NameRelationshipType type) {\r
+ return strategy.getNameRelationTypeImage(type);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.labels.ILabelImageStrategy#getNameRelationDescription(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+ */\r
+ public String getNameRelationTypeDescription(NameRelationshipType type) {\r
+ return strategy.getNameRelationTypeDescription(type);\r
+ }\r
+}\r
--- /dev/null
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.labels;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.graphics.Image;\r
+\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
+ if (type.equals(NameRelationshipType.BASIONYM())) {\r
+ return "original combination for";\r
+ }\r
+ return super.getNameRelationTypeLabel(type);\r
+ }\r
+ \r
+ public Image getNameRelationTypeImage(NameRelationshipType type) {\r
+ if (NameRelationshipType.BASIONYM().equals(type)) {\r
+ return null;\r
+ }\r
+ return super.getNameRelationTypeImage(type);\r
+ }\r
+ \r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.labels.ILabelImageStrategy#getNameRelationDescription(eu.etaxonomy.cdm.model.name.NameRelationshipType)\r
+ */\r
+ public String getNameRelationTypeDescription(NameRelationshipType type) {\r
+ if (NameRelationshipType.BASIONYM().equals(type)) {\r
+ return "Original Combination";\r
+ }\r
+ return super.getNameRelationTypeDescription(type);\r
+ }\r
+}\r
package eu.etaxonomy.taxeditor.preference;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.taxeditor.labels.ILabelImageStrategy;
+import eu.etaxonomy.taxeditor.labels.LabelImageProvider;
import eu.etaxonomy.taxeditor.store.VocabularyStore;
/**
"Name relationship types",
"Configure name relationship types",
false);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createContents(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public Control createContents(Composite parent) {
+ Control container = super.createContents(parent);
+ getTableViewer().setLabelProvider(new NameRelationLabelProvider());
+ return container;
+ }
+
+ public class NameRelationLabelProvider extends MenuPreferenceLabelProvider {
+
+ private LabelImageProvider labelProvider;
+
+ public NameRelationLabelProvider() {
+ super();
+
+ ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(
+ PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null));
+ this.labelProvider = new LabelImageProvider(strategy);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences.MenuPreferenceLabelProvider#getColumnImage(java.lang.Object, int)
+ */
+ @Override
+ public Image getColumnImage(Object element, int columnIndex) {
+ // The preference page looked lame with images
+// if (element instanceof NameRelationshipType) {
+// return labelProvider.getNameRelationImage((NameRelationshipType) element);
+// }
+ return super.getColumnImage(element, columnIndex);
+ }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences.MenuPreferenceLabelProvider#getColumnText(java.lang.Object, int)
+ */
+ @Override
+ public String getColumnText(Object element, int columnIndex) {
+ if (element instanceof NameRelationshipType) {
+ return labelProvider.getNameRelationTypeLabel((NameRelationshipType) element);
+ }
+ return super.getColumnText(element, columnIndex);
+ }
}
}
\r
import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.impl.TaxonServiceConfiguratorImpl;\r
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.ExtensionType;\r
import eu.etaxonomy.cdm.model.common.ICdmBase;\r
* @return\r
*/\r
private static String getPreferenceKey(ICdmBase cdmBase) {\r
- return cdmBase.getClass().getName()\r
+ cdmBase = (ICdmBase) HibernateProxyHelper.deproxy(cdmBase);\r
+ \r
+ String key = cdmBase.getClass().getName()\r
. concat(".")\r
. concat(cdmBase.getUuid().toString());\r
+ if (key.contains("javassist")) {\r
+ logger.info("proxy");\r
+ }\r
+ return key;\r
}\r
\r
/**\r
* @return\r
*/\r
private static String getPreferenceKey(IDefinedTerm definedTerm) {\r
- return definedTerm.getClass().getName()\r
+ definedTerm = (IDefinedTerm) HibernateProxyHelper.deproxy(definedTerm);\r
+ String key = definedTerm.getClass().getName()\r
. concat(".")\r
. concat(definedTerm.getUuid().toString());\r
+ if (key.contains("javassist")) {\r
+ logger.info("proxy");\r
+ }\r
+ return key;\r
}\r
\r
/**\r
*/
public static SortedSet<Feature> getFeatures() {
SortedSet features = getDefault().getTermVocabulary(VocabularyEnum.Feature).getTermsOrderedByLabels(getDefaultLanguage());
+ features.remove(Feature.IMAGE());
return features;
}