Author: joern
Date: Thu Dec 22 02:07:27 2011
New Revision: 1221993

URL: http://svn.apache.org/viewvc?rev=1221993&view=rev
Log:
UIMA-2298 Replaced boolean combo with a checkbox like control. Thanks to Oliver 
Ferschke for providing a patch.

Modified:
    
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/editview/EditViewPage.java

Modified: 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/editview/EditViewPage.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/editview/EditViewPage.java?rev=1221993&r1=1221992&r2=1221993&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/editview/EditViewPage.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/editview/EditViewPage.java
 Thu Dec 22 02:07:27 2011
@@ -54,8 +54,8 @@ import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CheckboxCellEditor;
 import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
 import org.eclipse.jface.viewers.EditingSupport;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -144,8 +144,7 @@ final class EditViewPage extends Page im
           CellEditor editor;
 
           if 
(value.getFeature().getRange().getName().equals(CAS.TYPE_NAME_BOOLEAN)) {
-            editor = new ComboBoxCellEditor(viewer.getTree(), new 
String[]{"false", "true"},
-                    SWT.READ_ONLY);
+            editor = new CheckboxCellEditor(viewer.getTree(), SWT.CHECK);
           }
           else {
             editor = new TextCellEditor(viewer.getTree());
@@ -167,9 +166,7 @@ final class EditViewPage extends Page im
         CellEditor editor;
 
         if (arrayFS instanceof BooleanArrayFS) {
-          editor = new ComboBoxCellEditor(viewer.getTree(), new 
String[]{"false", "true"},
-                  SWT.READ_ONLY);
-          editor.setStyle(SWT.READ_ONLY);
+          editor = new CheckboxCellEditor(viewer.getTree(), SWT.CHECK);
         }
         else {
           editor = new TextCellEditor(viewer.getTree());
@@ -207,19 +204,6 @@ final class EditViewPage extends Page im
       }
     }
 
-    private int booleanToInt(boolean value) {
-      if (value) {
-        return 1;
-      }
-      else {
-        return 0;
-      }
-    }
-
-    private boolean intToBoolean(int value) {
-      return value == 1;
-    }
-
     @Override
     protected Object getValue(Object element) {
 
@@ -234,8 +218,7 @@ final class EditViewPage extends Page im
         }
         else {
           // for booleans
-          return booleanToInt(featureValue.getFeatureStructure().
-              getBooleanValue(featureValue.getFeature()));
+          return Primitives.getPrimitive(featureValue.getFeatureStructure(), 
featureValue.getFeature());
         }
 
       }
@@ -247,7 +230,7 @@ final class EditViewPage extends Page im
             return value.get().toString();
           }
           else {
-            return booleanToInt((Boolean) value.get());
+            return value.get();
           }
       }
       else {
@@ -276,8 +259,7 @@ final class EditViewPage extends Page im
             }
           }
           else {
-            
featureValue.getFeatureStructure().setBooleanValue(featureValue.getFeature(),
-                    intToBoolean((Integer) value));
+            
featureValue.getFeatureStructure().setBooleanValue(featureValue.getFeature(),(Boolean)
 value);
           }
           document.update(featureValue.getFeatureStructure());
 
@@ -291,8 +273,7 @@ final class EditViewPage extends Page im
             arrayValue.set((String) value);
           }
           else {
-            arrayValue.set(Boolean.toString(
-                    intToBoolean((Integer) value)).toString());
+            arrayValue.set(value.toString());
           }
 
           document.update(arrayValue.getFeatureStructure());
@@ -304,6 +285,7 @@ final class EditViewPage extends Page im
     }
   }
 
+
   final class DeleteFeatureStructureValue extends BaseSelectionListenerAction {
 
     protected DeleteFeatureStructureValue() {
@@ -375,14 +357,15 @@ final class EditViewPage extends Page im
 
 
     FeatureStructure createFS(Type type, int arraySize) {
-               
-      if (type.isPrimitive())
-         throw new IllegalArgumentException("Cannot create FS for primitive 
type!");
-      
+
+      if (type.isPrimitive()) {
+        throw new IllegalArgumentException("Cannot create FS for primitive 
type!");
+      }
+
       FeatureStructure fs;
-      
+
       TypeSystem ts = document.getCAS().getTypeSystem();
-      
+
       if (type.isArray()) {
           if (type.getName().equals(CAS.TYPE_NAME_BOOLEAN_ARRAY)) {
               fs = document.getCAS().createBooleanArrayFS(arraySize);
@@ -404,23 +387,23 @@ final class EditViewPage extends Page im
               fs = document.getCAS().createArrayFS(arraySize);
             } else {
               throw new CasEditorError("Unkown array type: " + type.getName() 
+ "!");
-            }  
+            }
       }
       else if (ts.subsumes(ts.getType(CAS.TYPE_NAME_ANNOTATION), type)) {
-       
-       // get begin of selection from editor, if any  
-       // TODO: Add an interface to retrieve the span from the editor  
-       
+
+       // get begin of selection from editor, if any
+       // TODO: Add an interface to retrieve the span from the editor
+
        int begin = 0;
        int end = 0;
-       
+
        if (editor instanceof AnnotationEditor) {
          Point selection = ((AnnotationEditor) editor).getSelection();
-         
+
          begin = selection.x;
          end = selection.y;
        }
-       
+
        fs = document.getCAS().createAnnotation(type, begin, end);
       }
       else if (!type.isArray()) {
@@ -429,7 +412,7 @@ final class EditViewPage extends Page im
       else {
         throw new TaeError("Unexpected error!");
       }
-      
+
       return fs;
     }
 
@@ -556,20 +539,21 @@ final class EditViewPage extends Page im
 
   private ICasDocument document;
   private ICasEditor editor;
-  
+
   private PinAction pinAction;
 
   private final EditView editView;
 
   EditViewPage(EditView editView, ICasEditor editor, ICasDocument document) {
 
-       if (editView == null || document == null)
-        throw new IllegalArgumentException("Parameters must not be null!");
+       if (editView == null || document == null) {
+               throw new IllegalArgumentException("Parameters must not be 
null!");
+       }
 
     this.editView = editView;
     this.editor = editor;
     this.document = document;
-    
+
   }
 
   @Override
@@ -596,7 +580,7 @@ final class EditViewPage extends Page im
 
     valueColumn.setEditingSupport(new ValueEditingSupport(viewer));
 
-    
+
     FeatureStructureContentProvider contentProvider =
         new FeatureStructureContentProvider(document);
 
@@ -650,13 +634,13 @@ final class EditViewPage extends Page im
 
               // this can fail
               FeatureValue value = (FeatureValue) tableItem.getData();
-              
+
               TypeSystem typeSystem = 
value.getFeatureStructure().getCAS().getTypeSystem();
-              
+
               Type range = value.getFeature().getRange();
 
               FeatureStructure dragFeatureStructure = (FeatureStructure) 
event.data;
-              
+
               if (typeSystem.subsumes(range, dragFeatureStructure.getType())) {
 
                 FeatureStructure target = value.getFeatureStructure();
@@ -750,11 +734,11 @@ final class EditViewPage extends Page im
   public void setActionBars(IActionBars actionBars) {
     // pin action
     pinAction = new PinAction();
-    
+
     pinAction.setText("Pin");
     
pinAction.setImageDescriptor(CasEditorPlugin.getTaeImageDescriptor(Images.PIN));
     actionBars.getToolBarManager().add(pinAction);
-    
+
     CreateFeatureStructrueValue createAction = new 
CreateFeatureStructrueValue();
     
createAction.setImageDescriptor(CasEditorPlugin.getTaeImageDescriptor(Images.ADD));
     actionBars.getToolBarManager().add(createAction);
@@ -777,12 +761,12 @@ final class EditViewPage extends Page im
 
     if (getSite().getPage().getActiveEditor() == editor) {
       if (selection instanceof IStructuredSelection) {
-  
+
         FeatureStructureSelection fsSelection = new FeatureStructureSelection(
                 (IStructuredSelection) selection);
-  
+
         if (fsSelection.size() == 1 && !pinAction.isChecked()) {
-  
+
           // filter out selection which are cause by this view itself
           if (editView != part) {
             viewer.setInput(fsSelection.toList().get(0));


Reply via email to