fix #8316: fix endless loop when editing name in source
authorKatja Luther <k.luther@bgbm.org>
Wed, 29 May 2019 10:29:56 +0000 (12:29 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 29 May 2019 11:24:34 +0000 (13:24 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/FactualDataPartE4.java

index 808248a3dc8f4c780be736461b2128bf00981e3e..69c82db32adb7f5024317a29a66a7b8812cf8f1e 100644 (file)
@@ -130,7 +130,7 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
 
 
         if ((partObject instanceof DetailsPartE4 && !(selection instanceof TaxonName))|| partObject instanceof SupplementalDataPartE4
-                || partObject instanceof MediaViewPartE4 || partObject instanceof ConceptViewPartE4) {
+                || partObject instanceof MediaViewPartE4 || partObject instanceof ConceptViewPartE4 || ((partObject instanceof AbstractCdmEditorPartE4) &&(((AbstractCdmEditorPartE4)partObject).getViewer().getInput() instanceof DescriptionElementBase))) {
             // do not show empty page as these views are also used to edit the
             // description selected in this view
             return;
@@ -162,7 +162,7 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
                 && partObject instanceof IPartContentHasFactualData
                     && !(firstElement instanceof SpecimenOrObservationBase && partObject instanceof BulkEditorE4)){
                    // && !(firstElement instanceof TaxonName && partObject instanceof BulkEditorE4)){
-                if (firstElement instanceof TaxonName){
+                if (firstElement instanceof TaxonName ){
                     thisPart.setLabel(Messages.NameFactsDataView_Lable);
                 }else{
                     thisPart.setLabel(Messages.FactualDataView_Lable);
@@ -187,7 +187,9 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
         for(FeatureNodeContainerTree containerTree : featureNodeContainerCache.values()){
             containerTree.buildTree();
         }
-
+        if (featureNodeContainerCache.isEmpty()){
+            return;
+        }
         if(object instanceof DescriptionElementBase){
             DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
             DescriptionBase description = descriptionElement.getInDescription();