You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by mt...@apache.org on 2014/03/12 09:41:35 UTC
svn commit: r1576637 -
/uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java
Author: mtoepfer
Date: Wed Mar 12 08:41:35 2014
New Revision: 1576637
URL: http://svn.apache.org/r1576637
Log:
UIMA-3673
CAS Editor: set shown annotation types (collection of types)
- new public method in AnnotationEditor: setShownAnnotationTypes(Collection<Type> types)
- adapted IShowAnnotationsListener in initiallySynchronizeUI()
Modified:
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java
Modified: uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java?rev=1576637&r1=1576636&r2=1576637&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java (original)
+++ uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/AnnotationEditor.java Wed Mar 12 08:41:35 2014
@@ -948,23 +948,19 @@ public final class AnnotationEditor exte
mShowAnnotationsMenu.addListener(new IShowAnnotationsListener() {
public void selectionChanged(Collection<Type> selection) {
-
- // if changes selection is either larger, or smaller
- // if larger an annotation type was added
- // if smaller one was removed
- if (shownAnnotationTypes.size() < selection.size()) {
- List<Type> clonedCollection = new ArrayList<Type>(selection);
- clonedCollection.removeAll(shownAnnotationTypes);
-
- Type addedAnnotationType = clonedCollection.get(0);
- showAnnotationType(addedAnnotationType, true);
+ // compute change sets and apply changes:
+
+ Collection<Type> notShownAnymore = new HashSet<Type>(shownAnnotationTypes);
+ notShownAnymore.removeAll(selection);
+ for (Type type : notShownAnymore) {
+ showAnnotationType(type, false);
}
- else if (selection.size() < shownAnnotationTypes.size()) {
- List<Type> clonedCollection = new ArrayList<Type>(shownAnnotationTypes);
- clonedCollection.removeAll(selection);
-
- Type removedAnnotationType = clonedCollection.get(0);
- showAnnotationType(removedAnnotationType, false);
+
+ Collection<Type> newShownTypes = new HashSet<Type>(selection);
+ newShownTypes.removeAll(shownAnnotationTypes);
+ for (Iterator<Type> iterator = newShownTypes.iterator(); iterator.hasNext();) {
+ Type type = iterator.next();
+ showAnnotationType(type, true);
}
// Repaint after annotations are changed
@@ -1125,6 +1121,10 @@ public final class AnnotationEditor exte
mShowAnnotationsMenu.setSelectedType(type, isShown);
}
+ public void setShownAnnotationTypes(Collection<Type> types) {
+ mShowAnnotationsMenu.setSelectedTypes(types);
+ }
+
/**
* @param type
*/