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 02b857e

Browse files
committed
Refactor boardMenu creation
This commit is part of #7120 by @sandeepmistry
1 parent e659825 commit 02b857e

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

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

Lines changed: 26 additions & 7 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)
@@ -1328,6 +1330,28 @@ public void rebuildExamplesMenu(JMenu menu) {
13281330
private static String priorPlatformFolder;
13291331
private static boolean newLibraryImported;
13301332

1333+
public void selectTargetBoard(TargetBoard targetBoard) {
1334+
for (int i = 0; i < boardMenu.getItemCount(); i++) {
1335+
JMenuItem menuItem = boardMenu.getItem(i);
1336+
if (!(menuItem instanceof JRadioButtonMenuItem)) {
1337+
continue;
1338+
}
1339+
1340+
JRadioButtonMenuItem radioButtonMenuItem = ((JRadioButtonMenuItem) menuItem);
1341+
if (targetBoard.getName().equals(radioButtonMenuItem.getText())) {
1342+
radioButtonMenuItem.setSelected(true);
1343+
break;
1344+
}
1345+
}
1346+
1347+
BaseNoGui.selectBoard(targetBoard);
1348+
filterVisibilityOfSubsequentBoardMenus(boardsCustomMenus, targetBoard, 1);
1349+
1350+
onBoardOrPortChange();
1351+
rebuildImportMenu(Editor.importMenu);
1352+
rebuildExamplesMenu(Editor.examplesMenu);
1353+
}
1354+
13311355
public void onBoardOrPortChange() {
13321356
BaseNoGui.onBoardOrPortChange();
13331357

@@ -1421,7 +1445,7 @@ public void rebuildBoardsMenu() throws Exception {
14211445
boardsCustomMenus = new LinkedList<>();
14221446

14231447
// The first custom menu is the "Board" selection submenu
1424-
JMenuboardMenu = new JMenu(tr("Board"));
1448+
boardMenu = new JMenu(tr("Board"));
14251449
boardMenu.putClientProperty("removeOnWindowDeactivation", true);
14261450
MenuScroller.setScrollerFor(boardMenu).setTopFixedCount(1);
14271451

@@ -1530,12 +1554,7 @@ private JRadioButtonMenuItem createBoardMenusAndCustomMenus(
15301554
@SuppressWarnings("serial")
15311555
Action action = new AbstractAction(board.getName()) {
15321556
public void actionPerformed(ActionEvent actionevent) {
1533-
BaseNoGui.selectBoard((TargetBoard) getValue("b"));
1534-
filterVisibilityOfSubsequentBoardMenus(boardsCustomMenus, (TargetBoard) getValue("b"), 1);
1535-
1536-
onBoardOrPortChange();
1537-
rebuildImportMenu(Editor.importMenu);
1538-
rebuildExamplesMenu(Editor.examplesMenu);
1557+
selectTargetBoard((TargetBoard) getValue("b"));
15391558
}
15401559
};
15411560
action.putValue("b", board);

0 commit comments

Comments
(0)

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