Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java')
-rw-r--r--cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java
new file mode 100644
index 00000000000..3717d571019
--- /dev/null
+++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDSFDebuggerTab.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mentor Graphics 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:
+ * Anna Dushistova (Mentor Graphics) - initial API and implementation
+ * Anna Dushistova (Mentor Graphics) - moved to org.eclipse.cdt.launch.remote.tabs
+ *******************************************************************************/
+
+package org.eclipse.cdt.launch.remote.tabs;
+
+import org.eclipse.cdt.debug.ui.ICDebuggerPage;
+import org.eclipse.cdt.dsf.gdb.internal.ui.launching.CDebuggerTab;
+import org.eclipse.cdt.dsf.gdb.internal.ui.launching.GdbCoreDebuggerPage;
+import org.eclipse.cdt.dsf.gdb.internal.ui.launching.GdbDebuggerPage;
+import org.eclipse.cdt.dsf.gdb.internal.ui.launching.GdbServerDebuggerPage;
+import org.eclipse.cdt.dsf.gdb.service.SessionType;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+public class RemoteCDSFDebuggerTab extends CDebuggerTab {
+
+ private final static String DEFAULTS_SET = "org.eclipse.cdt.launch.remote.RemoteCDSFDebuggerTab.DEFAULTS_SET"; //$NON-NLS-1$
+
+ public RemoteCDSFDebuggerTab() {
+ super(SessionType.REMOTE, false);
+ }
+
+ /*
+ * When the launch configuration is created for Run mode, this Debugger tab
+ * is not created because it is not used for Run mode but only for Debug
+ * mode. When we then open the same configuration in Debug mode, the launch
+ * configuration already exists and initializeFrom() is called instead of
+ * setDefaults(). We therefore call setDefaults() ourselves and update the
+ * configuration. If we don't then the user will be required to press Apply
+ * to get the default settings saved. Bug 281970
+ */
+ @Override
+ public void setDefaults(ILaunchConfigurationWorkingCopy config) {
+ config.setAttribute(DEFAULTS_SET, true);
+ super.setDefaults(config);
+ }
+
+ @Override
+ public void initializeFrom(ILaunchConfiguration config) {
+ try {
+ if (config.hasAttribute(DEFAULTS_SET) == false) {
+ ILaunchConfigurationWorkingCopy wc;
+ wc = config.getWorkingCopy();
+ setDefaults(wc);
+ wc.doSave();
+ }
+ } catch (CoreException e) {
+ }
+
+ super.initializeFrom(config);
+ }
+
+ protected void loadDynamicDebugArea() {
+ Composite dynamicTabHolder = getDynamicTabHolder();
+ // Dispose of any current child widgets in the tab holder area
+ Control[] children = dynamicTabHolder.getChildren();
+ for (int i = 0; i < children.length; i++) {
+ children[i].dispose();
+ }
+ setDynamicTab(new RemoteDSFGDBDebuggerPage());
+
+ ICDebuggerPage debuggerPage = getDynamicTab();
+ if (debuggerPage == null) {
+ return;
+ }
+ // Ask the dynamic UI to create its Control
+ debuggerPage
+ .setLaunchConfigurationDialog(getLaunchConfigurationDialog());
+ debuggerPage.createControl(dynamicTabHolder);
+ debuggerPage.getControl().setVisible(true);
+ dynamicTabHolder.layout(true);
+ contentsChanged();
+ }
+
+ @Override
+ public String getId() {
+ return "org.eclipse.rse.remotecdt.dsf.debug.RemoteCDSFDebuggerTab"; //$NON-NLS-1$
+ }
+
+}

Back to the top