Author: joern
Date: Wed Nov  2 08:29:45 2011
New Revision: 1196493

URL: http://svn.apache.org/viewvc?rev=1196493&view=rev
Log:
UIMA-2276 Now remembers the last selected type

Modified:
    
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserView.java
    
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserViewPage.java

Modified: 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserView.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserView.java?rev=1196493&r1=1196492&r2=1196493&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserView.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserView.java
 Wed Nov  2 08:29:45 2011
@@ -24,6 +24,8 @@ import org.apache.uima.caseditor.editor.
 import org.apache.uima.caseditor.editor.ICasDocument;
 
 /**
+ * The Feature Structure Browser View displays a list of feature structures 
which
+ * belong to the selected type.
  */
 public final class FeatureStructureBrowserView extends AnnotationEditorView {
   /**
@@ -44,7 +46,7 @@ public final class FeatureStructureBrows
 
                if (document != null) {
                        FeatureStructureBrowserViewPage page = new 
FeatureStructureBrowserViewPage(
-                                       document);
+                                       editor);
                        initPage(page);
                        page.createControl(getPageBook());
 

Modified: 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserViewPage.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserViewPage.java?rev=1196493&r1=1196492&r2=1196493&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserViewPage.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-ep-cas-editor/src/main/java/org/apache/uima/caseditor/editor/fsview/FeatureStructureBrowserViewPage.java
 Wed Nov  2 08:29:45 2011
@@ -35,6 +35,7 @@ import org.apache.uima.caseditor.Images;
 import org.apache.uima.caseditor.editor.AbstractAnnotationDocumentListener;
 import org.apache.uima.caseditor.editor.FeatureValue;
 import org.apache.uima.caseditor.editor.ICasDocument;
+import org.apache.uima.caseditor.editor.ICasEditor;
 import org.apache.uima.caseditor.editor.ModelFeatureStructure;
 import org.apache.uima.caseditor.editor.action.DeleteFeatureStructureAction;
 import org.apache.uima.caseditor.editor.util.StrictTypeConstraint;
@@ -44,6 +45,7 @@ import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.jface.viewers.Viewer;
@@ -59,10 +61,12 @@ import org.eclipse.ui.actions.ActionFact
 import org.eclipse.ui.part.Page;
 
 /**
- * TODO: add javadoc here
+ * The actual view page which contains the ui code for this view.
  */
 public final class FeatureStructureBrowserViewPage extends Page {
-
+  
+  private static final String LAST_SELECTED_FS_TYPE = 
"lastSelectedFeatureStructureBrowserViewType";
+  
   final class FeatureStructureTreeContentProvider extends 
AbstractAnnotationDocumentListener
           implements ITreeContentProvider {
 
@@ -318,6 +322,8 @@ public final class FeatureStructureBrows
 
   private ICasDocument mDocument;
 
+  private ICasEditor mCasEditor;
+  
   private ListViewer mFSList;
 
   private Composite mInstanceComposite;
@@ -330,18 +336,21 @@ public final class FeatureStructureBrows
 
   private Collection<Type> filterTypes;
 
+
   /**
    * Initializes a new instance.
    *
    * @param document
    */
-  public FeatureStructureBrowserViewPage(ICasDocument document) {
+  public FeatureStructureBrowserViewPage(ICasEditor editor) {
 
-       if (document == null)
-               throw new IllegalArgumentException("document parameter must not 
be null!");
+       if (editor == null)
+               throw new IllegalArgumentException("editor parameter must not 
be null!");
 
-    mDocument = document;
+    mDocument = editor.getDocument();
 
+    mCasEditor = editor;
+    
     mDeleteAction = new DeleteFeatureStructureAction(this.mDocument);
 
     mSelectAllAction = new SelectAllAction();
@@ -415,6 +424,7 @@ public final class FeatureStructureBrows
     typeLabelData.horizontalAlignment = SWT.LEFT;
     typeLabel.setLayoutData(typeLabelData);
     
+    
     TypeCombo typeCombo = new TypeCombo(typePanel,
             mDocument.getCAS().getTypeSystem().getType(CAS.TYPE_NAME_TOP),
             mDocument.getCAS().getTypeSystem(), filterTypes);
@@ -423,6 +433,22 @@ public final class FeatureStructureBrows
     typeComboData.grabExcessHorizontalSpace = true;
     typeCombo.setLayoutData(typeComboData);
     
+    final IPreferenceStore store = mCasEditor.getCasDocumentProvider().
+            getSessionPreferenceStore(mCasEditor.getEditorInput());
+    
+    Type lastUsedType = 
mDocument.getType(store.getString(LAST_SELECTED_FS_TYPE));
+    
+    if (lastUsedType != null) {
+      typeCombo.select(lastUsedType);
+    }
+    
+    typeCombo.addListener(new ITypePaneListener() {
+      
+      public void typeChanged(Type newType) {
+        store.setValue(LAST_SELECTED_FS_TYPE, newType.getName());
+      }
+    });
+    
     mFSList = new ListViewer(mInstanceComposite, SWT.MULTI | SWT.V_SCROLL | 
SWT.BORDER);
     GridData instanceListData = new GridData();
     instanceListData.grabExcessHorizontalSpace = true;
@@ -430,8 +456,7 @@ public final class FeatureStructureBrows
     instanceListData.horizontalAlignment = SWT.FILL;
     instanceListData.verticalAlignment = SWT.FILL;
     mFSList.getList().setLayoutData(instanceListData);
-    mFSList
-            .setContentProvider(new 
FeatureStructureTreeContentProvider(mDocument));
+    mFSList.setContentProvider(new 
FeatureStructureTreeContentProvider(mDocument));
     mFSList.setLabelProvider(new FeatureStructureLabelProvider());
 
     mFSList.setUseHashlookup(true);


Reply via email to