diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractLaunchConfigurationTab.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractLaunchConfigurationTab.java | 445 |
1 files changed, 0 insertions, 445 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractLaunchConfigurationTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractLaunchConfigurationTab.java deleted file mode 100644 index 051ebd3ad..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractLaunchConfigurationTab.java +++ /dev/null @@ -1,445 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 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.ui; - - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.ILaunch; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.debug.core.ILaunchManager; -import org.eclipse.debug.internal.ui.SWTFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.progress.WorkbenchJob; - -/** - * Common function for launch configuration tabs. - * <p> - * Clients may subclass this class. - * </p> - * @see ILaunchConfigurationTab - * @since 2.0 - */ -public abstract class AbstractLaunchConfigurationTab implements ILaunchConfigurationTab { - - /** - * The control for this page, or <code>null</code> - */ - private Control fControl; - - /** - * The launch configuration dialog this tab is - * contained in. - */ - private ILaunchConfigurationDialog fLaunchConfigurationDialog; - - /** - * Current error message, or <code>null</code> - */ - private String fErrorMessage; - - /** - * Current message, or <code>null</code> - */ - private String fMessage; - - /** - * Whether this tab needs to apply changes. This attribute is initialized to - * <code>true</code> to be backwards compatible. If clients want to take advantage - * of such a feature, they should set the flag to false, and check it before - * applying changes to the launch configuration working copy. - * - * @since 2.1 - */ - private boolean fDirty = true; - - /** - * Job to update the tab after a delay. Used to delay updates while - * the user is typing. - */ - private Job fRereshJob; - - /** - * Returns the dialog this tab is contained in, or - * <code>null</code> if not yet set. - * - * @return launch configuration dialog, or <code>null</code> - */ - protected ILaunchConfigurationDialog getLaunchConfigurationDialog() { - return fLaunchConfigurationDialog; - } - - /** - * Updates the buttons and message in this page's launch - * configuration dialog. - */ - protected void updateLaunchConfigurationDialog() { - if (getLaunchConfigurationDialog() != null) { - //order is important here due to the call to - //refresh the tab viewer in updateButtons() - //which ensures that the messages are up to date - getLaunchConfigurationDialog().updateButtons(); - getLaunchConfigurationDialog().updateMessage(); - } - } - - /** - * @see ILaunchConfigurationTab#getControl() - */ - public Control getControl() { - return fControl; - } - - /** - * Sets the control to be displayed in this tab. - * - * @param control the control for this tab - */ - protected void setControl(Control control) { - fControl = control; - } - - /** - * @see ILaunchConfigurationTab#getErrorMessage() - */ - public String getErrorMessage() { - return fErrorMessage; - } - - /** - * @see ILaunchConfigurationTab#getMessage() - */ - public String getMessage() { - return fMessage; - } - - /** - * By default, do nothing. - * - * @see ILaunchConfigurationTab#launched(ILaunch) - * @deprecated - */ - public void launched(ILaunch launch) { - } - - /** - * @see ILaunchConfigurationTab#setLaunchConfigurationDialog(ILaunchConfigurationDialog) - */ - public void setLaunchConfigurationDialog(ILaunchConfigurationDialog dialog) { - fLaunchConfigurationDialog = dialog; - } - - /** - * Sets this page's error message, possibly <code>null</code>. - * - * @param errorMessage the error message or <code>null</code> - */ - protected void setErrorMessage(String errorMessage) { - fErrorMessage = errorMessage; - } - - /** - * Sets this page's message, possibly <code>null</code>. - * - * @param message the message or <code>null</code> - */ - protected void setMessage(String message) { - fMessage = message; - } - - /** - * Convenience method to return the launch manager. - * - * @return the launch manager - */ - protected ILaunchManager getLaunchManager() { - return DebugPlugin.getDefault().getLaunchManager(); - } - - /** - * By default, do nothing. - * - * @see ILaunchConfigurationTab#dispose() - */ - public void dispose() { - } - - /** - * Returns the shell this tab is contained in, or <code>null</code>. - * - * @return the shell this tab is contained in, or <code>null</code> - */ - protected Shell getShell() { - Control control = getControl(); - if (control != null) { - return control.getShell(); - } - return null; - } - - /** - * Creates and returns a new push button with the given - * label and/or image. - * - * @param parent parent control - * @param label button label or <code>null</code> - * @param image image of <code>null</code> - * - * @return a new push button - */ - protected Button createPushButton(Composite parent, String label, Image image) { - return SWTFactory.createPushButton(parent, label, image); - } - - /** - * Creates and returns a new radio button with the given - * label and/or image. - * - * @param parent parent control - * @param label button label or <code>null</code> - * - * @return a new radio button - */ - protected Button createRadioButton(Composite parent, String label) { - return SWTFactory.createRadioButton(parent, label); - } - - /** - * Creates and returns a new check button with the given - * label. - * - * @param parent the parent composite - * @param label the button label - * @return a new check button - * @since 3.0 - */ - protected Button createCheckButton(Composite parent, String label) { - return SWTFactory.createCheckButton(parent, label, null, false, 1); - } - - /** - * @see ILaunchConfigurationTab#canSave() - */ - public boolean canSave() { - return true; - } - - /** - * @see ILaunchConfigurationTab#isValid(ILaunchConfiguration) - */ - public boolean isValid(ILaunchConfiguration launchConfig) { - return true; - } - - /** - * Creates vertical space in the parent <code>Composite</code> - * @param comp the parent to add the vertical space to - * @param colSpan the number of line of vertical space to add - */ - protected void createVerticalSpacer(Composite comp, int colSpan) { - SWTFactory.createVerticalSpacer(comp, colSpan); - } - - /** - * Create a horizontal separator. - * - * @param comp parent widget - * @param colSpan number of columns to span - * @since 3.0 - */ - protected void createSeparator(Composite comp, int colSpan) { - Label label = new Label(comp, SWT.SEPARATOR | SWT.HORIZONTAL); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = colSpan; - label.setLayoutData(gd); - } - - /** - * @see ILaunchConfigurationTab#getImage() - */ - public Image getImage() { - return null; - } - - /** - * Returns this tab's unique identifier or <code>null</code> if none. - * By default, <code>null</code> is returned. Subclasses should override - * as necessary. - * <p> - * Tab identifiers allow contributed tabs to be ordered relative to one - * another. - * </p> - * @return tab id or <code>null</code> - * @since 3.3 - */ - public String getId() { - return null; - } - - /** - * Convenience method to set a boolean attribute of on a launch - * configuration. If the value being set is the default, the attribute's - * value is set to <code>null</code>. - * - * @param attribute attribute identifier - * @param configuration the configuration on which to set the attribute - * @param value the value of the attribute - * @param defaultValue the default value of the attribute - * @since 2.1 - */ - protected void setAttribute(String attribute, ILaunchConfigurationWorkingCopy configuration, boolean value, boolean defaultValue) { - if (value == defaultValue) { - configuration.setAttribute(attribute, (String)null); - } else { - configuration.setAttribute(attribute, value); - } - } - - - - /** - * Returns if this tab has pending changes that need to be saved. - * - * It is up to clients to set/reset and consult this attribute as required. - * By default, a tab is initialized to dirty for backwards compatibility. - * - * @return whether this tab is dirty - * @since 2.1 - */ - protected boolean isDirty() { - return fDirty; - } - - /** - * Sets the dirty state of the tab. Setting this flag allows clients to - * explicitly say whether this tab has pending changes or not. - * - * It is up to clients to set/reset and consult this attribute as required. - * By default, a tab is initialized to dirty for backwards compatibility. - * - * @param dirty what to set the dirty flag to - * @since 2.1 - */ - protected void setDirty(boolean dirty) { - fDirty = dirty; - } - - /** - * This method was added to the <code>ILaunchConfigurationTab</code> interface - * in the 3.0 release to allow tabs to distinguish between a tab being activated - * and a tab group be initialized for the first time, from a selected launch - * configuration. To maintain backwards compatible behavior, the default - * implementation provided, calls this tab's <code>initializeFrom</code> method. - * Tabs should override this method as required. - * <p> - * The launch tab framework was originally designed to take care of inter tab - * communication by applying attributes from the active tab to the launch configuration - * being edited, when a tab is exited, and by initializing a tab when activated. - * The addition of the methods <code>activated</code> and <code>deactivated</code> - * allow tabs to determine the appropriate course of action. - * </p> - * - * @see org.eclipse.debug.ui.ILaunchConfigurationTab#activated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) - * @since 3.0 - */ - public void activated(ILaunchConfigurationWorkingCopy workingCopy) { - initializeFrom(workingCopy); - } - - /** - * This method was added to the <code>ILaunchConfigurationTab</code> interface - * in the 3.0 release to allow tabs to distinguish between a tab being deactivated - * and saving its attributes to a launch configuration. To maintain backwards - * compatible behavior, the default implementation provided, calls this tab's - * <code>performApply</code> method. Tabs should override this method as required. - * <p> - * The launch tab framework was originally designed to take care of inter tab - * communication by applying attributes from the active tab to the launch configuration - * being edited, when a tab is exited, and by initializing a tab when activated. - * The addition of the methods <code>activated</code> and <code>deactivated</code> - * allow tabs to determine the appropriate course of action. - * </p> - * @see org.eclipse.debug.ui.ILaunchConfigurationTab#deactivated(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) - * @since 3.0 - */ - public void deactivated(ILaunchConfigurationWorkingCopy workingCopy) { - performApply(workingCopy); - } - - /** - * Returns the job to update the launch configuration dialog. - * - * @return update job - */ - private Job getUpdateJob() { - if (fRereshJob == null) { - fRereshJob = createUpdateJob(); - fRereshJob.setSystem(true); - } - return fRereshJob; - } - - /** - * Schedules the update job to run for this tab based on this tab's delay. - * - * @since 3.6 - */ - protected void scheduleUpdateJob() { - Job job = getUpdateJob(); - job.cancel(); // cancel existing job - job.schedule(getUpdateJobDelay()); - } - - /** - * Creates and returns a job used to update the launch configuration dialog - * for this tab. Subclasses may override. - * - * @return job to update the launch dialog for this tab - * @since 3.6 - */ - protected Job createUpdateJob() { - return new WorkbenchJob(getControl().getDisplay(), "Update LCD") { //$NON-NLS-1$ - public IStatus runInUIThread(IProgressMonitor monitor) { - if (!getControl().isDisposed()) { - updateLaunchConfigurationDialog(); - } - return Status.OK_STATUS; - } - public boolean shouldRun() { - return !getControl().isDisposed(); - } - }; - } - - /** - * Return the time delay that should be used when scheduling the - * update job. Subclasses may override. - * - * @return a time delay in milliseconds before the job should run - * @since 3.6 - */ - protected long getUpdateJobDelay() { - return 200; - } - -} - |