Skip to content

Commit 03d8e1f

Browse files
authored
IEP-1721 Refactor Tab Groups to declare tabs in plugin.xml (#1407)
* feat: moving hardcoded tab declaration to the plugin.xml * fix: fixing tests to activate main tab properly * fix: changed a method from tabItem to cTabItem to fix tests
1 parent 36a389e commit 03d8e1f

7 files changed

Lines changed: 112 additions & 47 deletions

File tree

bundles/com.espressif.idf.debug.gdbjtag.openocd/plugin.xml

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,5 +175,67 @@
175175
plugin="com.espressif.idf.debug.gdbjtag.openocd">
176176
</statusHandler>
177177
</extension>
178-
178+
<extension
179+
point="org.eclipse.debug.ui.launchConfigurationTabs">
180+
<tab
181+
class="com.espressif.idf.debug.gdbjtag.openocd.ui.TabMain"
182+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
183+
id="org.eclipse.cdt.cdi.launch.mainTab"
184+
name="Main">
185+
</tab>
186+
<tab
187+
class="com.espressif.idf.debug.gdbjtag.openocd.ui.TabDebugger"
188+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
189+
id="com.espressif.idf.debug.gdbjtag.openocd.ui.debuggertab"
190+
name="Debugger">
191+
<placement
192+
after="org.eclipse.cdt.cdi.launch.mainTab">
193+
</placement>
194+
</tab>
195+
<tab
196+
class="com.espressif.idf.debug.gdbjtag.openocd.ui.TabStartup"
197+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
198+
id="com.espressif.idf.debug.gdbjtag.openocd.ui.startuptab"
199+
name="Startup">
200+
<placement
201+
after="com.espressif.idf.debug.gdbjtag.openocd.ui.debuggertab">
202+
</placement>
203+
</tab>
204+
<tab
205+
class="org.eclipse.debug.ui.sourcelookup.SourceLookupTab"
206+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
207+
id="org.eclipse.debug.ui.sourceLookupTab"
208+
name="SourceLookupTab">
209+
<placement
210+
after="com.espressif.idf.debug.gdbjtag.openocd.ui.startuptab">
211+
</placement>
212+
</tab>
213+
<tab
214+
class="org.eclipse.debug.ui.CommonTab"
215+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
216+
id="org.eclipse.debug.ui.commonTab"
217+
name="CommonTab">
218+
<placement
219+
after="org.eclipse.debug.ui.sourceLookupTab">
220+
</placement>
221+
</tab>
222+
<tab
223+
class="com.espressif.idf.debug.gdbjtag.openocd.ui.TabSvdTarget"
224+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
225+
id="org.eclipse.embedcdt.debug.gdbjtag.ui.svdtab"
226+
name="TabSvdTarget">
227+
<placement
228+
after="org.eclipse.debug.ui.commonTab">
229+
</placement>
230+
</tab>
231+
<tab
232+
class="com.espressif.idf.debug.gdbjtag.openocd.ui.TabDebugger"
233+
group="com.espressif.idf.debug.gdbjtag.openocd.launchConfigurationTabGroup"
234+
id="com.espressif.idf.debug.gdbjtag.openocd.ui.debuggertab"
235+
name="Debugger">
236+
<placement
237+
after="org.eclipse.cdt.cdi.launch.mainTab">
238+
</placement>
239+
</tab>
240+
</extension>
179241
</plugin>

bundles/com.espressif.idf.debug.gdbjtag.openocd/src/com/espressif/idf/debug/gdbjtag/openocd/ui/TabDebugger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public class TabDebugger extends AbstractLaunchConfigurationTab
118118

119119
// ------------------------------------------------------------------------
120120

121-
protected TabDebugger(TabStartup tabStartup)
121+
public TabDebugger()
122122
{
123123
super();
124124
fDefaultPreferences = Activator.getInstance().getDefaultPreferences();

bundles/com.espressif.idf.debug.gdbjtag.openocd/src/com/espressif/idf/debug/gdbjtag/openocd/ui/TabGroupLaunchConfiguration.java

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@
1818
import org.eclipse.debug.core.DebugPlugin;
1919
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
2020
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
21-
import org.eclipse.debug.ui.CommonTab;
2221
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
23-
import org.eclipse.debug.ui.ILaunchConfigurationTab;
24-
import org.eclipse.debug.ui.sourcelookup.SourceLookupTab;
2522

2623
import com.espressif.idf.core.logging.Logger;
2724
import com.espressif.idf.core.util.IDFUtil;
@@ -33,24 +30,7 @@ public class TabGroupLaunchConfiguration extends AbstractLaunchConfigurationTabG
3330
@Override
3431
public void createTabs(ILaunchConfigurationDialog dialog, String mode)
3532
{
36-
37-
// Normally the tabs should be defined in the plugin.xml, and
38-
// here just return an empty array:
39-
// setTabs(new ILaunchConfigurationTab[0]);
40-
// But the first attempt to make this work failed, it seems
41-
// there is something missing in the definitions and
42-
// the tab extensions are filtered out.
43-
44-
// To avoid these problems and for a better control,
45-
// we manually define the tabs here.
46-
47-
TabStartup tabStartup = new TabStartup();
48-
49-
ILaunchConfigurationTab tabs[] = new ILaunchConfigurationTab[] { new TabMain(), new TabDebugger(tabStartup),
50-
tabStartup, new SourceLookupTab(), new CommonTab(), new TabSvdTarget() };
51-
52-
setTabs(tabs);
53-
33+
setTabs();
5434
}
5535

5636
@Override

bundles/com.espressif.idf.launch.serial.ui/plugin.xml

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@
2424
</extension>
2525
<extension
2626
point="org.eclipse.launchbar.ui.launchBarUIContributions">
27-
<buildTabGroup
28-
launchConfigType="com.espressif.idf.launch.serial.launchConfigurationType"
29-
launchDescriptorType="com.espressif.idf.launch.serial.core.idf.descriptorType"
30-
tabGroup="org.eclipse.cdt.launch.internal.corebuild.CoreBuildTabGroup">
31-
</buildTabGroup>
3227
<descriptorUI
3328
descriptorTypeId="com.espressif.idf.launch.serial.core.idf.descriptorType"
3429
labelProvider="com.espressif.idf.launch.serial.ui.IDFLaunchDescriptorLabelProvider">
@@ -65,5 +60,41 @@
6560
resolver="com.espressif.idf.launch.serial.ui.BuildFolderVariableResolver">
6661
</variable>
6762
</extension>
63+
<extension
64+
point="org.eclipse.debug.ui.launchConfigurationTabs">
65+
<tab
66+
class="org.eclipse.cdt.launch.ui.corebuild.CoreBuildTab"
67+
group="com.espressif.idf.launch.serial.ui.launchConfigurationTabGroup"
68+
id="org.eclipse.cdt.cdi.launch.buildSettingsTab"
69+
name="Core Build Tab">
70+
</tab>
71+
<tab
72+
class="com.espressif.idf.launch.serial.ui.internal.CMakeMainTab2"
73+
group="com.espressif.idf.launch.serial.ui.launchConfigurationTabGroup"
74+
id="com.espressif.idf.launch.serial.ui.mainTab"
75+
name="Main Tab">
76+
<placement
77+
after="org.eclipse.cdt.cdi.launch.buildSettingsTab">
78+
</placement>
79+
</tab>
80+
<tab
81+
class="org.eclipse.debug.ui.EnvironmentTab"
82+
group="com.espressif.idf.launch.serial.ui.launchConfigurationTabGroup"
83+
id="org.eclipse.debug.ui.environmentTab"
84+
name="Environment Tab">
85+
<placement
86+
after="com.espressif.idf.launch.serial.ui.mainTab">
87+
</placement>
88+
</tab>
89+
<tab
90+
class="org.eclipse.debug.ui.CommonTab"
91+
group="com.espressif.idf.launch.serial.ui.launchConfigurationTabGroup"
92+
id="org.eclipse.debug.ui.commonTab"
93+
name="Common Tab">
94+
<placement
95+
after="org.eclipse.debug.ui.environmentTab">
96+
</placement>
97+
</tab>
98+
</extension>
6899

69100
</plugin>

bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/SerialFlashLaunchConfigTabGroup.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,24 @@
1515
*******************************************************************************/
1616
package com.espressif.idf.launch.serial.ui.internal;
1717

18-
import org.eclipse.cdt.launch.ui.corebuild.CoreBuildTab;
1918
import org.eclipse.core.resources.IResource;
2019
import org.eclipse.core.runtime.CoreException;
2120
import org.eclipse.debug.core.ILaunchConfiguration;
2221
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
2322
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
24-
import org.eclipse.debug.ui.CommonTab;
25-
import org.eclipse.debug.ui.EnvironmentTab;
2623
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
27-
import org.eclipse.debug.ui.ILaunchConfigurationTab;
28-
import org.eclipse.launchbar.ui.internal.LaunchBarLaunchConfigDialog;
2924

3025
import com.espressif.idf.core.logging.Logger;
3126
import com.espressif.idf.core.util.IDFUtil;
3227

33-
@SuppressWarnings("restriction")
3428
public class SerialFlashLaunchConfigTabGroup extends AbstractLaunchConfigurationTabGroup
3529
{
3630

3731
@Override
3832
public void createTabs(ILaunchConfigurationDialog dialog, String mode)
3933
{
40-
if (dialog instanceof LaunchBarLaunchConfigDialog)
41-
{
42-
setTabs(new ILaunchConfigurationTab[] { new CMakeMainTab2(), new EnvironmentTab(), new CommonTab() });
43-
}
44-
else
45-
{
46-
setTabs(new ILaunchConfigurationTab[] { new CoreBuildTab(), new CMakeMainTab2(), new EnvironmentTab(),
47-
new CommonTab() });
48-
}
34+
35+
setTabs();
4936

5037
}
5138

tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/IDFProjectJTAGFlashTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,11 @@ private static void whenSelectJTAGflashInLaunchConfig() throws Exception
125125
{
126126
LaunchBarConfigSelector configSelector = new LaunchBarConfigSelector(bot);
127127
configSelector.clickEdit();
128+
128129
TestWidgetWaitUtility.waitForDialogToAppear(bot, "Edit Configuration", 20000);
129-
bot.cTabItem("Main").show();
130-
bot.cTabItem("Main").setFocus();
130+
131+
bot.cTabItem("Main").activate();
132+
131133
bot.comboBoxWithLabel("Flash over:").setSelection("JTAG");
132134
bot.button("OK").click();
133135
}

tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/NewEspressifIDFProjectFlashProcessTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,17 @@ private static void whenTurnOffOpenSerialMonitorAfterFlashingInLaunchConfig() th
126126
{
127127
LaunchBarConfigSelector configSelector = new LaunchBarConfigSelector(bot);
128128
configSelector.clickEdit();
129+
129130
TestWidgetWaitUtility.waitForDialogToAppear(bot, "Edit Configuration", 20000);
130-
bot.cTabItem("Main").show();
131-
bot.cTabItem("Main").setFocus();
131+
132+
bot.cTabItem("Main").activate();
133+
132134
SWTBotCheckBox checkBox = bot.checkBox("Open Serial Monitor After Flashing");
133135
if (checkBox.isChecked())
134136
{
135137
checkBox.click();
136138
}
139+
137140
bot.button("OK").click();
138141
}
139142

0 commit comments

Comments
 (0)