Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Chen2012-05-02 03:21:01 +0000
committerWilliam Chen2012-05-02 03:21:01 +0000
commit138f869c6581ea43e9b8831b3b2e6ff0c8f2e9ee (patch)
tree6a9b283deff6441a3c7862d3bec777651a45dbbb /target_explorer/plugins
parentdbc2313def15d6e92f32e837b1f256d645c22ca5 (diff)
downloadorg.eclipse.tcf-138f869c6581ea43e9b8831b3b2e6ff0c8f2e9ee.tar.gz
org.eclipse.tcf-138f869c6581ea43e9b8831b3b2e6ff0c8f2e9ee.tar.xz
org.eclipse.tcf-138f869c6581ea43e9b8831b3b2e6ff0c8f2e9ee.zip
Target Explorer: Change the code that saves and restores the expanding
state of Target Explorer.
Diffstat (limited to 'target_explorer/plugins')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/interfaces/IPersistableExpandingState.java36
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/View.java31
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/ViewExpandingState.java15
3 files changed, 31 insertions, 51 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/interfaces/IPersistableExpandingState.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/interfaces/IPersistableExpandingState.java
deleted file mode 100644
index f8c7b15b7..000000000
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/interfaces/IPersistableExpandingState.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.ui.views.interfaces;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * The interface to define the API to save and restore
- * the persisted states of a common viewer.
- * @see ViewExpandingState
- */
-public interface IPersistableExpandingState {
-
- /**
- * Restore the expanding state of this common viewer using
- * the state persisted in the memento.
- *
- * @param memento The memento that persists the expanding state.
- */
- public void restoreExpandingState(IMemento memento);
-
- /**
- * Save the expanding state of this common viewer to
- * the memento.
- *
- * @param memento The memento to persist the expanding state.
- */
- public void saveExpandingState(IMemento memento);
-}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/View.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/View.java
index 993ef19ed..bdfd063ea 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/View.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/View.java
@@ -29,10 +29,10 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tcf.te.ui.trees.TreeViewerEditorActivationStrategy;
import org.eclipse.tcf.te.ui.views.activator.UIPlugin;
-import org.eclipse.tcf.te.ui.views.interfaces.IPersistableExpandingState;
import org.eclipse.tcf.te.ui.views.interfaces.IRoot;
import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants;
import org.eclipse.ui.IAggregateWorkingSet;
+import org.eclipse.ui.IMemento;
import org.eclipse.ui.ISources;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.PlatformUI;
@@ -42,6 +42,7 @@ import org.eclipse.ui.model.IWorkbenchAdapter;
import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.navigator.CommonViewer;
import org.eclipse.ui.navigator.ICommonActionConstants;
+import org.eclipse.ui.navigator.IMementoAware;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
@@ -63,7 +64,7 @@ public class View extends CommonNavigator implements ITabbedPropertySheetPageCon
private String workingSetLabel;
// The state used to persisted the expanded nodes of the navigator tree.
- private IPersistableExpandingState expandingState;
+ IMementoAware expandingState;
/**
* Constructor.
@@ -152,6 +153,12 @@ public class View extends CommonNavigator implements ITabbedPropertySheetPageCon
// Add the additional custom toolbar groups
addCustomToolbarGroups();
+
+ // Restore expanding state of the common viewer.
+ expandingState = new ViewExpandingState(getCommonViewer());
+ if (getMemento() != null) {
+ expandingState.restoreState(getMemento());
+ }
}
/**
@@ -172,6 +179,20 @@ public class View extends CommonNavigator implements ITabbedPropertySheetPageCon
}
}
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.navigator.CommonNavigator#saveState(org.eclipse.ui.IMemento)
+ */
+ @Override
+ public void saveState(IMemento aMemento) {
+ super.saveState(aMemento);
+
+ // Save expanding state of the common viewer.
+ if (expandingState != null && aMemento != null) {
+ expandingState.saveState(aMemento);
+ }
+ }
+
/* (non-Javadoc)
* @see org.eclipse.ui.navigator.CommonNavigator#handleDoubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
*/
@@ -253,12 +274,6 @@ public class View extends CommonNavigator implements ITabbedPropertySheetPageCon
if(adapter == IPropertySheetPage.class) {
return new TabbedPropertySheetPage(this);
}
- else if(adapter == IPersistableExpandingState.class) {
- if(expandingState == null) {
- expandingState = new ViewExpandingState(getCommonViewer());
- }
- return expandingState;
- }
return super.getAdapter(adapter);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/ViewExpandingState.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/ViewExpandingState.java
index 1f0babb28..8832bbd47 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/ViewExpandingState.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/internal/ViewExpandingState.java
@@ -15,18 +15,18 @@ import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.tcf.te.ui.views.interfaces.IPersistableExpandingState;
import org.eclipse.ui.IElementFactory;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPersistableElement;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.IMementoAware;
/**
* The class used to save and restore the expanding states of
* a common viewer in a navigator.
*/
-public class ViewExpandingState implements IPersistableExpandingState {
+public class ViewExpandingState implements IMementoAware {
// The common viewer whose expanding state is to be persisted.
private CommonViewer viewer;
/**
@@ -35,13 +35,13 @@ public class ViewExpandingState implements IPersistableExpandingState {
public ViewExpandingState(CommonViewer viewer) {
this.viewer = viewer;
}
-
+
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.IPersistableState#restoreExpandingState(org.eclipse.ui.IMemento)
+ * @see org.eclipse.ui.navigator.IMementoAware#restoreState(org.eclipse.ui.IMemento)
*/
@Override
- public void restoreExpandingState(IMemento memento) {
+ public void restoreState(IMemento memento) {
IMemento memExpand = memento.getChild("expanded-elements"); //$NON-NLS-1$
if(memExpand != null) {
IMemento[] memElements = memExpand.getChildren("element"); //$NON-NLS-1$
@@ -62,12 +62,13 @@ public class ViewExpandingState implements IPersistableExpandingState {
}
}
}
+
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.IPersistableState#saveExpandingState(org.eclipse.ui.IMemento)
+ * @see org.eclipse.ui.navigator.IMementoAware#saveState(org.eclipse.ui.IMemento)
*/
@Override
- public void saveExpandingState(IMemento memento) {
+ public void saveState(IMemento memento) {
Object[] elements = viewer.getVisibleExpandedElements(); // Do not remember invisible expanded elements.
if(elements != null && elements.length > 0) {
IMemento memExpand = memento.createChild("expanded-elements"); //$NON-NLS-1$

Back to the top