diff options
Diffstat (limited to 'cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java')
-rw-r--r-- | cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java new file mode 100644 index 00000000000..ebf491c9823 --- /dev/null +++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/RemoteDSFGDBDebuggerPage.java @@ -0,0 +1,158 @@ +/******************************************************************************* + * Copyright (c) 2006, 2010 PalmSource, Inc. 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: + * Ewa Matejska (PalmSource) + * + * Referenced GDBDebuggerPage code to write this. + * Anna Dushistova (Mentor Graphics) - adapted from RemoteGDBDebuggerPage + *******************************************************************************/ +package org.eclipse.cdt.launch.remote; + +import org.eclipse.cdt.dsf.gdb.internal.ui.launching.GdbDebuggerPage; +import org.eclipse.cdt.dsf.gdb.internal.ui.launching.SerialPortSettingsBlock; +import org.eclipse.cdt.dsf.gdb.internal.ui.launching.TCPSettingsBlock; +import org.eclipse.cdt.internal.launch.remote.Messages; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.eclipse.swt.widgets.Text; + +public class RemoteDSFGDBDebuggerPage extends GdbDebuggerPage{ + + protected Text fGDBServerCommandText; + + protected Text fGDBServerPortNumberText; + + private boolean fIsInitializing = false; + + + public RemoteDSFGDBDebuggerPage() { + super(); + } + + + public String getName() { + return Messages.Remote_GDB_Debugger_Options; + } + + public void setDefaults( ILaunchConfigurationWorkingCopy configuration ) { + super.setDefaults(configuration); + configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, + IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND_DEFAULT ); + configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, + IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT_DEFAULT ); + } + + public void initializeFrom( ILaunchConfiguration configuration ) { + setInitializing(true); + super.initializeFrom(configuration); + + String gdbserverCommand = null; + String gdbserverPortNumber = null; + try { + gdbserverCommand = configuration.getAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, + IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND_DEFAULT); + } + catch( CoreException e ) { + } + try { + gdbserverPortNumber = configuration.getAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, + IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT_DEFAULT ); + } + catch( CoreException e ) { + } + fGDBServerCommandText.setText( gdbserverCommand ); + fGDBServerPortNumberText.setText( gdbserverPortNumber ); + setInitializing(false); + } + + public void performApply( ILaunchConfigurationWorkingCopy configuration ) { + super.performApply(configuration); + String str = fGDBServerCommandText.getText(); + str.trim(); + configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, str ); + str = fGDBServerPortNumberText.getText(); + str.trim(); + configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, str ); + } + + protected void createGdbserverSettingsTab( TabFolder tabFolder ) { + TabItem tabItem = new TabItem( tabFolder, SWT.NONE ); + tabItem.setText( Messages.Gdbserver_Settings_Tab_Name ); + + Composite comp = new Composite(tabFolder, SWT.NULL); + comp.setLayout(new GridLayout(1, true)); + comp.setLayoutData(new GridData(GridData.FILL_BOTH)); + ((GridLayout)comp.getLayout()).makeColumnsEqualWidth = false; + comp.setFont( tabFolder.getFont() ); + tabItem.setControl( comp ); + + Composite subComp = new Composite(comp, SWT.NULL); + subComp.setLayout(new GridLayout(2, true)); + subComp.setLayoutData(new GridData(GridData.FILL_BOTH)); + ((GridLayout)subComp.getLayout()).makeColumnsEqualWidth = false; + subComp.setFont( tabFolder.getFont() ); + + Label label = new Label(subComp, SWT.LEFT); + label.setText(Messages.Gdbserver_name_textfield_label); + GridData gd = new GridData(); + label.setLayoutData( gd ); + + + fGDBServerCommandText = new Text(subComp, SWT.SINGLE | SWT.BORDER); + GridData data = new GridData(); + fGDBServerCommandText.setLayoutData(data); + fGDBServerCommandText.addModifyListener( new ModifyListener() { + + public void modifyText( ModifyEvent evt ) { + updateLaunchConfigurationDialog(); + } + } ); + label = new Label(subComp, SWT.LEFT); + label.setText(Messages.Port_number_textfield_label); + gd = new GridData(); + label.setLayoutData( gd ); + + fGDBServerPortNumberText = new Text(subComp, SWT.SINGLE | SWT.BORDER); + data = new GridData(); + fGDBServerPortNumberText.setLayoutData(data); + fGDBServerPortNumberText.addModifyListener( new ModifyListener() { + + public void modifyText( ModifyEvent evt ) { + updateLaunchConfigurationDialog(); + } + } ); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.debug.mi.internal.ui.GDBDebuggerPage#createTabs(org.eclipse.swt.widgets.TabFolder) + */ + public void createTabs( TabFolder tabFolder ) { + super.createTabs( tabFolder ); + createGdbserverSettingsTab( tabFolder ); + } + + @Override + protected boolean isInitializing() { + return fIsInitializing; + } + + private void setInitializing(boolean isInitializing) { + fIsInitializing = isInitializing; + } + +} |