diff options
author | Darin Wright | 2002-03-09 20:56:24 +0000 |
---|---|---|
committer | Darin Wright | 2002-03-09 20:56:24 +0000 |
commit | 6d8236e1be9b7dc6b5a4648d963e60bbd8031660 (patch) | |
tree | 6f2921bb7fd276d6b05f2a8cd3a1c6b64c75e48f /org.eclipse.debug.ui | |
parent | ea86a172fc0fcb2bdfb822d10ae9665b361cc764 (diff) | |
download | eclipse.platform.debug-6d8236e1be9b7dc6b5a4648d963e60bbd8031660.tar.gz eclipse.platform.debug-6d8236e1be9b7dc6b5a4648d963e60bbd8031660.tar.xz eclipse.platform.debug-6d8236e1be9b7dc6b5a4648d963e60bbd8031660.zip |
favorites
Diffstat (limited to 'org.eclipse.debug.ui')
5 files changed, 101 insertions, 3 deletions
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 33b110721..6200d2588 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 @@ -803,7 +803,7 @@ public class DebugUIPlugin extends AbstractUIPlugin implements IDocumentListener /**
* Return whether the preference is currently set to use configuration-style launching.
*/
- private boolean usingConfigurationStyleLaunching() {
+ public boolean usingConfigurationStyleLaunching() {
String launchingStyle = getPreferenceStore().getString(IDebugPreferenceConstants.LAUNCHING_STYLE);
if (IDebugPreferenceConstants.LAUNCHING_STYLE_CONFIGURATIONS.equals(launchingStyle)) {
return true;
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/DebugHistoryPreferenceTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/DebugHistoryPreferenceTab.java index 2e91ce31d..7f7385337 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/DebugHistoryPreferenceTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/DebugHistoryPreferenceTab.java @@ -1,6 +1,7 @@ package org.eclipse.debug.internal.ui.launchConfigurations; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; @@ -58,4 +59,10 @@ public class DebugHistoryPreferenceTab extends LaunchHistoryPreferenceTab { return configs; } + /** + * @see LaunchHistoryPreferenceTab#getMode() + */ + protected String getMode() { + return ILaunchManager.DEBUG_MODE; + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferencePage.java index 9ff31f8b5..407a9ea11 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferencePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferencePage.java @@ -176,5 +176,14 @@ public class LaunchHistoryPreferencePage } return v; } + + /** + * @see PreferencePage#performDefaults() + */ + protected void performDefaults() { + getDebugTab().performDefaults(); + getRunTab().performDefaults(); + super.performDefaults(); + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferenceTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferenceTab.java index 367b6d11f..3ffb416a3 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferenceTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/LaunchHistoryPreferenceTab.java @@ -6,10 +6,14 @@ package org.eclipse.debug.internal.ui.launchConfigurations; */ import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -28,6 +32,9 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.dialogs.ListSelectionDialog; +import org.eclipse.ui.model.WorkbenchViewerSorter; +import sun.security.action.GetLongAction; /** * Tab for favorite and recent history lists @@ -107,7 +114,7 @@ public abstract class LaunchHistoryPreferenceTab { }); gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL); addFav.setLayoutData(gd); - addFav.setEnabled(true); + addFav.setEnabled(DebugUIPlugin.getDefault().usingConfigurationStyleLaunching()); fRemoveFavoritesButton = new Button(buttonComp, SWT.PUSH); fRemoveFavoritesButton.setText("Re&move"); @@ -275,6 +282,20 @@ public abstract class LaunchHistoryPreferenceTab { * The 'add favorites' button has been pressed */ protected void handleAddFavoriteButtonSelected() { + + + ListSelectionDialog dialog = new ListSelectionDialog(fFavoritesTable.getControl().getShell(), + getMode(), new LaunchConfigurationContentProvider(), DebugUITools.newDebugModelPresentation(), + "Select Launch Configurations"); + dialog.open(); + Object[] selection = dialog.getResult(); + if (selection != null) { + for (int i = 0; i < selection.length; i++) { + getFavorites().add(selection[i]); + getRecents().remove(selection[i]); + } + } + updateStatus(); } /** @@ -343,12 +364,17 @@ public abstract class LaunchHistoryPreferenceTab { getFavoritesTable().refresh(); getRecentTable().refresh(); } + + /** + * Returns the mode of this page - run or debug. + */ + protected abstract String getMode(); /** * Returns the label for the favorites table. */ protected abstract String getFavoritesLabel(); - + /** * Returns the initial content for the favorites list */ @@ -405,6 +431,35 @@ public abstract class LaunchHistoryPreferenceTab { } /** + * Content provider for recent table + */ + protected class LaunchConfigurationContentProvider extends FavoritesContentProvider { + + /** + * @see IStructuredContentProvider#getElements(Object) + */ + public Object[] getElements(Object inputElement) { + ILaunchConfiguration[] all = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(); + List list = new ArrayList(all.length); + String mode = (String)inputElement; + for (int i = 0; i < all.length; i++) { + try { + if (all[i].getType().supportsMode(mode)) { + list.add(all[i]); + } + } catch (CoreException e) { + // ignore + } + } + list.removeAll(getFavorites()); + Object[] objs = list.toArray(); + new WorkbenchViewerSorter().sort(getFavoritesTable(), objs); + return objs; + } + + } + + /** * Returns the current list of favorites. */ protected List getFavorites() { @@ -436,4 +491,23 @@ public abstract class LaunchHistoryPreferenceTab { list.add(array[i]); } } + + /** + * Restores defaults + */ + protected void performDefaults() { + fFavorites = null; + fRecents = null; + updateStatus(); + } + + /** + * Refresh all tables and buttons + */ + protected void updateStatus() { + getFavoritesTable().refresh(); + getRecentTable().refresh(); + handleFavoriteSelectionChanged(); + handleRecentSelectionChanged(); + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/RunHistoryPreferenceTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/RunHistoryPreferenceTab.java index bbd00beac..590958d4d 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/RunHistoryPreferenceTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/RunHistoryPreferenceTab.java @@ -1,6 +1,7 @@ package org.eclipse.debug.internal.ui.launchConfigurations; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; @@ -58,4 +59,11 @@ public class RunHistoryPreferenceTab extends LaunchHistoryPreferenceTab { return configs; } + /** + * @see LaunchHistoryPreferenceTab#getMode() + */ + protected String getMode() { + return ILaunchManager.RUN_MODE; + } + } |