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:
Icon | -Description | -||
---|---|---|---|
![]() |
- Hide Fields | -||
![]() |
- Hide Static Members | -||
![]() |
- Hide Non-Public Members | -||
![]() |
- Sort | -
Icon | +Description | +
---|---|
![]() |
+ Collapse All | +
![]() |
+ Sort items alphabetically | +
![]() |
+ Hide Fields | +
![]() |
+ Hide Static Members | +
![]() |
+ Hide Non-Public Members | +
![]() |
+ Hide 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 3f9a9704f51..6a2c58c667b 100644 Binary files a/doc/org.eclipse.cdt.doc.user/images/outlineView.png and b/doc/org.eclipse.cdt.doc.user/images/outlineView.png differ diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_outline_view.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_outline_view.htm index d70f7f370dd..84b5413056d 100644 --- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_outline_view.htm +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_outline_view.htm @@ -27,6 +27,14 @@ open in the editor area, by listing the structural elements.