diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchConfigurationsPreferencePage.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchConfigurationsPreferencePage.java | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchConfigurationsPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchConfigurationsPreferencePage.java deleted file mode 100644 index b0850b8eb..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchConfigurationsPreferencePage.java +++ /dev/null @@ -1,396 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2009 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 - * http://www.eclipse.org/legal/epl-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.core.runtime.CoreException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationType; -import org.eclipse.debug.core.ILaunchManager; -import org.eclipse.debug.internal.core.Preferences; -import org.eclipse.debug.internal.core.IInternalDebugCoreConstants; -import org.eclipse.debug.internal.core.LaunchManager; -import org.eclipse.debug.internal.ui.AbstractDebugCheckboxSelectionDialog; -import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.internal.ui.IDebugHelpContextIds; -import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; -import org.eclipse.debug.internal.ui.SWTFactory; -import org.eclipse.debug.internal.ui.launchConfigurations.LaunchCategoryFilter; -import org.eclipse.debug.ui.DebugUITools; -import org.eclipse.debug.ui.IDebugUIConstants; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.preference.BooleanFieldEditor; -import org.eclipse.jface.preference.FieldEditor; -import org.eclipse.jface.preference.PreferencePage; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.IBaseLabelProvider; -import org.eclipse.jface.viewers.IContentProvider; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.wizard.ProgressMonitorPart; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPreferencePage; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.model.AdaptableList; -import org.eclipse.ui.model.WorkbenchContentProvider; -import org.eclipse.ui.model.WorkbenchViewerComparator; - -/** - * Provides the Launch Configuration preference page to the Run/Debug preferences - * - * This page allows users to set filtering options as well as perform migration tasks. - * This class is not intended to be sub-classed - * @since 3.2 - */ -public class LaunchConfigurationsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - - /** - * Creates a dialog that allows users to select one or more projects to migrate. - * @since 3.2 - */ - class LaunchConfigurationMigrationSelectionDialog extends AbstractDebugCheckboxSelectionDialog { - - private Object fInput; - - public LaunchConfigurationMigrationSelectionDialog(Shell parentShell, Object input) { - super(parentShell); - fInput = input; - setShellStyle(getShellStyle() | SWT.RESIZE); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getDialogSettingsId() - */ - protected String getDialogSettingsId() { - return IDebugUIConstants.PLUGIN_ID + ".MIGRATION_SELECTION_DIALOG"; //$NON-NLS-1$ - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getHelpContextId() - */ - protected String getHelpContextId() { - return IDebugHelpContextIds.SELECT_LAUNCH_CONFIGURATION_MIGRATION_DIALOG; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getViewerInput() - */ - protected Object getViewerInput() { - return fInput; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getViewerLabel() - */ - protected String getViewerLabel() { - return DebugPreferencesMessages.LaunchingPreferencePage_0; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getContentProvider() - */ - protected IContentProvider getContentProvider() { - return new WorkbenchContentProvider(); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.launchConfigurations.AbstractDebugSelectionDialog#getLabelProvider() - */ - protected IBaseLabelProvider getLabelProvider() { - return DebugUITools.newDebugModelPresentation(); - } - } - - /** - * Content provider for the launch configuration type table - */ - class TableContentProvider implements IStructuredContentProvider { - - public Object[] getElements(Object inputElement) { - return getLaunchConfigurationTypes(); - } - - public void dispose() {} - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} - } - - /** - * to monitor the progress of the migration process - */ - private ProgressMonitorPart fMonitor; - - /** - * the migrate now button - */ - private Button fMigrateNow; - - /** - * a list of the field editors - */ - private List fFieldEditors; - - /** - * Boolean editor for debug core plug-in preference - */ - private Button fDeleteConfigs; - - /** - * The table for the launch configuration types - */ - private Table fTable; - - /** - * Constructor - */ - public LaunchConfigurationsPreferencePage() { - super(); - setPreferenceStore(DebugUIPlugin.getDefault().getPreferenceStore()); - setTitle(DebugPreferencesMessages.LaunchConfigurationsPreferencePage_1); - } - - /* (non-Javadoc) - * @see org.eclipse.jface.preference.PreferencePage#createControl(org.eclipse.swt.widgets.Composite) - */ - public void createControl(Composite parent) { - super.createControl(parent); - PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IDebugHelpContextIds.LAUNCH_CONFIGURATION_PREFERENCE_PAGE); - } - - /* (non-Javadoc) - * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) - */ - protected Control createContents(Composite parent) { - fFieldEditors = new ArrayList(); - Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_HORIZONTAL); - //filtering options - Group group = SWTFactory.createGroup(comp, DebugPreferencesMessages.LaunchingPreferencePage_32, 1, 1, GridData.FILL_HORIZONTAL); - Composite spacer = SWTFactory.createComposite(group, group.getFont(), 1, 1, GridData.FILL_HORIZONTAL); - FieldEditor edit = new BooleanFieldEditor(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_CLOSED, DebugPreferencesMessages.LaunchingPreferencePage_33, SWT.NONE, spacer); - fFieldEditors.add(edit); - edit = new BooleanFieldEditor(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_DELETED, DebugPreferencesMessages.LaunchingPreferencePage_34, SWT.NONE, spacer); - fFieldEditors.add(edit); - edit = new BooleanFieldEditor(IInternalDebugUIConstants.PREF_FILTER_WORKING_SETS, DebugPreferencesMessages.LaunchConfigurationsPreferencePage_3, SWT.NONE, spacer); - fFieldEditors.add(edit); - fDeleteConfigs = SWTFactory.createCheckButton(comp, DebugPreferencesMessages.LaunchConfigurationsPreferencePage_2, null, false, 3); - - //add table options - createTypeFiltering(group); - - //migration - group = SWTFactory.createGroup(comp, DebugPreferencesMessages.LaunchingPreferencePage_35, 1, 1, GridData.FILL_HORIZONTAL); - Label label = new Label(group, SWT.LEFT | SWT.WRAP); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.widthHint = 350; - label.setLayoutData(gd); - label.setText(DebugPreferencesMessages.LaunchingPreferencePage_26); - label.setFont(parent.getFont()); - fMigrateNow = SWTFactory.createPushButton(group, DebugPreferencesMessages.LaunchingPreferencePage_27, null); - gd = new GridData(SWT.BEGINNING); - - fMigrateNow.setLayoutData(gd); - fMigrateNow.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) {} - public void widgetSelected(SelectionEvent e) { - handleMigrateNowSelected(); - } - }); - - //init field editors - initFieldEditors(); - fTable.setEnabled(getPreferenceStore().getBoolean(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES)); - return comp; - } - - /** - * @param parent the parent to add this composite to - * @return the new composite with the type selection table in it - */ - private Composite createTypeFiltering(Composite parent) { - Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 1, 1, GridData.FILL_HORIZONTAL); - BooleanFieldEditor2 editor = new BooleanFieldEditor2(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES, DebugPreferencesMessages.LaunchConfigurationsPreferencePage_0, SWT.NONE, comp); - editor.setPropertyChangeListener(new IPropertyChangeListener() { - public void propertyChange(PropertyChangeEvent event) { - boolean newvalue = false; - if(event.getNewValue() instanceof Boolean) { - newvalue = ((Boolean)event.getNewValue()).booleanValue(); - } - else { - newvalue = Boolean.valueOf(event.getNewValue().toString()).booleanValue(); - } - if(newvalue) { - fTable.setEnabled(true); - } - else { - fTable.setEnabled(false); - } - } - }); - fFieldEditors.add(editor); - fTable = new Table(comp, SWT.CHECK | SWT.BORDER); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.heightHint = 155; - fTable.setLayoutData(gd); - CheckboxTableViewer tviewer = new CheckboxTableViewer(fTable); - tviewer.setLabelProvider(DebugUITools.newDebugModelPresentation()); - tviewer.setContentProvider(new TableContentProvider()); - tviewer.setComparator(new WorkbenchViewerComparator()); - // filter external tool builders - tviewer.addFilter(new LaunchCategoryFilter(IInternalDebugUIConstants.ID_EXTERNAL_TOOL_BUILDER_LAUNCH_CATEGORY)); - tviewer.setInput(getLaunchConfigurationTypes()); - fTable.setFont(parent.getFont()); - return comp; - } - - /** - * returns the launch configuration types - * @return the launch configuration types - */ - private ILaunchConfigurationType[] getLaunchConfigurationTypes() { - return DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationTypes(); - } - - /** - * handles the Migrate button being clicked - * - * @since 3.2 - */ - private void handleMigrateNowSelected() { - try { - ILaunchManager lmanager = DebugPlugin.getDefault().getLaunchManager(); - ILaunchConfiguration[] configurations = lmanager.getMigrationCandidates(); - //separate the private from the public - List pub = new ArrayList(); - for(int i = 0; i < configurations.length; i++) { - if(DebugUITools.isPrivate(configurations[i])) { - //auto-migrate private ones - configurations[i].migrate(); - } - else { - pub.add(configurations[i]); - } - } - if(pub.size() == 0) { - MessageDialog.openInformation(getShell(), DebugPreferencesMessages.LaunchingPreferencePage_29, DebugPreferencesMessages.LaunchingPreferencePage_30); - return; - } - LaunchConfigurationMigrationSelectionDialog listd = new LaunchConfigurationMigrationSelectionDialog(getShell(),new AdaptableList(pub)); - listd.setTitle(DebugPreferencesMessages.LaunchingPreferencePage_28); - listd.setInitialSelections(configurations); - if(listd.open() == IDialogConstants.OK_ID) { - fMonitor = new ProgressMonitorPart(fMigrateNow.getParent(), new GridLayout()); - Object[] objs = listd.getResult(); - fMonitor.beginTask(DebugPreferencesMessages.LaunchingPreferencePage_31, objs.length); - for(int i = 0; i < objs.length; i++) { - if(objs[i] instanceof ILaunchConfiguration) { - ((ILaunchConfiguration)objs[i]).migrate(); - } - fMonitor.worked(1); - } - fMonitor.done(); - fMonitor.dispose(); - } - } - catch (CoreException e) {DebugUIPlugin.log(e);} - } - - /* (non-Javadoc) - * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) - */ - public void init(IWorkbench workbench) {} - - /** - * Initializes the field editors to their values - * @since 3.2 - */ - private void initFieldEditors() { - FieldEditor editor; - for(int i = 0; i < fFieldEditors.size(); i++) { - editor = (FieldEditor)fFieldEditors.get(i); - editor.setPreferenceStore(getPreferenceStore()); - editor.load(); - } - fDeleteConfigs.setSelection( - Platform.getPreferencesService().getBoolean(DebugPlugin.getUniqueIdentifier(), - LaunchManager.PREF_DELETE_CONFIGS_ON_PROJECT_DELETE, true, null)); - //restore the tables' checked state - String[] types = getPreferenceStore().getString(IInternalDebugUIConstants.PREF_FILTER_TYPE_LIST).split("\\,"); //$NON-NLS-1$ - TableItem[] items = fTable.getItems(); - ILaunchConfigurationType type; - for(int i = 0; i < types.length; i++) { - for(int j = 0; j < items.length; j++) { - type = (ILaunchConfigurationType)items[j].getData(); - if(type.getIdentifier().equals(types[i])) { - items[j].setChecked(true); - } - } - } - } - - /* (non-Javadoc) - * @see org.eclipse.jface.preference.PreferencePage#performDefaults() - */ - protected void performDefaults() { - fDeleteConfigs.setSelection(Preferences.getDefaultBoolean(DebugPlugin.getUniqueIdentifier(), LaunchManager.PREF_DELETE_CONFIGS_ON_PROJECT_DELETE, true)); - FieldEditor editor = null; - for(int i = 0; i < fFieldEditors.size(); i++) { - editor = (FieldEditor)fFieldEditors.get(i); - editor.loadDefault(); - if(editor instanceof BooleanFieldEditor2) { - fTable.setEnabled(((BooleanFieldEditor2)editor).getBooleanValue()); - } - } - - } - - /* (non-Javadoc) - * @see org.eclipse.jface.preference.PreferencePage#performOk() - */ - public boolean performOk() { - //save field editors - for(int i = 0; i < fFieldEditors.size(); i++) { - ((FieldEditor)fFieldEditors.get(i)).store(); - } - Preferences.setBoolean(DebugPlugin.getUniqueIdentifier(), LaunchManager.PREF_DELETE_CONFIGS_ON_PROJECT_DELETE, fDeleteConfigs.getSelection(), null); - //save table - String types = IInternalDebugCoreConstants.EMPTY_STRING; - TableItem[] items = fTable.getItems(); - ILaunchConfigurationType type; - for(int i = 0; i < items.length; i++) { - if(items[i].getChecked()) { - type = (ILaunchConfigurationType)items[i].getData(); - types += type.getIdentifier()+","; //$NON-NLS-1$ - } - } - getPreferenceStore().setValue(IInternalDebugUIConstants.PREF_FILTER_TYPE_LIST, types); - return super.performOk(); - } -} |