mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00
new mi ui plugin
This commit is contained in:
parent
40af4ef33b
commit
c8f9368b0b
8 changed files with 269 additions and 0 deletions
17
debug/org.eclipse.cdt.debug.mi.ui/.classpath
Normal file
17
debug/org.eclipse.cdt.debug.mi.ui/.classpath
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src/"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.core.resources"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.ui"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.cdt.debug.mi.core"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.cdt.debug.ui"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.cdt.debug.core"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.cdt.launch"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.cdt.ui"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.debug.core"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.debug.ui"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.core.runtime"/>
|
||||||
|
<classpathentry kind="src" path="/org.eclipse.core.boot"/>
|
||||||
|
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
1
debug/org.eclipse.cdt.debug.mi.ui/.cvsignore
Normal file
1
debug/org.eclipse.cdt.debug.mi.ui/.cvsignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
bin
|
39
debug/org.eclipse.cdt.debug.mi.ui/.project
Normal file
39
debug/org.eclipse.cdt.debug.mi.ui/.project
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>org.eclipse.cdt.debug.mi.ui</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
<project>org.eclipse.cdt.debug.core</project>
|
||||||
|
<project>org.eclipse.cdt.debug.mi.core</project>
|
||||||
|
<project>org.eclipse.cdt.debug.ui</project>
|
||||||
|
<project>org.eclipse.cdt.launch</project>
|
||||||
|
<project>org.eclipse.cdt.ui</project>
|
||||||
|
<project>org.eclipse.core.boot</project>
|
||||||
|
<project>org.eclipse.core.resources</project>
|
||||||
|
<project>org.eclipse.core.runtime</project>
|
||||||
|
<project>org.eclipse.debug.core</project>
|
||||||
|
<project>org.eclipse.debug.ui</project>
|
||||||
|
<project>org.eclipse.ui</project>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.pde.PluginNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
1
debug/org.eclipse.cdt.debug.mi.ui/build.properties
Normal file
1
debug/org.eclipse.cdt.debug.mi.ui/build.properties
Normal file
|
@ -0,0 +1 @@
|
||||||
|
source.miui.jar = src/
|
2
debug/org.eclipse.cdt.debug.mi.ui/plugin.properties
Normal file
2
debug/org.eclipse.cdt.debug.mi.ui/plugin.properties
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
pluginName=GDB/MI CDI Debugger UI
|
||||||
|
providerName=Eclipse.org
|
36
debug/org.eclipse.cdt.debug.mi.ui/plugin.xml
Normal file
36
debug/org.eclipse.cdt.debug.mi.ui/plugin.xml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<plugin
|
||||||
|
id="org.eclipse.cdt.debug.mi.ui"
|
||||||
|
name="%pluginName"
|
||||||
|
version="1.0.0"
|
||||||
|
provider-name="%providerName"
|
||||||
|
class="org.eclipse.cdt.debug.mi.internal.ui.MIUIPlugin">
|
||||||
|
|
||||||
|
<runtime>
|
||||||
|
<library name="miui.jar">
|
||||||
|
<export name="*"/>
|
||||||
|
</library>
|
||||||
|
</runtime>
|
||||||
|
<requires>
|
||||||
|
<import plugin="org.eclipse.core.resources"/>
|
||||||
|
<import plugin="org.eclipse.ui"/>
|
||||||
|
<import plugin="org.eclipse.cdt.debug.mi.core"/>
|
||||||
|
<import plugin="org.eclipse.cdt.debug.ui"/>
|
||||||
|
<import plugin="org.eclipse.cdt.debug.core"/>
|
||||||
|
<import plugin="org.eclipse.cdt.launch"/>
|
||||||
|
<import plugin="org.eclipse.cdt.ui"/>
|
||||||
|
<import plugin="org.eclipse.debug.core"/>
|
||||||
|
<import plugin="org.eclipse.debug.ui"/>
|
||||||
|
</requires>
|
||||||
|
|
||||||
|
|
||||||
|
<extension
|
||||||
|
point="org.eclipse.cdt.debug.ui.CDebuggerPage">
|
||||||
|
<debugPage
|
||||||
|
class="org.eclipse.cdt.debug.mi.internal.ui.CDebuggerPage"
|
||||||
|
id="org.eclipse.cdt.debug.mi.CDebuggerPage"
|
||||||
|
debuggerID="org.eclipse.cdt.debug.mi.core.CDebugger">
|
||||||
|
</debugPage>
|
||||||
|
</extension>
|
||||||
|
|
||||||
|
</plugin>
|
|
@ -0,0 +1,110 @@
|
||||||
|
/*
|
||||||
|
* (c) Copyright QNX Software System Ltd. 2002.
|
||||||
|
* All Rights Reserved.
|
||||||
|
*/
|
||||||
|
package org.eclipse.cdt.debug.mi.internal.ui;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.ICDebugConfiguration;
|
||||||
|
import org.eclipse.cdt.launch.ICDTLaunchConfigurationConstants;
|
||||||
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||||
|
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
||||||
|
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
|
||||||
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.events.ModifyEvent;
|
||||||
|
import org.eclipse.swt.events.ModifyListener;
|
||||||
|
import org.eclipse.swt.events.SelectionAdapter;
|
||||||
|
import org.eclipse.swt.events.SelectionEvent;
|
||||||
|
import org.eclipse.swt.layout.GridData;
|
||||||
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
|
import org.eclipse.swt.widgets.Button;
|
||||||
|
import org.eclipse.swt.widgets.Composite;
|
||||||
|
import org.eclipse.swt.widgets.Label;
|
||||||
|
import org.eclipse.swt.widgets.Text;
|
||||||
|
|
||||||
|
public class CDebuggerPage extends AbstractLaunchConfigurationTab {
|
||||||
|
protected Text fDebuggerCommandText;
|
||||||
|
|
||||||
|
protected static final Map EMPTY_MAP = new HashMap(1);
|
||||||
|
|
||||||
|
public void createControl(Composite parent) {
|
||||||
|
Composite comp = new Composite(parent, SWT.NONE);
|
||||||
|
GridLayout topLayout = new GridLayout();
|
||||||
|
comp.setLayout(topLayout);
|
||||||
|
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
|
||||||
|
comp.setLayoutData(gd);
|
||||||
|
|
||||||
|
createVerticalSpacer(comp, 2);
|
||||||
|
|
||||||
|
Label debugCommandLabel= new Label(comp, SWT.NONE);
|
||||||
|
debugCommandLabel.setText("Debugger executable:");
|
||||||
|
|
||||||
|
fDebuggerCommandText= new Text(comp, SWT.SINGLE | SWT.BORDER);
|
||||||
|
gd = new GridData(GridData.FILL_HORIZONTAL);
|
||||||
|
fDebuggerCommandText.setLayoutData(gd);
|
||||||
|
fDebuggerCommandText.addModifyListener(new ModifyListener() {
|
||||||
|
public void modifyText(ModifyEvent evt) {
|
||||||
|
updateLaunchConfigurationDialog();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fDebuggerCommandText.setText(getCommand());
|
||||||
|
|
||||||
|
setControl(comp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
|
||||||
|
Map attributeMap = new HashMap(1);
|
||||||
|
// attributeMap.put(ATTR_DEBUGGER_COMMAND, getCommand());
|
||||||
|
configuration.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAP, attributeMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCommand() {
|
||||||
|
return "gdb";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see ILaunchConfigurationTab#isValid(ILaunchConfiguration)
|
||||||
|
*/
|
||||||
|
public boolean isValid(ILaunchConfiguration launchConfig) {
|
||||||
|
boolean valid= fDebuggerCommandText.getText().length() != 0;
|
||||||
|
if (valid) {
|
||||||
|
setErrorMessage(null);
|
||||||
|
setMessage(null);
|
||||||
|
} else {
|
||||||
|
setErrorMessage("Debugger executable must be specified");
|
||||||
|
setMessage(null);
|
||||||
|
}
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initializeFrom(ILaunchConfiguration configuration) {
|
||||||
|
String debuggerCommand= null;
|
||||||
|
try {
|
||||||
|
Map attributeMap = configuration.getAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAP, EMPTY_MAP);
|
||||||
|
if (attributeMap != null) {
|
||||||
|
// debuggerCommand = (String) attributeMap.get(IJavaLaunchConfigurationConstants.ATTR_JAVA_COMMAND);
|
||||||
|
if (debuggerCommand == null) {
|
||||||
|
debuggerCommand = getCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch(CoreException ce) {
|
||||||
|
// JDIDebugUIPlugin.log(ce);
|
||||||
|
}
|
||||||
|
fDebuggerCommandText.setText(debuggerCommand);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
|
||||||
|
String debuggerCommand = fDebuggerCommandText.getText();
|
||||||
|
Map attributeMap = new HashMap(1);
|
||||||
|
// attributeMap.put(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAPVA_COMMAND, debuggerCommand);
|
||||||
|
configuration.setAttribute(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_SPECIFIC_ATTRS_MAP, attributeMap);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return "GDB/MI Debugger Options";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.internal.ui;
|
||||||
|
|
||||||
|
import org.eclipse.ui.plugin.*;
|
||||||
|
import org.eclipse.core.runtime.*;
|
||||||
|
import org.eclipse.core.resources.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main plugin class to be used in the desktop.
|
||||||
|
*/
|
||||||
|
public class MIUIPlugin extends AbstractUIPlugin {
|
||||||
|
//The shared instance.
|
||||||
|
private static MIUIPlugin plugin;
|
||||||
|
//Resource bundle.
|
||||||
|
private ResourceBundle resourceBundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constructor.
|
||||||
|
*/
|
||||||
|
public MIUIPlugin(IPluginDescriptor descriptor) {
|
||||||
|
super(descriptor);
|
||||||
|
plugin = this;
|
||||||
|
try {
|
||||||
|
resourceBundle= ResourceBundle.getBundle("org.eclipse.cdt.debug.mi.ui.UiPluginResources");
|
||||||
|
} catch (MissingResourceException x) {
|
||||||
|
resourceBundle = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the shared instance.
|
||||||
|
*/
|
||||||
|
public static MIUIPlugin getDefault() {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the workspace instance.
|
||||||
|
*/
|
||||||
|
public static IWorkspace getWorkspace() {
|
||||||
|
return ResourcesPlugin.getWorkspace();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the string from the plugin's resource bundle,
|
||||||
|
* or 'key' if not found.
|
||||||
|
*/
|
||||||
|
public static String getResourceString(String key) {
|
||||||
|
ResourceBundle bundle= MIUIPlugin.getDefault().getResourceBundle();
|
||||||
|
try {
|
||||||
|
return bundle.getString(key);
|
||||||
|
} catch (MissingResourceException e) {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the plugin's resource bundle,
|
||||||
|
*/
|
||||||
|
public ResourceBundle getResourceBundle() {
|
||||||
|
return resourceBundle;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue