From aa05b50e972327e7045590bd86422eb8f427c8ed Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Mon, 15 Oct 2012 23:22:46 +0200 Subject: [PATCH] missing startup selection if board missed container property --- app/src/processing/app/Base.java | 33 +++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index d6250f5fd..cd2f1a883 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1192,8 +1192,19 @@ public class Base { @Override public void actionPerformed(ActionEvent e) { cpuTypeMenu.setEnabled(false); + Preferences.unset("board_container"); selectBoardAction.actionPerformed(e); } + + @Override + public Object getValue(String key) { + return selectBoardAction.getValue(key); + } + + @Override + public void putValue(String key, Object newValue) { + selectBoardAction.putValue(key, newValue); + } }; JMenuItem item = new JRadioButtonMenuItem(selectBoardWithoutContainerAction); boardsButtonGroup.add(item); @@ -1203,11 +1214,12 @@ public class Base { } } - JMenuItem selectedBoardMenu; - if (selBoardContainer == null) { - selectedBoardMenu = selectFirstEnabledMenuItem(boardsMenu); - } else { - selectedBoardMenu = selectMenuItemByBoardContainer(boardsMenu, selBoardContainer); + JMenuItem selectedBoardMenu = selectMenuItemByBoardContainer(boardsMenu, selBoardContainer); + if (selectedBoardMenu == null) { + selectedBoardMenu = selectMenuItemByBoardPackagePlatform(boardsMenu, selBoard, selPackage, selPlatform); + if (selectedBoardMenu == null) { + selectedBoardMenu = selectFirstEnabledMenuItem(boardsMenu); + } } selectedBoardMenu.doClick(); @@ -1217,6 +1229,9 @@ public class Base { selectedCPUTypeMenu = selectFirstEnabledMenuItem(cpuTypeMenu); } else { selectedCPUTypeMenu = selectMenuItemByBoardPackagePlatform(cpuTypeMenu, selBoard, selPackage, selPlatform); + if (selectedCPUTypeMenu == null) { + selectedCPUTypeMenu = selectFirstEnabledMenuItem(cpuTypeMenu); + } } selectedCPUTypeMenu.doClick(); } @@ -1254,13 +1269,17 @@ public class Base { } private static JMenuItem selectMenuItemByBoardContainer(JMenu menu, String boardContainer) { + if (boardContainer == null) { + return null; + } + for (int i = 0; i < menu.getItemCount(); i++) { JMenuItem item = menu.getItem(i); if (item != null && item.getAction() != null && boardContainer.equals(item.getAction().getValue("board_container"))) { return item; } } - return selectFirstEnabledMenuItem(menu); + return null; } private static JMenuItem selectMenuItemByBoardPackagePlatform(JMenu menu, String selBoard, String selPackage, String selPlatform) { @@ -1271,7 +1290,7 @@ public class Base { return item; } } - return selectFirstEnabledMenuItem(menu); + return null; } private JMenuItem findOrCreateBoardContainerMenu(JMenu boardsMenu, ButtonGroup boardsButtonGroup, String boardContainerName, AbstractAction boardMenuAction) {