Merge remote-tracking branch 'origin/main' into UIMA-6302-Ruta-error-visualizing-comparing-annotation-in-CAS-Editor-views

# Conflicts:
#	ruta-parent/pom.xml
diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java
index f043f17..47e384c 100644
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java
@@ -334,12 +334,12 @@
    */

   @Override

   public void dispose() {

+	  viewPart.getSite().getPage().removeSelectionListener(this);

+	  Collection<Image> values = images.values();

+	  for (Image image : values) {

+		  image.dispose();

+	  }

     super.dispose();

-    viewPart.getSite().getPage().removeSelectionListener(this);

-    Collection<Image> values = images.values();

-    for (Image image : values) {

-      image.dispose();

-    }

   }

 

   public Image getImage(String name) {

diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java
index c960e81..dee192b 100755
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java
@@ -129,8 +129,8 @@
    */

   @Override

   public void dispose() {

-    super.dispose();

     overlay.dispose();

+    super.dispose();

   }

 

   /*

diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/query/ui/QueryComposite.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/query/ui/QueryComposite.java
index fd76b1f..745df48 100755
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/query/ui/QueryComposite.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/query/ui/QueryComposite.java
@@ -604,12 +604,12 @@
 

   @Override

   public void dispose() {

-    super.dispose();

     if (images != null) {

       for (Image each : images.values()) {

         each.dispose();

       }

     }

+    super.dispose();

   }

 

   public String getDataDirectory() {

diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationContentProvider.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationContentProvider.java
index add5a50..c0a8b6e 100644
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationContentProvider.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationContentProvider.java
@@ -20,6 +20,7 @@
 package org.apache.uima.ruta.testing.ui.views;
 
 import org.apache.uima.ruta.caseditor.view.tree.AnnotationTreeNode;
+import org.apache.uima.ruta.caseditor.view.tree.FSFeatureTreeNode;
 import org.apache.uima.ruta.caseditor.view.tree.ITreeNode;
 import org.apache.uima.ruta.caseditor.view.tree.TypeTreeNode;
 import org.apache.uima.ruta.testing.ui.views.tree.TestEvaluationTree;
@@ -59,6 +60,10 @@
       AnnotationTreeNode node = (AnnotationTreeNode) parentElement;
       return node.getChildren();
     }
+    if (parentElement instanceof FSFeatureTreeNode) {
+      FSFeatureTreeNode node = (FSFeatureTreeNode) parentElement;
+      return node.getChildren();
+    }
     return empty;
   }
 
diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationLabelProvider.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationLabelProvider.java
index ac967e9..484b364 100644
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationLabelProvider.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationLabelProvider.java
@@ -20,6 +20,7 @@
 package org.apache.uima.ruta.testing.ui.views;
 
 import org.apache.uima.ruta.caseditor.view.tree.AnnotationTreeNode;
+import org.apache.uima.ruta.caseditor.view.tree.IAnnotationNode;
 import org.apache.uima.ruta.caseditor.view.tree.PrimitiveFeatureTreeNode;
 import org.apache.uima.ruta.caseditor.view.tree.TextUtils;
 import org.apache.uima.ruta.caseditor.view.tree.TypeTreeNode;
@@ -43,8 +44,8 @@
 
   @Override
   public String getText(Object element) {
-    if (element instanceof AnnotationTreeNode) {
-      AnnotationTreeNode fnNode = (AnnotationTreeNode) element;
+    if (element instanceof IAnnotationNode) {
+      IAnnotationNode fnNode = (IAnnotationNode) element;
       if (fnNode.getAnnotation() != null) {
         String typeName = fnNode.getAnnotation().getType().getName();
         String coveredText = fnNode.getAnnotation().getCoveredText();
diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationViewPage.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationViewPage.java
index 91b2c81..0c7faca 100644
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationViewPage.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/EvaluationViewPage.java
@@ -43,8 +43,8 @@
 import org.eclipse.ui.part.IPageSite;
 import org.eclipse.ui.part.Page;
 
-public class EvaluationViewPage extends Page implements ICasDocumentListener, ISelectionListener,
-        ICasEditorInputListener {
+public class EvaluationViewPage extends Page
+        implements ICasDocumentListener, ISelectionListener, ICasEditorInputListener {
 
   private CheckboxTreeViewer viewer;
 
@@ -109,10 +109,10 @@
 
   @Override
   public void dispose() {
-    super.dispose();
     getSite().getPage().removeSelectionListener(this);
     document.removeChangeListener(this);
     editor.removeCasEditorInputListener(this);
+    super.dispose();
   }
 
   public void selectionChanged(IWorkbenchPart part, ISelection selection) {
diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/InfoPanel.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/InfoPanel.java
index 100f6c7..e85e87f 100755
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/InfoPanel.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/InfoPanel.java
@@ -89,9 +89,9 @@
 

   @Override

   public void dispose() {

-    super.dispose();

     fErrorIcon.dispose();

     fFailureIcon.dispose();

+    super.dispose();

   }

 

   private Text createLabel(String name, Image image, String init, Composite parent) {

diff --git a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/TestViewPage.java b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/TestViewPage.java
index abe81a5..4ff4eae 100755
--- a/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/TestViewPage.java
+++ b/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/TestViewPage.java
@@ -467,6 +467,7 @@
   public void dispose() {
     overlay.dispose();
     labelProvider.dispose();
+    super.dispose();
   }
 
   @Override
diff --git a/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSFeatureTreeNode.java b/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSFeatureTreeNode.java
index 76e8457..afb1c87 100644
--- a/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSFeatureTreeNode.java
+++ b/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSFeatureTreeNode.java
@@ -45,7 +45,10 @@
 
   @Override
   public AnnotationFS getAnnotation() {
-    return (AnnotationFS) fs;
+    if(fs instanceof AnnotationFS) {
+      return (AnnotationFS) fs;
+    }
+    return null;
   }
 
   @Override
diff --git a/ruta-ep-engine/pom.xml b/ruta-ep-engine/pom.xml
index 113f336..c1705bb 100644
--- a/ruta-ep-engine/pom.xml
+++ b/ruta-ep-engine/pom.xml
@@ -330,7 +330,7 @@
                   !org.aopalliance.*, !org.springframework.aop.*

                 </Import-Package>

                 <!-- -->

-                <Require-Bundle> org.apache.uima.runtime </Require-Bundle>

+                <Require-Bundle>org.apache.uima.runtime</Require-Bundle>

                 <!-- <Import-Package>org.apache.uima, org.apache.uima.analysis_component,

                   org.apache.uima.analysis_engine, org.apache.uima.analysis_engine.annotator,

                   org.apache.uima.analysis_engine.asb, org.apache.uima.analysis_engine.asb.impl,