ref #8146 Adapt character matrix to termType model change
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 28 Feb 2019 15:35:19 +0000 (16:35 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 28 Feb 2019 15:35:19 +0000 (16:35 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrix.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages.properties
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages_de.properties

index 87cb7f034728dad0eea69b8dcac83b72a5c68e7f..9b46710d70fdcb7ca11c4828fcf83606b3ad9510 100644 (file)
@@ -98,6 +98,7 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
@@ -168,7 +169,7 @@ public class CharacterMatrix extends Composite {
 
     private FreezeLayer freezeLayer;
 
-    private List<Feature> features;
+    private List<Character> features;
 
     private CharacterMatrixPart part;
 
@@ -269,13 +270,16 @@ public class CharacterMatrix extends Composite {
         natTable.doCommand(new ClientAreaResizeCommand(natTable));
     }
 
-    private List<Feature> initFeatureList(FeatureNode node){
-        List<Feature> features = new ArrayList<>();
+    private List<Character> initFeatureList(FeatureNode node){
+        List<Character> features = new ArrayList<>();
         node.getChildNodes().forEach(childNode->
                 {
-                    Feature feature = childNode.getFeature();
+                    DefinedTermBase feature = childNode.getTerm();
+                    // FIXME #8146 this is currently checked via the termType of the tree
+                    // in the init() method. This may be solved by adding generics to FeatureNode
+                    // so that getTerm is typified. This would make this check obsolete
                     if(feature.isInstanceOf(Character.class)){
-                        features.add(childNode.getFeature());
+                        features.add((Character) feature);
                     }
                     features.addAll(initFeatureList(childNode));
                 });
@@ -718,7 +722,7 @@ public class CharacterMatrix extends Composite {
         return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
     }
 
-    public List<Feature> getFeatures() {
+    public List<Character> getFeatures() {
         return features;
     }
 
index 446c8982779ad411d83b2c5ff6215068a29a3cef..316f51aa2e2f870d582674a1e9e1880f1c4dd0c1 100644 (file)
@@ -42,6 +42,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -130,7 +131,9 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     public void init(UUID descriptiveDataSetUuid, boolean treeView) {
         this.descriptiveDataSet = CdmStore.getService(IDescriptiveDataSetService.class).load(descriptiveDataSetUuid, WS_PROPERTY_PATH);
         if(descriptiveDataSet!=null){
-            if(descriptiveDataSet.getDescriptiveSystem()==null){
+            if(descriptiveDataSet.getDescriptiveSystem()==null
+                    || descriptiveDataSet.getDescriptiveSystem().getTermType()==null
+                    || !descriptiveDataSet.getDescriptiveSystem().getTermType().equals(TermType.Character)){
                 MessagingUtils.informationDialog(Messages.CharacterMatrixPart_COULD_NOT_OPEN, Messages.CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE);
                 return;
             }
index a93264e00d0c5dbe7f66d6e26de07d961ee127f1..9cf9db0bdba1b2eaa7427ed0d16465dce9813cca 100644 (file)
@@ -220,7 +220,7 @@ CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE=Could not create rows fo
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Errors during row creation
 CharacterMatrixBottomToolbar_YES=Yes
 CharacterMatrixPart_COULD_NOT_OPEN=Editor could not be opened
-CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive data set has no feature tree selected.
+CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive data set has no character tree selected or the tree contains elements that are not characters.
 CharacterMatrixPart_LOADING_MATRIX=Loading matrix...
 SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED=Not yet implemented
 SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON=Swap Synonym And Accepted Taxon Operation
index aacd82c5c416c3bf3f81256c4b3e4b446fdf73e4..d6b6940b9a799c9080b091c7cde34de92ef93278 100644 (file)
@@ -220,7 +220,7 @@ CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE=Konnte keine Zeilen f
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Fehler bei der Erstellung der Zeilen
 CharacterMatrixBottomToolbar_YES=Ja
 CharacterMatrixPart_COULD_NOT_OPEN=Editor konnte nicht geöffnet werden
-CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=Das Dataset hat keinen Merkmalsbaum ausgewählt.
+CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=Das Dataset hat keinen Character-Baum ausgewählt oder enthält Elemente, die keine Character sind.
 CharacterMatrixPart_LOADING_MATRIX=Lade Matrix...
 SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED=Noch nicht implementiert
 SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON=Tausche Synonym und akzeptiertes Taxon