| /****************************************************************************** |
| * Copyright (c) 2008 IBM Corporation. |
| * 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 Implementation |
| * |
| *****************************************************************************/ |
| package org.eclipse.ptp.launch.ui; |
| |
| import org.eclipse.debug.core.ILaunchConfiguration; |
| import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; |
| import org.eclipse.debug.core.ILaunchManager; |
| |
| /** |
| * A modified version of {@link org.eclipse.debug.ui.EnvironmentTab}, where the |
| * "append" and "replace" options are always disabled, and set to "append". |
| * |
| * @author Daniel Felix Ferber |
| */ |
| public class EnvironmentTab extends org.eclipse.debug.ui.EnvironmentTab { |
| /** |
| * @since 4.0 |
| */ |
| public static final String TAB_ID = "org.eclipse.ptp.launch.applicationLaunch.environmentTab"; //$NON-NLS-1$ |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#getId() |
| */ |
| @Override |
| public String getId() { |
| return TAB_ID; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.debug.ui.EnvironmentTab#updateAppendReplace() |
| */ |
| @Override |
| protected void updateAppendReplace() { |
| appendEnvironment.setEnabled(false); |
| replaceEnvironment.setEnabled(false); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.debug.ui.EnvironmentTab#setDefaults(org.eclipse.debug.core |
| * .ILaunchConfigurationWorkingCopy) |
| */ |
| @Override |
| public void setDefaults(ILaunchConfigurationWorkingCopy configuration) { |
| /* |
| * Ensure that the "append"/"replace" attribute is always set to |
| * "append", ignoring whatever was set as default by the original |
| * implementation. |
| */ |
| super.setDefaults(configuration); |
| configuration.setAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, true); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.debug.ui.EnvironmentTab#initializeFrom(org.eclipse.debug. |
| * core.ILaunchConfiguration) |
| */ |
| @Override |
| public void initializeFrom(ILaunchConfiguration configuration) { |
| super.initializeFrom(configuration); |
| /* |
| * Ensure that the "append"/"replace" controls are always shown as |
| * "append", ignoring whatever was shown by the original implementation. |
| */ |
| appendEnvironment.setSelection(true); |
| replaceEnvironment.setSelection(false); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.debug.ui.EnvironmentTab#performApply(org.eclipse.debug.core |
| * .ILaunchConfigurationWorkingCopy) |
| */ |
| @Override |
| public void performApply(ILaunchConfigurationWorkingCopy configuration) { |
| /* |
| * Ensure that the "append"/"replace" attribute is always set to |
| * "append", ignoring whatever was set by the original implementation. |
| */ |
| super.performApply(configuration); |
| configuration.setAttribute(ILaunchManager.ATTR_APPEND_ENVIRONMENT_VARIABLES, true); |
| } |
| } |