From 3bd21a03c459db8758352c5f70dabd15bb79fe24 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Tue, 3 Jan 2012 00:01:59 -0500 Subject: [PATCH] [Outline] Add Collapse All button --- .../internal/ui/actions/ActionMessages.java | 5 +- .../ui/actions/ActionMessages.properties | 6 ++- .../{cview => actions}/CollapseAllAction.java | 31 ++++++----- .../eclipse/cdt/internal/ui/cview/CView.java | 8 +-- .../cdt/internal/ui/cview/CViewMessages.java | 5 +- .../ui/cview/CViewMessages.properties | 6 +-- .../internal/ui/cview/MainActionGroup.java | 6 ++- .../ui/editor/AbstractCModelOutlinePage.java | 13 +++++ .../concepts/cdt_c_outlineview.htm | 50 ++++++++++-------- .../images/outlineView.png | Bin 16625 -> 11699 bytes .../reference/cdt_u_outline_view.htm | 14 +++-- 11 files changed, 88 insertions(+), 56 deletions(-) rename core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/{cview => actions}/CollapseAllAction.java (60%) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.java index bb59cbe20ae..b68ebfdb6cf 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2001, 2010 IBM Corporation and others. + * Copyright (c) 2001, 2011 IBM Corporation 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 @@ -91,6 +91,9 @@ public class ActionMessages extends NLS { public static String FormatAllAction_failedvalidateedit_message; public static String FormatAllAction_noundo_title; public static String FormatAllAction_noundo_message; + public static String CollapseAllAction_label; + public static String CollapseAllAction_tooltip; + public static String CollapseAllAction_description; static { // Initialize resource bundle. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.properties index c27f42bce76..44e4f33a4e5 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2000, 2010 IBM Corporation and others. +# Copyright (c) 2000, 2011 IBM Corporation 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 @@ -109,3 +109,7 @@ FormatAllAction_failedvalidateedit_title=Format FormatAllAction_failedvalidateedit_message=Problems while accessing selected files. FormatAllAction_noundo_title=Format FormatAllAction_noundo_message='Undo' is not supported by this operation. Do you want to continue? + +CollapseAllAction_label=Collapse All +CollapseAllAction_tooltip=Collapse All +CollapseAllAction_description=Collapse All diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CollapseAllAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CollapseAllAction.java similarity index 60% rename from core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CollapseAllAction.java rename to core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CollapseAllAction.java index 8f06d23d398..42706c7ec3e 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CollapseAllAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/CollapseAllAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation 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 @@ -8,31 +8,38 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.cdt.internal.ui.cview; +package org.eclipse.cdt.internal.ui.actions; -import org.eclipse.cdt.internal.ui.ICHelpContextIds; -import org.eclipse.cdt.internal.ui.CPluginImages; import org.eclipse.jface.action.Action; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.ui.PlatformUI; +import org.eclipse.cdt.internal.ui.CPluginImages; +import org.eclipse.cdt.internal.ui.ICHelpContextIds; + /** * Collapse all nodes. */ -class CollapseAllAction extends Action { +public class CollapseAllAction extends Action { - private CView cview; + private final TreeViewer fViewer; - CollapseAllAction(CView part) { - super(CViewMessages.CollapseAllAction_label); - setDescription(CViewMessages.CollapseAllAction_description); - setToolTipText(CViewMessages.CollapseAllAction_tooltip); + public CollapseAllAction(TreeViewer viewer) { + super(ActionMessages.CollapseAllAction_label); + setDescription(ActionMessages.CollapseAllAction_description); + setToolTipText(ActionMessages.CollapseAllAction_tooltip); CPluginImages.setImageDescriptors(this, CPluginImages.T_LCL, CPluginImages.IMG_MENU_COLLAPSE_ALL); - cview = part; + fViewer = viewer; PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.COLLAPSE_ALL_ACTION); } @Override public void run() { - cview.collapseAll(); + try { + fViewer.getControl().setRedraw(false); + fViewer.collapseAll(); + } finally { + fViewer.getControl().setRedraw(true); + } } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java index 099f7babe95..4b79c6a4bea 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 QNX Software Systems and others. + * Copyright (c) 2000, 2011 QNX Software Systems 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 @@ -929,12 +929,6 @@ public class CView extends ViewPart implements ISetSelectionTarget, IPropertyCha return null; } - public void collapseAll() { - viewer.getControl().setRedraw(false); - viewer.collapseToLevel(getViewPartInput(), AbstractTreeViewer.ALL_LEVELS); - viewer.getControl().setRedraw(true); - } - void restoreState(IMemento memento) { CoreModel factory = CoreModel.getDefault(); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.java index e646d874fb3..621c8535df9 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation 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 @@ -25,9 +25,6 @@ public final class CViewMessages extends NLS { public static String BuildAction_label; public static String RebuildAction_label; public static String CleanAction_label; - public static String CollapseAllAction_label; - public static String CollapseAllAction_tooltip; - public static String CollapseAllAction_description; public static String CopyAction_title; public static String CopyAction_toolTip; public static String PasteAction_title; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties index 56993fc3e00..0b298856850 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CViewMessages.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2000, 2009 IBM Corporation and others. +# Copyright (c) 2000, 2011 IBM Corporation 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 @@ -17,10 +17,6 @@ BuildAction_label=&Build Project RebuildAction_label=Rebuild Pro&ject CleanAction_label=Clean Project -CollapseAllAction_label=Collapse All -CollapseAllAction_tooltip=Collapse All -CollapseAllAction_description=Collapse All - CopyAction_title = &Copy CopyAction_toolTip = Copy diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java index fbc24891a47..a445f98388c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2008 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation 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 @@ -45,6 +45,7 @@ import org.eclipse.cdt.ui.actions.OpenViewActionGroup; import org.eclipse.cdt.ui.refactoring.actions.CRefactoringActionGroup; import org.eclipse.cdt.internal.ui.IContextMenuConstants; +import org.eclipse.cdt.internal.ui.actions.CollapseAllAction; import org.eclipse.cdt.internal.ui.actions.SelectionConverter; import org.eclipse.cdt.internal.ui.editor.OpenIncludeAction; import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup; @@ -133,6 +134,7 @@ public class MainActionGroup extends CViewActionGroup { //sortByTypeAction = new SortViewAction(this, true); IPropertyChangeListener workingSetUpdater = new IPropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent event) { String property = event.getProperty(); @@ -158,7 +160,7 @@ public class MainActionGroup extends CViewActionGroup { importAction = new ImportResourcesAction(getCView().getSite().getWorkbenchWindow()); exportAction = new ExportResourcesAction(getCView().getSite().getWorkbenchWindow()); - collapseAllAction = new CollapseAllAction(getCView()); + collapseAllAction = new CollapseAllAction(getCView().getViewer()); toggleLinkingAction = new ToggleLinkingAction(getCView()); toggleLinkingAction.setImageDescriptor(getImageDescriptor("elcl16/synced.gif"));//$NON-NLS-1$ diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AbstractCModelOutlinePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AbstractCModelOutlinePage.java index 697a80ad0cc..e7640ba8e12 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AbstractCModelOutlinePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/AbstractCModelOutlinePage.java @@ -21,6 +21,7 @@ import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; +import org.eclipse.jface.commands.ActionHandler; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.util.PropertyChangeEvent; @@ -46,6 +47,8 @@ import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.actions.ActionContext; import org.eclipse.ui.actions.ActionGroup; +import org.eclipse.ui.handlers.CollapseAllHandler; +import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.navigator.resources.ProjectExplorer; import org.eclipse.ui.part.IPageSite; import org.eclipse.ui.part.IShowInSource; @@ -71,6 +74,7 @@ import org.eclipse.cdt.internal.ui.ICHelpContextIds; import org.eclipse.cdt.internal.ui.IContextMenuConstants; import org.eclipse.cdt.internal.ui.actions.AbstractToggleLinkingAction; import org.eclipse.cdt.internal.ui.actions.ActionMessages; +import org.eclipse.cdt.internal.ui.actions.CollapseAllAction; import org.eclipse.cdt.internal.ui.cview.SelectionTransferDragAdapter; import org.eclipse.cdt.internal.ui.cview.SelectionTransferDropAdapter; import org.eclipse.cdt.internal.ui.dnd.CDTViewerDragAdapter; @@ -294,6 +298,10 @@ public abstract class AbstractCModelOutlinePage extends Page implements IContent * @since 3.0 */ private ActionGroup fCustomFiltersActionGroup; + /** + * @since 5.4 + */ + private CollapseAllAction fCollapseAllAction; /** * Create a new outline page for the given editor. @@ -520,6 +528,9 @@ public abstract class AbstractCModelOutlinePage extends Page implements IContent fTreeViewer.setInput(fInput); PlatformUI.getWorkbench().getHelpSystem().setHelp(control, ICHelpContextIds.COUTLINE_VIEW); + + IHandlerService handlerService= (IHandlerService)site.getService(IHandlerService.class); + handlerService.activateHandler(CollapseAllHandler.COMMAND_ID, new ActionHandler(fCollapseAllAction)); } @Override @@ -582,6 +593,8 @@ public abstract class AbstractCModelOutlinePage extends Page implements IContent protected void registerActionBars(IActionBars actionBars) { IToolBarManager toolBarManager= actionBars.getToolBarManager(); + fCollapseAllAction = new CollapseAllAction(fTreeViewer); + toolBarManager.add(fCollapseAllAction); LexicalSortingAction action= new LexicalSortingAction(getTreeViewer()); toolBarManager.add(action); diff --git a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_outlineview.htm b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_outlineview.htm index 83c089da869..99a663ecc10 100644 --- a/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_outlineview.htm +++ b/doc/org.eclipse.cdt.doc.user/concepts/cdt_c_outlineview.htm @@ -72,27 +72,35 @@ items:

Icons

-

- - - - - - - - - - - - - - - - - - - - +

IconDescription
Hide Fields ButtonHide Fields
Hide Static Members ButtonHide Static Members
Hide Non Public Members ButtonHide Non-Public Members
Sort ButtonSort
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
IconDescription
Collapse All IconCollapse All
Sort items alphabetically IconSort items alphabetically
Hide Fields IconHide Fields
Hide Static Members IconHide Static Members
Hide Non-Public Members IconHide Non-Public Members
Hide Inactive Elements IconHide Inactive Elements

For more information about the Eclipse workbench, see Workbench User Guide > Tasks > Upgrading Eclipse.

diff --git a/doc/org.eclipse.cdt.doc.user/images/outlineView.png b/doc/org.eclipse.cdt.doc.user/images/outlineView.png index 3f9a9704f518dbfb9f65b586c173450155081122..6a2c58c667bdf159a26f27212f9eda9a01783528 100644 GIT binary patch literal 11699 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 Icon Description + + Collapse All Icon + Collapse All + + + Sort items alphabetically Icon + Sort items alphabetically + Hide Fields Icon Hide Fields @@ -40,8 +48,8 @@ open in the editor area, by listing the structural elements.

Hide Non-Public Members - Sort items alphabetically Icon - Sort items alphabetically + Hide Inactive Elements Icon + Hide Inactive Elements @@ -65,7 +73,7 @@ open in the editor area, by listing the structural elements.

- Namespace icon + Namespace icon Namespace