Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java')
-rw-r--r--launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java374
1 files changed, 0 insertions, 374 deletions
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java
deleted file mode 100644
index 04186222d84..00000000000
--- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2012 QNX Software Systems 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:
- * QNX Software Systems - initial API and implementation
- * IBM Corporation
- *******************************************************************************/
-package org.eclipse.cdt.launch.internal.ui;
-
-import java.util.Map;
-
-import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
-import org.eclipse.cdt.debug.core.ICDebugConfiguration;
-import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
-import org.eclipse.cdt.debug.ui.ICDebuggerPage;
-import org.eclipse.cdt.debug.ui.ICDebuggerPageExtension;
-import org.eclipse.cdt.debug.ui.ICDebuggerPageExtension.IContentChangeListener;
-import org.eclipse.cdt.launch.ui.CLaunchConfigurationTab;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-
-public abstract class AbstractCDebuggerTab extends CLaunchConfigurationTab {
- protected ILaunchConfiguration fLaunchConfiguration;
- protected ILaunchConfigurationWorkingCopy fWorkingCopy;
- protected ICDebugConfiguration fCurrentDebugConfig;
-
- // Dynamic Debugger UI widgets
- protected ICDebuggerPage fDynamicTab;
- protected Composite fDynamicTabHolder;
- private boolean fInitDefaults;
- private Combo fDCombo;
- private boolean fIsInitializing = false;
- private boolean fPageUpdated;
-
- private IContentChangeListener fContentListener = new IContentChangeListener() {
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.debug.ui.ICDebuggerPageExtension.IContentChangeListener#contentChanged()
- */
- @Override
- public void contentChanged() {
- contentsChanged();
- }
- };
-
- protected void setDebugConfig(ICDebugConfiguration config) {
- fCurrentDebugConfig = config;
- }
-
- protected ICDebugConfiguration getDebugConfig() {
- return fCurrentDebugConfig;
- }
-
- protected ICDebuggerPage getDynamicTab() {
- return fDynamicTab;
- }
-
- protected void setDynamicTab(ICDebuggerPage tab) {
- if ( fDynamicTab instanceof ICDebuggerPageExtension )
- ((ICDebuggerPageExtension)fDynamicTab).removeContentChangeListener( fContentListener );
- fDynamicTab = tab;
- if ( fDynamicTab instanceof ICDebuggerPageExtension )
- ((ICDebuggerPageExtension)fDynamicTab).addContentChangeListener( fContentListener );
- }
-
- protected Composite getDynamicTabHolder() {
- return fDynamicTabHolder;
- }
-
- protected void setDynamicTabHolder(Composite tabHolder) {
- fDynamicTabHolder = tabHolder;
- }
-
- protected ILaunchConfigurationWorkingCopy getLaunchConfigurationWorkingCopy() {
- return fWorkingCopy;
- }
-
- protected void setLaunchConfiguration(ILaunchConfiguration launchConfiguration) {
- fLaunchConfiguration = launchConfiguration;
- setLaunchConfigurationWorkingCopy(null);
- }
-
- protected ILaunchConfiguration getLaunchConfiguration() {
- return fLaunchConfiguration;
- }
-
- protected void setLaunchConfigurationWorkingCopy(ILaunchConfigurationWorkingCopy workingCopy) {
- fWorkingCopy = workingCopy;
- }
-
- /**
- * Overridden here so that any error message in the dynamic UI gets
- * returned.
- *
- * @see ILaunchConfigurationTab#getErrorMessage()
- */
- @Override
- public String getErrorMessage() {
- ICDebuggerPage tab = getDynamicTab();
- if ( (super.getErrorMessage() != null) || (tab == null)) {
- return super.getErrorMessage();
- }
- return tab.getErrorMessage();
- }
-
- /**
- * Notification that the user changed the selection of the Debugger.
- */
- protected void handleDebuggerChanged() {
- loadDynamicDebugArea();
-
- // always set the newly created area with defaults
- ILaunchConfigurationWorkingCopy wc = getLaunchConfigurationWorkingCopy();
- if (getDynamicTab() == null) {
- // remove any debug specfic args from the config
- if (wc == null) {
- if (getLaunchConfiguration().isWorkingCopy()) {
- wc = (ILaunchConfigurationWorkingCopy)getLaunchConfiguration();
- }
- }
- if (wc != null) {
- wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAP, (Map<String, String>) null);
- }
- } else {
- if (wc == null) {
- try {
- if (getLaunchConfiguration().isWorkingCopy()) {
- setLaunchConfigurationWorkingCopy((ILaunchConfigurationWorkingCopy)getLaunchConfiguration());
- } else {
- setLaunchConfigurationWorkingCopy(getLaunchConfiguration().getWorkingCopy());
- }
- wc = getLaunchConfigurationWorkingCopy();
-
- } catch (CoreException e) {
- return;
- }
- }
- if (initDefaults()) {
- getDynamicTab().setDefaults(wc);
- }
- setInitializeDefault(false);
- getDynamicTab().initializeFrom(wc);
- }
- }
-
- /**
- * Show the contributed piece of UI that was registered for the debugger id
- * of the currently selected debugger.
- */
- protected void loadDynamicDebugArea() {
- // Dispose of any current child widgets in the tab holder area
- Control[] children = getDynamicTabHolder().getChildren();
- for (int i = 0; i < children.length; i++) {
- children[i].dispose();
- }
-
- // Retrieve the dynamic UI for the current Debugger
- ICDebugConfiguration debugConfig = getConfigForCurrentDebugger();
- if (debugConfig == null) {
- setDynamicTab(null);
- } else {
- ICDebuggerPage tab = null;
- try {
- tab = CDebugUIPlugin.getDefault().getDebuggerPage(debugConfig.getID());
- } catch (CoreException e) {
- LaunchUIPlugin.errorDialog(LaunchMessages.AbstractCDebuggerTab_ErrorLoadingDebuggerPage, e.getStatus());
- }
- setDynamicTab(tab);
- }
- setDebugConfig(debugConfig);
- if (getDynamicTab() == null) {
- return;
- }
- // Ask the dynamic UI to create its Control
- getDynamicTab().setLaunchConfigurationDialog(getLaunchConfigurationDialog());
- getDynamicTab().createControl(getDynamicTabHolder());
- Control control = getDynamicTab().getControl();
- if (control != null) {
- control.setVisible(true);
- }
- getDynamicTabHolder().layout(true);
- contentsChanged();
- }
-
- /**
- * Called whenever the controls within the Debugger tab has changed.
- */
- protected void contentsChanged() {
- }
-
- @Override
- abstract public void createControl(Composite parent);
-
- @Override
- public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
- ICDebuggerPage dynamicTab = getDynamicTab();
- if (dynamicTab != null) {
- dynamicTab.activated(workingCopy);
- }
- }
-
- @Override
- public void initializeFrom(ILaunchConfiguration config) {
- setLaunchConfiguration(config);
- ICDebuggerPage dynamicTab = getDynamicTab();
- if (dynamicTab != null) {
- dynamicTab.initializeFrom(config);
- }
- }
-
- @Override
- public void performApply(ILaunchConfigurationWorkingCopy config) {
- if (getDebugConfig() != null) {
- config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_ID, getDebugConfig().getID());
- ICDebuggerPage dynamicTab = getDynamicTab();
- if (dynamicTab == null) {
- config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAP, (Map<String, String>) null);
- } else {
- dynamicTab.performApply(config);
- }
- }
- }
-
- @Override
- public void setDefaults(ILaunchConfigurationWorkingCopy config) {
- setLaunchConfigurationWorkingCopy(config);
- ICDebuggerPage dynamicTab = getDynamicTab();
- if (dynamicTab != null) {
- dynamicTab.setDefaults(config);
- setInitializeDefault(false);
- }
- }
-
- @Override
- public boolean isValid(ILaunchConfiguration config) {
- setErrorMessage(null);
- setMessage(null);
- if (getDebugConfig() == null) {
- setErrorMessage(LaunchMessages.AbstractCDebuggerTab_No_debugger_available);
- return false;
- }
-
- ICDebuggerPage dynamicTab = getDynamicTab();
- if (dynamicTab != null) {
- return dynamicTab.isValid(config);
- }
- return true;
- }
-
- protected void setInitializeDefault(boolean init) {
- fInitDefaults = init;
- }
-
- protected boolean initDefaults() {
- return fInitDefaults;
- }
-
- @Override
- public Image getImage() {
- return LaunchImages.get(LaunchImages.IMG_VIEW_DEBUGGER_TAB);
- }
-
- @Override
- public String getName() {
- return LaunchMessages.AbstractCDebuggerTab_Debugger;
- }
-
- protected void createDebuggerCombo(Composite parent, int colspan) {
- Composite comboComp = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- comboComp.setLayout(layout);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan = colspan;
- comboComp.setLayoutData(gd);
- Label dlabel = new Label(comboComp, SWT.NONE);
- dlabel.setText(LaunchMessages.Launch_common_DebuggerColon);
- fDCombo = new Combo(comboComp, SWT.READ_ONLY | SWT.DROP_DOWN);
- fDCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- fDCombo.addSelectionListener(new SelectionListener() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (!isInitializing()) {
- setInitializeDefault(true);
- updateComboFromSelection();
- }
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- });
- }
-
- protected void loadDebuggerCombo(ICDebugConfiguration[] debugConfigs, String current) {
- fDCombo.removeAll();
- int select = -1;
- for (int i = 0; i < debugConfigs.length; i++) {
- fDCombo.add(debugConfigs[i].getName());
- fDCombo.setData(Integer.toString(i), debugConfigs[i]);
- if (debugConfigs[i].getID().equalsIgnoreCase(current)) {
- select = i;
- }
- }
-
- fPageUpdated = false;
- if (select != -1) {
- fDCombo.select(select);
- }
- //The behaviour is undefined for if the callbacks should be triggered
- // for this,
- //so force page update if needed.
- if (!fPageUpdated) {
- updateComboFromSelection();
- }
- fPageUpdated = false;
- getControl().getParent().layout(true);
-
- }
-
- protected void createDebuggerGroup(Composite parent, int colspan) {
- Group debuggerGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
- debuggerGroup.setText(LaunchMessages.CDebuggerTab_Debugger_Options);
- setDynamicTabHolder(debuggerGroup);
- GridLayout tabHolderLayout = new GridLayout();
- tabHolderLayout.marginHeight = 0;
- tabHolderLayout.marginWidth = 0;
- tabHolderLayout.numColumns = 1;
- getDynamicTabHolder().setLayout(tabHolderLayout);
- GridData gd = new GridData(GridData.FILL_BOTH);
- gd.horizontalSpan = colspan;
- getDynamicTabHolder().setLayoutData(gd);
- }
-
- protected void updateComboFromSelection() {
- fPageUpdated = true;
- handleDebuggerChanged();
- updateLaunchConfigurationDialog();
- }
-
- protected boolean isInitializing() {
- return fIsInitializing;
- }
-
- protected void setInitializing(boolean isInitializing) {
- fIsInitializing = isInitializing;
- }
-
- /**
- * Return the class that implements <code>ICDebuggerPage</code>
- * that is registered against the debugger id of the currently selected
- * debugger.
- */
- protected ICDebugConfiguration getConfigForCurrentDebugger() {
- int selectedIndex = fDCombo.getSelectionIndex();
- return (ICDebugConfiguration)fDCombo.getData(Integer.toString(selectedIndex));
- }
-}

Back to the top