diff options
14 files changed, 14 insertions, 1147 deletions
diff --git a/org.eclipse.debug.core/r3_0_changes.html b/org.eclipse.debug.core/r3_0_changes.html index 12df5a046..89f8a0431 100644 --- a/org.eclipse.debug.core/r3_0_changes.html +++ b/org.eclipse.debug.core/r3_0_changes.html @@ -165,6 +165,18 @@ <h2>API Changes</h2> +<h3>Debug Action Groups removed</h3> +<p>The Debug Action Groups extension point (org.eclipse.debug.ui.debugActionGroups) has been + removed. In Eclipse 3.0, the workbench introduced support for Activities via the + org.eclipse.platform.ui.activities extension point. This support provides everything + that Debug Action Groups provided and is also easier to use (it supports patterns instead of + specifying all actions exhaustively) and has a programmatic API to support it.</p> +<p>Failing to remove references to the old extension point won't cause any failures. + References to the extension point will simply be ignored. Product vendors are encouraged to + use the workbench Activities support to associate language-specific debugger actions with + language-specific activities (for example, C++ debugging actions might be associated with + an activity called "Developing C++").</p> + <h3>Extensible Launch Modes</h3> <p>With the introduction of extensible launch modes, more than one launch delegate can exist for a launch configuration type. Releases prior to 3.0 only supported diff --git a/org.eclipse.debug.ui/plugin.properties b/org.eclipse.debug.ui/plugin.properties index bd0fef742..910937fff 100644 --- a/org.eclipse.debug.ui/plugin.properties +++ b/org.eclipse.debug.ui/plugin.properties @@ -27,8 +27,6 @@ ContextViewBindingsName=Context View Bindings BreakpoingActionSet.label=Breakpoints CopyToClipboardAction.label=&Copy Stack CopyVariablesToClipboardAction.label=Copy &Variables -DebugActionGroupsExtensionName= Debug Action Groups -DebugActionGroupsPreferencePage.name=Debug Action Groups DebugActionSet.label=Debug DebugConfigurations.label=D&ebug... debugCurrentInstructionPointer=Debug Current Instruction Pointer diff --git a/org.eclipse.debug.ui/plugin.xml b/org.eclipse.debug.ui/plugin.xml index 54503103f..ba3eb8b29 100644 --- a/org.eclipse.debug.ui/plugin.xml +++ b/org.eclipse.debug.ui/plugin.xml @@ -32,7 +32,6 @@ <!-- Extension points --> <extension-point id="consoleColorProviders" name="%ConsoleColorProvidersExtensionName" schema="schema/consoleColorProviders.exsd"/> <extension-point id="consoleLineTrackers" name="%ConsoleLineTrackersExtensionName" schema="schema/consoleLineTrackers.exsd"/> - <extension-point id="debugActionGroups" name="%DebugActionGroupsExtensionName" schema="schema/debugActionGroups.exsd"/> <extension-point id="debugModelPresentations" name="%DebugModelPresentationExtensionName" schema="schema/debugModelPresentations.exsd"/> <extension-point id="launchConfigurationTabGroups" name="%LaunchConfigurationTabGroupExtensionName" schema="schema/launchConfigurationTabGroups.exsd"/> <extension-point id="launchConfigurationTypeImages" name="%LaunchConfigurationTypeImageExtensionName" schema="schema/launchConfigurationTypeImages.exsd"/> @@ -128,12 +127,6 @@ id="org.eclipse.debug.ui.ConsolePreferencePage"> </page> <page - name="%DebugActionGroupsPreferencePage.name" - category="org.eclipse.debug.ui.DebugPreferencePage" - class="org.eclipse.debug.internal.ui.preferences.DebugActionGroupsPreferencePage" - id="org.eclipse.debug.ui.DebugActionGroupsPreferencePage"> - </page> - <page name="%StringVariablePreferencePage.name" category="org.eclipse.debug.ui.DebugPreferencePage" class="org.eclipse.debug.internal.ui.preferences.StringVariablePreferencePage" diff --git a/org.eclipse.debug.ui/schema/debugActionGroups.exsd b/org.eclipse.debug.ui/schema/debugActionGroups.exsd deleted file mode 100644 index 0e56be24c..000000000 --- a/org.eclipse.debug.ui/schema/debugActionGroups.exsd +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!-- Schema file written by PDE --> -<schema targetNamespace="org.eclipse.debug.ui"> -<annotation> - <appInfo> - <meta.schema plugin="org.eclipse.debug.ui" id="debugActionGroups" name="Debug Action Groups"/> - </appInfo> - <documentation> - This extension point provides a mechanism to specify the visibility of action groups. -Any view that returns an instance of IDebugView when queried with #getAdapter(IDebugView.class) will have its context menu -and toolbar affected by the visibility of the action groups. - </documentation> -</annotation> - - <element name="extension"> - <complexType> - <sequence> - <element ref="debugActionGroup" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - <attribute name="point" type="string" use="required"> - <annotation> - <documentation> - a fully qualified identifier of the target extension point - </documentation> - </annotation> - </attribute> - <attribute name="id" type="string"> - <annotation> - <documentation> - an optional identifier of the extension instance - </documentation> - </annotation> - </attribute> - <attribute name="name" type="string"> - <annotation> - <documentation> - an optional name of the extension instance - </documentation> - </annotation> - </attribute> - </complexType> - </element> - - <element name="debugActionGroup"> - <annotation> - <appInfo> - <meta.element labelAttribute="name"/> - </appInfo> - </annotation> - <complexType> - <sequence> - <element ref="action" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - <attribute name="id" type="string" use="required"> - <annotation> - <documentation> - specifies a unique identifier for this debug action group. - </documentation> - </annotation> - </attribute> - <attribute name="name" type="string" use="required"> - <annotation> - <documentation> - a translatable name that will be used for the debug action group label. - </documentation> - </annotation> - </attribute> - <attribute name="visible" type="boolean"> - <annotation> - <documentation> - an optional attribute indicating the visibility of the group. If omitted, the group is set to be visible. - </documentation> - </annotation> - </attribute> - </complexType> - </element> - - <element name="action"> - <complexType> - <attribute name="id" type="string" use="required"> - <annotation> - <documentation> - the unique identifier of an action that will be added to the debug action group. - </documentation> - </annotation> - </attribute> - </complexType> - </element> - - <annotation> - <appInfo> - <meta.section type="examples"/> - </appInfo> - <documentation> - The following is an example of a debug action group extension point. In all debug views (views that return -an instance of IDebugView when queried with #getAdapter(IDebugView.class)), the actions listed will not -be visible in the toolbar or context menu of the view. - -<p> -<pre> - <extension point="org.eclipse.debug.ui.debugActionGroups"> - <debugActionGroup - id="org.eclipse.jdt.debug.ui.javaDebugActionGroup" - visible="false" - name="Java Debug"> - <action id="org.eclipse.jdt.ui.actions.RunToLineToolbar"/> - <action id="org.eclipse.jdt.ui.breakpointViewActions.ShowQualified"/> - </debugActionGroup> - </extension> -</pre> -</p> - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="implementation"/> - </appInfo> - <documentation> - Currently, the org.eclipse.jdt.debug.ui plugin provides the org.eclipse.jdt.debug.ui.javaDebugActionGroup - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="copyright"/> - </appInfo> - <documentation> - <p> -<a href="hglegal.htm"> - <img SRC="ngibmcpy.gif" - ALT="Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved." - BORDER=0 height=14 width=324></a> -</p> - </documentation> - </annotation> - -</schema> diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java index 122aa7b3e..c61542ac7 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java @@ -49,7 +49,6 @@ import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager; import org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager; -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager; import org.eclipse.debug.internal.ui.preferences.IDebugPreferenceConstants; import org.eclipse.debug.internal.ui.stringsubstitution.SelectedResourceManager; import org.eclipse.debug.internal.ui.views.console.ConsoleDocumentManager; @@ -286,9 +285,6 @@ public class DebugUIPlugin extends AbstractUIPlugin implements ILaunchListener { if (fPerspectiveManager != null) { fPerspectiveManager.shutdown(); } - if (DebugActionGroupsManager.defaultExists()) { - DebugActionGroupsManager.getDefault().shutdown(); - } if (fLaunchConfigurationManager != null) { fLaunchConfigurationManager.shutdown(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsActionContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsActionContentProvider.java deleted file mode 100644 index 94feb4769..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsActionContentProvider.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.preferences; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager.DebugActionGroup; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.Viewer; - -public class DebugActionGroupsActionContentProvider implements IStructuredContentProvider { - - /** - * @see IStructuredContentProvider#getElements(Object) - */ - public Object[] getElements(Object element) { - List actionContributionItems= null; - if (element instanceof DebugActionGroup) { - DebugActionGroup actionSet= (DebugActionGroup)element; - List allActionIds= actionSet.getActionIds(); - Iterator actionIds= allActionIds.iterator(); - actionContributionItems= new ArrayList(allActionIds.size()); - while (actionIds.hasNext()) { - String actionId= (String)actionIds.next(); - Map idsToActions= DebugActionGroupsManager.getDefault().fDebugActionGroupActions; - List actions= (List)idsToActions.get(actionId); - if (actions != null) { - actionContributionItems.addAll(actions); - } - } - } - if (actionContributionItems != null) { - if (actionContributionItems.isEmpty()) { - return new String[]{DebugPreferencesMessages.getString("DebugActionGroupsActionContentProvider.Updated_when_Debug_perspective_activated_1")}; //$NON-NLS-1$ - } else { - return actionContributionItems.toArray(); - } - } else { - return new String[]{DebugPreferencesMessages.getString("DebugActionGroupsActionContentProvider.Updated_when_Debug_perspective_activated_1")}; //$NON-NLS-1$ - } - } - /** - * @see IContentProvider#dispose() - */ - public void dispose() { - } - - /** - * @see IContentProvider#inputChanged(Viewer, Object, Object) - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } -} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsContentProvider.java deleted file mode 100644 index ceca72ad6..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsContentProvider.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.preferences; - -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager.DebugActionGroup; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.Viewer; - -public class DebugActionGroupsContentProvider implements IStructuredContentProvider { - - private CheckboxTableViewer fViewer; - - public DebugActionGroupsContentProvider(CheckboxTableViewer viewer) { - fViewer = viewer; - populateTable(); - } - - /** - * @see IStructuredContentProvider#getElements(Object) - */ - public Object[] getElements(Object element) { - Map groups= DebugActionGroupsManager.getDefault().fDebugActionGroups; - if (groups == null) { - return new Object[0]; - } - Collection allViewActionSets = groups.values(); - return allViewActionSets.toArray(); - } - /** - * @see IContentProvider#dispose() - */ - public void dispose() { - } - - /** - * @see IContentProvider#inputChanged(Viewer, Object, Object) - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } - - protected void populateTable() { - Map groups= DebugActionGroupsManager.getDefault().fDebugActionGroups; - if (groups == null) { - return; - } - Collection allViewActionSets =groups.values(); - Iterator iterator = allViewActionSets.iterator(); - while (iterator.hasNext()) { - DebugActionGroup set = (DebugActionGroup) iterator.next(); - fViewer.add(set); - fViewer.setChecked(set, set.isVisible()); - } - } -} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsLabelProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsLabelProvider.java deleted file mode 100644 index 8b3caa13d..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsLabelProvider.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.preferences; - - -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager.DebugActionGroup; -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager.DebugActionGroupAction; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; - -public class DebugActionGroupsLabelProvider extends LabelProvider { - - private String UNKNOWN = DebugPreferencesMessages.getString("DebugActionGroupsLabelProvider.<Unknown>_1"); //$NON-NLS-1$ - - public DebugActionGroupsLabelProvider() { - super(); - } - - /** - * @see ILabelProvider#getText(Object) - */ - public String getText(Object element) { - String label = UNKNOWN; - if (element instanceof DebugActionGroup) { - label = ((DebugActionGroup) element).getName(); - } else if (element instanceof DebugActionGroupAction) { - label = ((DebugActionGroupAction) element).getName(); - } else if (element instanceof String) { - label= (String)element; - } - return label; - } - - /** - * @see ILabelProvider#getImage(Object) - */ - public Image getImage(Object element) { - Image image= null; - if (element instanceof DebugActionGroupAction) { - image = ((DebugActionGroupAction) element).getImage(); - } - return image; - } -} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsManager.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsManager.java deleted file mode 100644 index 23c273d7f..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsManager.java +++ /dev/null @@ -1,561 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.preferences; - - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.IPluginDescriptor; -import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.ui.AbstractDebugView; -import org.eclipse.debug.ui.IDebugUIConstants; -import org.eclipse.debug.ui.IDebugView; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IContributionItem; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IViewPart; - -public class DebugActionGroupsManager implements IMenuListener { - - // constants indicating action locations - public static final int TYPE_TOOLBAR = 0; - public static final int TYPE_VIEW_MENU = 1; - public static final int TYPE_CONTEXT_MENU = 2; - - protected List fDebugViews= new ArrayList(6); - protected Map fDebugViewsWithMenu= new HashMap(6); - protected Map fDebugActionGroups; - protected Map fDebugActionGroupActionIds; - protected Map fDebugActionGroupActions = new HashMap(); - - protected static DebugActionGroupsManager fgManager; - - private DebugActionGroupsManager() { - //@see getDefault() - } - - /** - * Returns the debug action groups manager - */ - public static DebugActionGroupsManager getDefault() { - if (fgManager == null) { - fgManager = new DebugActionGroupsManager(); - fgManager.startup(); - } - return fgManager; - } - - /** - * Returns whether the singleton instance of the manager exists - */ - public static boolean defaultExists() { - return fgManager != null; - } - - /** - * Called by the debug ui plug-in on startup. - */ - public void startup() { - initialize(); - } - - /** - * Called by the debug ui plug-in on shutdown. - */ - public void shutdown() { - for (Iterator iterator = fDebugActionGroupActions.values().iterator(); iterator.hasNext();) { - List actions= (List)iterator.next(); - for (Iterator itr = actions.iterator(); itr.hasNext();) { - DebugActionGroupAction action = (DebugActionGroupAction) itr.next(); - action.dispose(); - } - } - } - - private List persistedEnabledActionGroups() { - - String enabled= DebugUIPlugin.getDefault().getPreferenceStore().getString(IDebugPreferenceConstants.PREF_ENABLED_DEBUG_ACTION_GROUPS); - if (enabled != null) { - return parseList(enabled); - } - return Collections.EMPTY_LIST; - } - - private List persistedDisabledActionGroups() { - - String enabled= DebugUIPlugin.getDefault().getPreferenceStore().getString(IDebugPreferenceConstants.PREF_DISABLED_DEBUG_ACTION_GROUPS); - if (enabled != null) { - return parseList(enabled); - } - return Collections.EMPTY_LIST; - } - - /** - * Create the mapping of actions to debug action groups - */ - private void initialize() { - IPluginDescriptor descriptor = DebugUIPlugin.getDefault().getDescriptor(); - IExtensionPoint extensionPoint = - descriptor.getExtensionPoint(IDebugUIConstants.EXTENSION_POINT_DEBUG_ACTION_GROUPS); - IConfigurationElement[] infos = extensionPoint.getConfigurationElements(); - if (infos.length == 0) { - return; - } - - fDebugActionGroupActionIds = new HashMap(); - fDebugActionGroups = new HashMap(10); - List userEnabledGroups= persistedEnabledActionGroups(); - List userDisabledGroups= persistedDisabledActionGroups(); - - for (int i = 0; i < infos.length; i++) { - IConfigurationElement configurationElement = infos[i]; - String id = configurationElement.getAttribute("id"); //$NON-NLS-1$ - String visible = configurationElement.getAttribute("visible"); //$NON-NLS-1$ - boolean isVisible = true; - if (visible != null) { - isVisible = Boolean.valueOf(visible).booleanValue(); - } - if (!isVisible && userEnabledGroups.contains(id)) { - isVisible= true; - } else if (isVisible && userDisabledGroups.contains(id)) { - isVisible= false; - } - - String name = configurationElement.getAttribute("name"); //$NON-NLS-1$ - - if (id != null && name != null) { - if (fDebugActionGroups.get(id) != null) { - //duplicate id..report error and ignore extension - DebugUIPlugin.logErrorMessage(MessageFormat.format(DebugPreferencesMessages.getString("DebugActionGroupsManager.Duplicate_action_group_id"), new String[]{id})); //$NON-NLS-1$ - continue; - } - - IConfigurationElement[] children = configurationElement.getChildren(); - if (children.length == 0) { - //empty action group - continue; - } - DebugActionGroup viewActionSet = new DebugActionGroup(id, name, isVisible); - fDebugActionGroups.put(id, viewActionSet); - for (int j = 0; j < children.length; j++) { - IConfigurationElement actionElement = children[j]; - String actionId = actionElement.getAttribute("id"); //$NON-NLS-1$ - if (actionId != null) { - viewActionSet.add(actionId); - fDebugActionGroupActionIds.put(actionId, viewActionSet.getId()); - } - } - - } else { - // invalid debug action group - String errorId= ""; //$NON-NLS-1$ - if (id != null) { - errorId= ": " + id; //$NON-NLS-1$ - } - DebugUIPlugin.logErrorMessage(DebugPreferencesMessages.getString("DebugActionGroupsManager.Improperly_specified_debug_action_group_4") + errorId); //$NON-NLS-1$ - } - } - } - - /** - * Updates the debug view groups for all registered views. - */ - public void updateDebugActionGroups() { - for (Iterator iterator = fDebugViews.iterator(); iterator.hasNext();) { - IDebugView view = (IDebugView) iterator.next(); - updateDebugActionGroups(view); - } - } - - protected void updateDebugActionGroups(IViewPart viewPart) { - IDebugView debugView= (IDebugView)viewPart.getAdapter(IDebugView.class); - if (debugView == null) { - return; - } - - IActionBars actionBars = viewPart.getViewSite().getActionBars(); - IToolBarManager toolBarManager = actionBars.getToolBarManager(); - boolean refresh = false; - if (processContributionItems(toolBarManager.getItems(), viewPart.getTitle(), viewPart.getSite().getId(),TYPE_TOOLBAR)) { - toolBarManager.markDirty(); - refresh = true; - } - IMenuManager menuManager = actionBars.getMenuManager(); - if (processContributionItems(menuManager.getItems(), viewPart.getTitle(), viewPart.getSite().getId(), TYPE_VIEW_MENU)) { - menuManager.markDirty(); - refresh = true; - } - - if (refresh) { - actionBars.updateActionBars(); - } - } - - protected boolean processContributionItems(IContributionItem[] items, String viewName, String viewId, int type) { - boolean visibilityChanged = false; - for (int i = 0; i < items.length; i++) { - IContributionItem iContributionItem = items[i]; - if (!(iContributionItem instanceof ActionContributionItem)) { - continue; - } - ActionContributionItem item= (ActionContributionItem)iContributionItem; - String id = item.getId(); - if (id != null) { - String viewActionSetId = (String) fDebugActionGroupActionIds.get(id); - if (viewActionSetId != null) { - DebugActionGroup actionSet = (DebugActionGroup) fDebugActionGroups.get(viewActionSetId); - if (actionSet != null) { - iContributionItem.setVisible(actionSet.isVisible()); - visibilityChanged = true; - DebugActionGroupAction action= new DebugActionGroupAction(id, item.getAction().getText(), viewName, viewId, item.getAction().getImageDescriptor(), type); - List actions= (List)fDebugActionGroupActions.get(id); - if (actions == null) { - actions= new ArrayList(1); - actions.add(action); - fDebugActionGroupActions.put(id, actions); - } else if (!actions.contains(action)) { - actions.add(action); - } - } - } - } - } - return visibilityChanged; - } - - /** - * Adds this view to the collections of views that are - * affected by debug action groups. Has no effect if the view was - * previously registered. - */ - public void registerView(final IDebugView view) { - if (fDebugActionGroupActionIds == null || fDebugViews.contains(view)) { - return; - } - List menus= null; - if (view instanceof AbstractDebugView) { - menus= ((AbstractDebugView)view).getContextMenuManagers(); - } - if (menus == null) { - menus= new ArrayList(1); - menus.add(view.getContextMenuManager()); - } - Iterator itr= menus.iterator(); - while (itr.hasNext()) { - IMenuManager menu = (IMenuManager) itr.next(); - if (menu != null) { - menu.addMenuListener(this); - } - - } - - final List contextMenus= menus; - final Display display= view.getSite().getPage().getWorkbenchWindow().getShell().getDisplay(); - if (display != null && !display.isDisposed()) { - display.asyncExec(new Runnable() { - public void run() { - if (!display.isDisposed()) { - updateDebugActionGroups(view); - fDebugViews.add(view); - Iterator iter= contextMenus.iterator(); - while (iter.hasNext()) { - IMenuManager menu = (IMenuManager)iter.next(); - if (menu != null) { - fDebugViewsWithMenu.put(menu, view); - //fake a showing of the context menu to get a - //look at all of the items in the menu - Menu swtMenu= ((MenuManager)menu).getMenu(); - if (!swtMenu.isDisposed()) { - swtMenu.notifyListeners(SWT.Show, new Event()); - swtMenu.notifyListeners(SWT.Hide, new Event()); - } - } - } - } - } - }); - } - } - - /** - * Removes this view from the collections of views that are - * affected by debug action groups. Has no effect if the view was - * not previously registered. - */ - public void deregisterView(IDebugView view) { - if (fDebugActionGroupActionIds != null && fDebugViews.remove(view)) { - List managers= null; - if (view instanceof AbstractDebugView) { - managers= ((AbstractDebugView)view).getContextMenuManagers(); - } - if (managers == null) { - managers= new ArrayList(1); - managers.add(view.getContextMenuManager()); - } - Iterator mitr= managers.iterator(); - while (mitr.hasNext()) { - IMenuManager manager = (IMenuManager)mitr.next(); - - if (manager != null) { - manager.removeMenuListener(this); - fDebugViewsWithMenu.remove(manager); - } - } - Collection actionCollections= fDebugActionGroupActions.values(); - List removed= new ArrayList(); - for (Iterator iterator = actionCollections.iterator(); iterator.hasNext();) { - List actions= (List)iterator.next(); - for (Iterator itr = actions.iterator(); itr.hasNext();) { - DebugActionGroupAction action = (DebugActionGroupAction) itr.next(); - if (action.getViewId().equals(view.getSite().getId())) { - removed.add(action.getId()); - action.dispose(); - } - } - } - - for (Iterator iterator = removed.iterator(); iterator.hasNext();) { - String actionId= (String)iterator.next(); - fDebugActionGroupActions.remove(actionId); - } - } - } - - /** - * @see IMenuListener#menuAboutToShow(IMenuManager) - */ - public void menuAboutToShow(IMenuManager manager) { - IDebugView view= (IDebugView)fDebugViewsWithMenu.get(manager); - if (view != null) { - String viewName= view.getTitle(); - String viewId= view.getSite().getId(); - processContributionItems(manager.getItems(), viewName, viewId, TYPE_CONTEXT_MENU); - } - } - - /** - * Debug view action group extensions - */ - protected class DebugActionGroup { - - private String fId; - private boolean fVisible; - private String fName; - private List fActionIds = new ArrayList(); - - protected DebugActionGroup(String id, String name, boolean visible) { - fId = id; - fVisible = visible; - fName = name; - } - - /** - * @see Object#hashCode() - */ - public int hashCode() { - return fId.hashCode(); - } - - /** - * @see Object#equals(Object) - */ - public boolean equals(Object obj) { - if (obj instanceof DebugActionGroup) { - DebugActionGroup s = (DebugActionGroup) obj; - return fId == s.fId; - } - return false; - } - - protected void add(String actionId) { - fActionIds.add(actionId); - } - - protected String getName() { - return fName; - } - - protected boolean isVisible() { - return fVisible; - } - - protected void setVisible(boolean visible) { - fVisible = visible; - } - - protected List getActionIds() { - return fActionIds; - } - - protected String getId() { - return fId; - } - } - - /** - * Debug view action extensions - */ - protected class DebugActionGroupAction { - - private String fId; - private String fName; - private String fViewName; - private String fViewId; - private ImageDescriptor fImageDescriptor; - private Image fImage; - private int fType; - - protected DebugActionGroupAction(String id, String name, String viewName, String viewId, ImageDescriptor imageDescriptor, int type) { - fType = type; - fId = id; - fName = cleanName(name); - fImageDescriptor= imageDescriptor; - fViewName= viewName; - fViewId= viewId; - } - - /** - * @see Object#hashCode() - */ - public int hashCode() { - return fId.hashCode() | fViewId.hashCode() | fType; - } - - /** - * @see Object#equals(Object) - */ - public boolean equals(Object obj) { - if (obj instanceof DebugActionGroupAction) { - DebugActionGroupAction s = (DebugActionGroupAction) obj; - return getId() == s.getId() && getViewId() == s.getViewId() && fType == s.fType; - } - return false; - } - - protected String getName() { - StringBuffer buff= new StringBuffer(fName); - buff.append(" ("); //$NON-NLS-1$ - buff.append(fViewName); - buff.append(DebugPreferencesMessages.getString("DebugActionGroupsManager._view__6")); //$NON-NLS-1$ - buff.append(getDescriptor()); - buff.append(')'); - return buff.toString(); - } - - protected Image getImage() { - if (fImage == null && fImageDescriptor != null) { - fImage= fImageDescriptor.createImage(true); - } - return fImage; - } - - protected void dispose() { - if (fImage != null) { - fImage.dispose(); - } - } - - protected String getDescriptor() { - switch (fType) { - case TYPE_TOOLBAR: - return DebugPreferencesMessages.getString("DebugActionGroupsManager.toolbar_7"); //$NON-NLS-1$ - case TYPE_CONTEXT_MENU: - return DebugPreferencesMessages.getString("DebugActionGroupsManager.context_menu_8"); //$NON-NLS-1$ - case TYPE_VIEW_MENU: - return DebugPreferencesMessages.getString("DebugActionGroupsManager.pull-down_menu_1"); //$NON-NLS-1$ - } - return ""; //$NON-NLS-1$ - } - - /** - * Removes the '&' accelerator indicator from a label, if any. - * Removes the hot key indicator, if any. - */ - protected String cleanName(String name) { - int i = name.indexOf('@'); - if (i >= 0) { - name = name.substring(0, i); - } - i = name.indexOf('&'); - if (i >= 0) { - name = name.substring(0, i) + name.substring(i+1); - } - - return name; - } - - protected String getId() { - return fId; - } - - protected String getViewId() { - return fViewId; - } - } - - /** - * Parses the comma separated string into list of strings - * - * @return list - */ - protected List parseList(String listString) { - List list = new ArrayList(10); - StringTokenizer tokenizer = new StringTokenizer(listString, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken(); - list.add(token); - } - return list; - } - - /** - * Serializes the array of strings into one comma - * separated string. - * - * @param list array of strings - * @return a single string composed of the given list - */ - protected String serializeList(List list) { - if (list == null) { - return ""; //$NON-NLS-1$ - } - StringBuffer buffer = new StringBuffer(); - int i= 0; - for (Iterator iterator = list.iterator(); iterator.hasNext(); i++) { - String element = (String) iterator.next(); - if (i > 0) { - buffer.append(','); - } - buffer.append(element); - } - return buffer.toString(); - } -} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsPreferencePage.java deleted file mode 100644 index 7a2dba9f0..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugActionGroupsPreferencePage.java +++ /dev/null @@ -1,222 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.preferences; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.internal.ui.IDebugHelpContextIds; -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager.DebugActionGroup; -import org.eclipse.jface.preference.PreferencePage; -import org.eclipse.jface.viewers.CheckStateChangedEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.ColumnLayoutData; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.ICheckStateListener; -import org.eclipse.jface.viewers.IContentProvider; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPreferencePage; -import org.eclipse.ui.help.WorkbenchHelp; -import org.eclipse.ui.model.WorkbenchViewerSorter; - -/** - * Preference page to display the available debug action groups, and - * solicits a list of selections from the user. - */ -public class DebugActionGroupsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - // widgets. - private CheckboxTableViewer fDebugActionGroupViewer; - private Label actionLabel; - private TableViewer actionViewer; - private boolean fStateChanged= false; - - /** - * Creates an action set selection preference page. - */ - public DebugActionGroupsPreferencePage() { - super(); - setPreferenceStore(DebugUIPlugin.getDefault().getPreferenceStore()); - } - - /** - * @see PreferencePage#createControl(Composite) - */ - public void createControl(Composite parent) { - super.createControl(parent); - WorkbenchHelp.setHelp(getControl(), IDebugHelpContextIds.DEBUG_ACTION_GROUPS_PREFERENCE_PAGE); - } - - /** - * @see PreferencePage#createContents(Composite) - */ - protected Control createContents(Composite parent) { - Font font = parent.getFont(); - Composite composite = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - layout.makeColumnsEqualWidth = true; - layout.marginHeight=0; - layout.marginWidth=0; - composite.setLayout(layout); - GridData data = new GridData(); - data.verticalAlignment = GridData.FILL; - data.horizontalAlignment = GridData.FILL; - composite.setLayoutData(data); - - // description - Label descLabel = new Label(composite, SWT.WRAP); - descLabel.setText(DebugPreferencesMessages.getString("DebugActionGroupsPreferencePage.Select_the_action_groups_to_be_displayed_in_Debug_views_1")); //$NON-NLS-1$ - descLabel.setFont(font); - data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - descLabel.setLayoutData(data); - - // Setup the action set list selection... - // ...first a composite group - Composite actionSetGroup = new Composite(composite, SWT.NONE); - layout = new GridLayout(); - layout.marginHeight = 0; - layout.marginWidth = 0; - actionSetGroup.setLayout(layout); - data = new GridData(GridData.FILL_BOTH); - actionSetGroup.setLayoutData(data); - - // ...second the label - Label selectionLabel = new Label(actionSetGroup, SWT.NONE); - selectionLabel.setText(DebugPreferencesMessages.getString("DebugActionGroupsPreferencePage.&Available_Debug_Action_Groups__2")); //$NON-NLS-1$ - selectionLabel.setFont(font); - - // ...third the checkbox list - Table viewActionSetTable= new Table(actionSetGroup, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); - - TableLayout tableLayout= new TableLayout(); - ColumnLayoutData[] columnLayoutData= new ColumnLayoutData[1]; - columnLayoutData[0]= new ColumnWeightData(100); - tableLayout.addColumnData(columnLayoutData[0]); - viewActionSetTable.setLayout(tableLayout); - viewActionSetTable.setFont(font); - new TableColumn(viewActionSetTable, SWT.NONE); - - fDebugActionGroupViewer = new CheckboxTableViewer(viewActionSetTable); - data = new GridData(GridData.FILL_BOTH); - fDebugActionGroupViewer.getTable().setLayoutData(data); - fDebugActionGroupViewer.getTable().setFont(font); - fDebugActionGroupViewer.setLabelProvider(new DebugActionGroupsLabelProvider()); - IContentProvider contentProvider= new DebugActionGroupsContentProvider(fDebugActionGroupViewer); - fDebugActionGroupViewer.setContentProvider(contentProvider); - fDebugActionGroupViewer.setInput(DebugUIPlugin.getDefault()); - fDebugActionGroupViewer.setSorter(new WorkbenchViewerSorter()); - fDebugActionGroupViewer.addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - IStructuredSelection sel = (IStructuredSelection) event.getSelection(); - DebugActionGroup viewActionSet = null; - if (sel.getFirstElement() instanceof DebugActionGroup) { - viewActionSet = (DebugActionGroup) sel.getFirstElement(); - } - if (viewActionSet != actionViewer.getInput()) { - actionViewer.setInput(viewActionSet); - } - } - }); - fDebugActionGroupViewer.addCheckStateListener(new ICheckStateListener() { - public void checkStateChanged(CheckStateChangedEvent event) { - DebugActionGroup viewActionSet = (DebugActionGroup)event.getElement(); - viewActionSet.setVisible(event.getChecked()); - fStateChanged= true; - } - }); - - // Setup the action list for the action set selected... - // ...first a composite group - Composite actionGroup = new Composite(composite, SWT.NONE); - layout = new GridLayout(); - layout.marginHeight = 0; - layout.marginWidth = 0; - actionGroup.setLayout(layout); - data = new GridData(GridData.FILL_BOTH); - actionGroup.setLayoutData(data); - - // ...second the label - actionLabel = new Label(actionGroup, SWT.NONE); - actionLabel.setText(DebugPreferencesMessages.getString("DebugActionGroupsPreferencePage.Actions_in_Group__3")); //$NON-NLS-1$ - actionLabel.setFont(font); - - // ...third the list of actions - actionViewer = new TableViewer(actionGroup, SWT.BORDER); - data = new GridData(GridData.FILL_BOTH); - actionViewer.getTable().setLayoutData(data); - actionViewer.getTable().setFont(font); - actionViewer.setLabelProvider(new DebugActionGroupsLabelProvider()); - actionViewer.setContentProvider(new DebugActionGroupsActionContentProvider()); - actionViewer.setSorter(new WorkbenchViewerSorter()); - - Display disp = Display.getCurrent(); - Color clr = disp.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND); - actionViewer.getTable().setBackground(clr); - - return composite; - } - - /** - * @see IWorkbenchPreferencePage#init(IWorkbench) - */ - public void init(IWorkbench workbench) { - } - - /** - * @see IPreferencePage#performOk() - */ - public boolean performOk() { - if (fStateChanged) { - DebugActionGroupsManager.getDefault().updateDebugActionGroups(); - persistDebugActionGroups(); - } - DebugUIPlugin.getDefault().savePluginPreferences(); - return true; - } - - protected void persistDebugActionGroups() { - IStructuredContentProvider contentProvider= (IStructuredContentProvider)fDebugActionGroupViewer.getContentProvider(); - Object[] debugActionGroups= contentProvider.getElements(null); - List enabled = new ArrayList(debugActionGroups.length); - List disabled = new ArrayList(debugActionGroups.length); - for (int i = 0; i < debugActionGroups.length; i++) { - DebugActionGroup group = (DebugActionGroup)debugActionGroups[i]; - if (group.isVisible()) { - enabled.add(group.getId()); - } else { - disabled.add(group.getId()); - } - } - String prefEnabled = DebugActionGroupsManager.getDefault().serializeList(enabled); - String prefDisabled = DebugActionGroupsManager.getDefault().serializeList(disabled); - getPreferenceStore().setValue(IDebugPreferenceConstants.PREF_ENABLED_DEBUG_ACTION_GROUPS, prefEnabled); - getPreferenceStore().setValue(IDebugPreferenceConstants.PREF_DISABLED_DEBUG_ACTION_GROUPS, prefDisabled); - } -} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugPreferencesMessages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugPreferencesMessages.properties index d4b489a56..1c17a816b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugPreferencesMessages.properties +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/DebugPreferencesMessages.properties @@ -21,21 +21,6 @@ ConsolePreferencePage.console_width=The console character width must be at least ConsolePreferencePage.12=Displayed &tab width: ConsolePreferencePage.13=Tab width must be between 1 and 100 inclusive. -DebugActionGroupsPreferencePage.&Available_Debug_Action_Groups__2=A&vailable Debug Action Groups: -DebugActionGroupsPreferencePage.Actions_in_Group__3=Actions in &Group: -DebugActionGroupsPreferencePage.Select_the_action_groups_to_be_displayed_in_Debug_views_1=Action groups to be displayed in debug views.\nThe action(s) of a deselected action groups will not be visible in debug views. - -DebugActionGroupsActionContentProvider.Updated_when_Debug_perspective_activated_1=Updated when Debug perspective activated - -DebugActionGroupsLabelProvider.<Unknown>_1=<Unknown> - -DebugActionGroupsManager._view__6=\ view -DebugActionGroupsManager.context_menu_8=context menu -DebugActionGroupsManager.pull-down_menu_1=pull-down menu -DebugActionGroupsManager.Improperly_specified_debug_action_group_4=Improperly specified debug action group -DebugActionGroupsManager.toolbar_7=toolbar -DebugActionGroupsManager.Duplicate_action_group_id=Duplicate debug action group id: \"{0}\"; duplicate(s) ignored. - DebugPreferencePage.1=General Settings for Running and Debugging. DebugPreferencePage.2=Re&use editor when displaying source code DebugPreferencePage.3=Activate the workbenc&h when a breakpoint is hit diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/IDebugPreferenceConstants.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/IDebugPreferenceConstants.java index 09c783f0e..dff087e59 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/IDebugPreferenceConstants.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/IDebugPreferenceConstants.java @@ -91,16 +91,6 @@ public interface IDebugPreferenceConstants { * launch config dialog. */ public static final String PREF_LAST_LAUNCH_CONFIGURATION_SELECTION = IDebugUIConstants.PLUGIN_ID + ".lastLaunchConfigSelection"; //$NON-NLS-1$ - - /** - * Serialized list of the enabled debug action groups - */ - public static final String PREF_ENABLED_DEBUG_ACTION_GROUPS = IDebugUIConstants.PLUGIN_ID + "enabledDebugActionGroups"; //$NON-NLS-1$ - - /** - * Serialized list of the disabled debug action groups - */ - public static final String PREF_DISABLED_DEBUG_ACTION_GROUPS = IDebugUIConstants.PLUGIN_ID + "disabledDebugActionGroups"; //$NON-NLS-1$ /** * The maximum size of the launch history list diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java index cd1dfd906..e2ca72c66 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java @@ -16,11 +16,9 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; - import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.DelegatingModelPresentation; import org.eclipse.debug.internal.ui.LazyModelPresentation; -import org.eclipse.debug.internal.ui.preferences.DebugActionGroupsManager; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IContributionItem; @@ -325,8 +323,6 @@ public abstract class AbstractDebugView extends PageBookView implements IDebugVi getMessagePage().createControl(getPageBook()); initPage(getMessagePage()); - DebugActionGroupsManager.getDefault().registerView(this); - if (fEarlyMessage != null) { //bug 28127 showMessage(fEarlyMessage); fEarlyMessage= null; @@ -381,7 +377,6 @@ public abstract class AbstractDebugView extends PageBookView implements IDebugVi } setViewer(null); fActionMap.clear(); - DebugActionGroupsManager.getDefault().deregisterView(this); super.dispose(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java index 5cdbef93a..c8415f3bd 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java @@ -904,6 +904,8 @@ public interface IDebugUIConstants { * (value <code>"debugActionGroups"</code>). * * @since 2.0 + * @deprecated The Debug Action Groups extension point no longer exists. Product + * vendors should use Activities instead. */ public static final String EXTENSION_POINT_DEBUG_ACTION_GROUPS= "debugActionGroups"; //$NON-NLS-1$ |