1 package com
.zylin
.embeddedcdt
.gui
;
3 import org
.eclipse
.cdt
.debug
.core
.ICDebugConfiguration
;
4 import org
.eclipse
.cdt
.launch
.internal
.ui
.LaunchMessages
;
5 import org
.eclipse
.cdt
.launch
.ui
.CDebuggerTab
;
6 import org
.eclipse
.swt
.SWT
;
7 import org
.eclipse
.swt
.events
.ModifyEvent
;
8 import org
.eclipse
.swt
.events
.ModifyListener
;
9 import org
.eclipse
.swt
.layout
.GridData
;
10 import org
.eclipse
.swt
.layout
.GridLayout
;
11 import org
.eclipse
.swt
.widgets
.Combo
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.swt
.widgets
.Label
;
16 public class EmbeddedDebuggerTab
extends CDebuggerTab
{
18 public EmbeddedDebuggerTab(boolean attachMode
) {
21 private Combo fDCombo
;
22 private boolean fPageUpdated
;
25 * @see org.eclipse.cdt.launch.internal.ui.AbstractCDebuggerTab#createDebuggerCombo(org.eclipse.swt.widgets.Composite, int)
27 protected void createDebuggerCombo(Composite parent
, int colspan
) {
28 Composite comboComp
= new Composite(parent
, SWT
.NONE
);
29 GridLayout layout
= new GridLayout(2, false);
30 comboComp
.setLayout(layout
);
31 GridData gd
= new GridData(GridData
.FILL_HORIZONTAL
);
32 gd
.horizontalSpan
= colspan
;
33 comboComp
.setLayoutData(gd
);
34 Label dlabel
= new Label(comboComp
, SWT
.NONE
);
35 dlabel
.setText(LaunchMessages
.getString("Launch.common.DebuggerColon")); //$NON-NLS-1$
36 fDCombo
= new Combo(comboComp
, SWT
.READ_ONLY
| SWT
.DROP_DOWN
);
37 fDCombo
.setLayoutData(new GridData(GridData
.FILL_HORIZONTAL
));
38 fDCombo
.addModifyListener(new ModifyListener() {
40 public void modifyText(ModifyEvent e
) {
41 if (!isInitializing()) {
42 setInitializeDefault(true);
43 updateComboFromSelection();
47 fDCombo
.setEnabled(false); // ghost it. It has only one approperiate setting.
50 * @see org.eclipse.cdt.launch.internal.ui.AbstractCDebuggerTab#loadDebuggerCombo(org.eclipse.cdt.debug.core.ICDebugConfiguration[], java.lang.String)
52 protected void loadDebuggerCombo(ICDebugConfiguration
[] debugConfigs
,
55 current
="com.zylin.embeddedcdt.EmbeddedCDebugger";
57 for (int i
= 0; i
< debugConfigs
.length
; i
++) {
58 fDCombo
.add(debugConfigs
[i
].getName());
59 fDCombo
.setData(Integer
.toString(i
), debugConfigs
[i
]);
60 if (debugConfigs
[i
].getID().equalsIgnoreCase(current
)) {
67 fDCombo
.select(select
);
69 //The behaviour is undefined for if the callbacks should be triggered
71 //so force page update if needed.
73 updateComboFromSelection();
76 getControl().getParent().layout(true);
79 * Return the class that implements <code>ICDebuggerPage</code>
80 * that is registered against the debugger id of the currently selected
83 protected ICDebugConfiguration
getConfigForCurrentDebugger() {
84 int selectedIndex
= fDCombo
.getSelectionIndex();
85 return (ICDebugConfiguration
)fDCombo
.getData(Integer
.toString(selectedIndex
));
87 public String
getDebugger()
89 return ((EmbeddedGDBDebuggerPage
)getDynamicTab()).getDebugger();