Merge "indicate if morphing is possible"
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DocumentOutlinePage.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DocumentOutlinePage.java
index ea35baf..d6cd02f 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DocumentOutlinePage.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DocumentOutlinePage.java
@@ -4,7 +4,7 @@
* 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:
* John Krasnay - initial API and implementation
* Torsten Stolpmann - bug 257946 - fixed outline view to work with multipage editor.
@@ -19,7 +19,6 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -32,7 +31,6 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IActionBars;
import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.part.Page;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
@@ -77,7 +75,7 @@
vexEditor.addVexEditorListener(vexEditorListener);
vexEditor.getEditorSite().getSelectionProvider().addSelectionChangedListener(selectionListener);
- registerToolbarActions(getSite().getActionBars());
+ initToolbarActions();
if (vexEditor.isLoaded()) {
showTreeViewer();
} else {
@@ -176,6 +174,7 @@
if (treeViewer != null) {
treeViewer.removeSelectionChangedListener(selectionListener);
treeViewer.getTree().dispose();
+ getSite().getActionBars().getToolBarManager().removeAll();
treeViewer = null;
}
@@ -209,6 +208,8 @@
return;
}
+ filterActionGroup.fillActionBars(getSite().getActionBars());
+
final String ns = doctype.getConfig().getUniqueIdentifer();
final Bundle bundle = Platform.getBundle(ns);
final String providerClassName = doctype.getOutlineProvider();
@@ -389,7 +390,7 @@
}
};
- private void registerToolbarActions(final IActionBars actionBars) {
+ private void initToolbarActions() {
final Style style = vexEditor.getStyle();
if (style != null) {
@@ -398,11 +399,5 @@
// Style might be null if no document is loaded
filterActionGroup = new OutlineFilterActionGroup(StyleSheet.NULL);
}
-
- final IToolBarManager toolBarManager = actionBars.getToolBarManager();
- if (toolBarManager != null) {
- filterActionGroup.fillActionBars(actionBars);
- //toolBarManager.add(new ToolBarToggleAction(this, IOutlineViewState.SHOW_ELEMENT_CONTENT, PluginImages.DESC_SHOW_ELEMENT_CONTENT));
- }
}
}
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterAction.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterAction.java
index cc9c217..d0987c0 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterAction.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterAction.java
@@ -51,6 +51,13 @@
}
}
+ /**
+ * @return The filter id associated with this filter action.
+ */
+ public int getFilterId() {
+ return filterId;
+ }
+
@Override
public void run() {
final Preferences preferences = InstanceScope.INSTANCE.getNode(VexPlugin.ID);
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterActionGroup.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterActionGroup.java
index 99a9d2c..38c5b3b 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterActionGroup.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/OutlineFilterActionGroup.java
@@ -39,6 +39,11 @@
filter = new OutlineFilter(styleSheet);
filterActions = actions.toArray(new OutlineFilterAction[actions.size()]);
+
+ // Init filters from preferences
+ for (final OutlineFilterAction action : filterActions) {
+ setFilter(action.getFilterId(), action.isChecked());
+ }
}
public void setFilter(final int filterId, final boolean isSet) {