Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d0b74b0

Browse files
committed
Refactor boardMenu creation
This commit is part of #7120 by @sandeepmistry
1 parent a1e43ce commit d0b74b0

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

‎app/src/processing/app/Base.java

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ public class Base {
116116
List<Editor> editors = Collections.synchronizedList(new ArrayList<Editor>());
117117
Editor activeEditor;
118118

119+
private static JMenu boardMenu;
120+
119121
// these menus are shared so that the board and serial port selections
120122
// are the same for all windows (since the board and serial port that are
121123
// actually used are determined by the preferences, which are shared)
@@ -1342,6 +1344,29 @@ public void rebuildExamplesMenu(JMenu menu) {
13421344
private static String priorPlatformFolder;
13431345
private static boolean newLibraryImported;
13441346

1347+
public void selectTargetBoard(TargetBoard targetBoard) {
1348+
for (int i = 0; i < boardMenu.getItemCount(); i++) {
1349+
JMenuItem menuItem = boardMenu.getItem(i);
1350+
if (!(menuItem instanceof JRadioButtonMenuItem)) {
1351+
continue;
1352+
}
1353+
1354+
JRadioButtonMenuItem radioButtonMenuItem = ((JRadioButtonMenuItem) menuItem);
1355+
if (targetBoard.getName().equals(radioButtonMenuItem.getText())) {
1356+
radioButtonMenuItem.setSelected(true);
1357+
break;
1358+
}
1359+
}
1360+
1361+
BaseNoGui.selectBoard(targetBoard);
1362+
filterVisibilityOfSubsequentBoardMenus(boardsCustomMenus, targetBoard, 1);
1363+
1364+
onBoardOrPortChange();
1365+
rebuildImportMenu(Editor.importMenu);
1366+
rebuildExamplesMenu(Editor.examplesMenu);
1367+
rebuildProgrammerMenu();
1368+
}
1369+
13451370
public void onBoardOrPortChange() {
13461371
BaseNoGui.onBoardOrPortChange();
13471372

@@ -1435,7 +1460,7 @@ public void rebuildBoardsMenu() throws Exception {
14351460
boardsCustomMenus = new LinkedList<>();
14361461

14371462
// The first custom menu is the "Board" selection submenu
1438-
JMenuboardMenu = new JMenu(tr("Board"));
1463+
boardMenu = new JMenu(tr("Board"));
14391464
boardMenu.putClientProperty("removeOnWindowDeactivation", true);
14401465
MenuScroller.setScrollerFor(boardMenu).setTopFixedCount(1);
14411466

@@ -1568,13 +1593,7 @@ private JRadioButtonMenuItem createBoardMenusAndCustomMenus(
15681593
@SuppressWarnings("serial")
15691594
Action action = new AbstractAction(board.getName()) {
15701595
public void actionPerformed(ActionEvent actionevent) {
1571-
BaseNoGui.selectBoard((TargetBoard) getValue("b"));
1572-
filterVisibilityOfSubsequentBoardMenus(boardsCustomMenus, (TargetBoard) getValue("b"), 1);
1573-
1574-
onBoardOrPortChange();
1575-
rebuildImportMenu(Editor.importMenu);
1576-
rebuildExamplesMenu(Editor.examplesMenu);
1577-
rebuildProgrammerMenu();
1596+
selectTargetBoard((TargetBoard) getValue("b"));
15781597
}
15791598
};
15801599
action.putValue("b", board);

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /