diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index b755de23692..d6df6796ed9 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1002,12 +1002,13 @@ public void onBoardOrPortChange() { public void rebuildBoardsMenu(JMenu menu) { //System.out.println("rebuilding boards menu"); - menu.removeAll(); + menu.removeAll(); ButtonGroup group = new ButtonGroup(); for (Target target : targetsTable.values()) { for (String board : target.getBoards().keySet()) { - AbstractAction action = - new AbstractAction(target.getBoards().get(board).get("name")) { + Map boardAttributes = target.getBoards().get(board); + AbstractAction action = + new AbstractAction(boardAttributes.get("name")) { public void actionPerformed(ActionEvent actionevent) { //System.out.println("Switching to " + target + ":" + board); Preferences.set("target", (String) getValue("target")); @@ -1024,9 +1025,26 @@ public void actionPerformed(ActionEvent actionevent) { item.setSelected(true); } group.add(item); - menu.add(item); + if (boardAttributes.containsKey("container")) { + JMenuItem container = findOrCreateBoardsSubmenuContainer(menu, boardAttributes.get("container")); + container.add(item); + } else { + menu.add(item); + } + } + } + } + + private JMenuItem findOrCreateBoardsSubmenuContainer(JMenu boardMenu, String label) { + for (MenuElement menuElement : boardMenu.getPopupMenu().getSubElements()) { + JMenuItem item = (JMenuItem) menuElement; + if (label.equals(item.getText())) { + return item; } } + JMenu item = new JMenu(label); + boardMenu.add(item); + return item; } diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 838ca2dc285..8ef41655e4a 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -2649,7 +2649,11 @@ public void statusEmpty() { protected void onBoardOrPortChange() { Map boardPreferences = Base.getBoardPreferences(); - lineStatus.setBoardName(boardPreferences.get("name")); + String boardName = boardPreferences.get("name"); + if (boardPreferences.containsKey("container")) { + boardName = boardPreferences.get("container") + " w/ " + boardName; + } + lineStatus.setBoardName(boardName); lineStatus.setSerialPort(Preferences.get("serial.port")); lineStatus.repaint(); } diff --git a/hardware/arduino/boards.txt b/hardware/arduino/boards.txt index e5ce6af0c88..69ab7fdfb73 100644 --- a/hardware/arduino/boards.txt +++ b/hardware/arduino/boards.txt @@ -62,7 +62,8 @@ diecimila.build.variant=standard ############################################################## -nano328.name=Arduino Nano w/ ATmega328 +nano328.name=ATmega328 +nano328.container=Arduino Nano nano328.upload.protocol=arduino nano328.upload.maximum_size=30720 @@ -83,7 +84,8 @@ nano328.build.variant=eightanaloginputs ############################################################## -nano.name=Arduino Nano w/ ATmega168 +nano.name=ATmega168 +nano.container=Arduino Nano nano.upload.protocol=arduino nano.upload.maximum_size=14336 @@ -104,7 +106,8 @@ nano.build.variant=eightanaloginputs ############################################################## -mega2560.name=Arduino Mega 2560 or Mega ADK +mega2560.name=Mega 2560 or Mega ADK +mega2560.container=Arduino Mega mega2560.upload.protocol=wiring mega2560.upload.maximum_size=258048 @@ -125,7 +128,8 @@ mega2560.build.variant=mega ############################################################## -mega.name=Arduino Mega (ATmega1280) +mega.name=ATmega1280 +mega.container=Arduino Mega mega.upload.protocol=arduino mega.upload.maximum_size=126976 @@ -167,7 +171,8 @@ leonardo.build.variant=leonardo ############################################################## -mini328.name=Arduino Mini w/ ATmega328 +mini328.name=ATmega328 +mini328.container=Arduino Mini mini328.upload.protocol=arduino mini328.upload.maximum_size=28672 @@ -188,7 +193,8 @@ mini328.build.variant=eightanaloginputs ############################################################## -mini.name=Arduino Mini w/ ATmega168 +mini.name=ATmega168 +mini.container=Arduino Mini mini.upload.protocol=arduino mini.upload.maximum_size=14336 @@ -251,7 +257,8 @@ fio.build.variant=eightanaloginputs ############################################################## -bt328.name=Arduino BT w/ ATmega328 +bt328.name=ATmega328 +bt328.container=Arduino BT bt328.upload.protocol=arduino bt328.upload.maximum_size=28672 @@ -273,7 +280,8 @@ bt328.build.variant=eightanaloginputs ############################################################## -bt.name=Arduino BT w/ ATmega168 +bt.name=ATmega168 +bt.container=Arduino BT bt.upload.protocol=arduino bt.upload.maximum_size=14336 @@ -295,7 +303,8 @@ bt.build.variant=eightanaloginputs ############################################################## -lilypad328.name=LilyPad Arduino w/ ATmega328 +lilypad328.name=ATmega328 +lilypad328.container=LilyPad Arduino lilypad328.upload.protocol=arduino lilypad328.upload.maximum_size=30720 @@ -316,7 +325,8 @@ lilypad328.build.variant=standard ############################################################## -lilypad.name=LilyPad Arduino w/ ATmega168 +lilypad.name=ATmega168 +lilypad.container=LilyPad Arduino lilypad.upload.protocol=arduino lilypad.upload.maximum_size=14336 @@ -337,7 +347,8 @@ lilypad.build.variant=standard ############################################################## -pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328 +pro5v328.name=ATmega328 (5V, 16 MHz) +pro5v328.container=Arduino Pro or Pro Mini pro5v328.upload.protocol=arduino pro5v328.upload.maximum_size=30720 @@ -358,7 +369,8 @@ pro5v328.build.variant=standard ############################################################## -pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168 +pro5v.name=ATmega168 (5V, 16 MHz) +pro5v.container=Arduino Pro or Pro Mini pro5v.upload.protocol=arduino pro5v.upload.maximum_size=14336 @@ -379,7 +391,8 @@ pro5v.build.variant=standard ############################################################## -pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 +pro328.name=ATmega328 (3.3V, 8 MHz) +pro328.container=Arduino Pro or Pro Mini pro328.upload.protocol=arduino pro328.upload.maximum_size=30720 @@ -400,7 +413,8 @@ pro328.build.variant=standard ############################################################## -pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 +pro.name=ATmega168 (3.3V, 8 MHz) +pro.container=Arduino Pro or Pro Mini pro.upload.protocol=arduino pro.upload.maximum_size=14336 @@ -421,7 +435,8 @@ pro.build.variant=standard ############################################################## -atmega168.name=Arduino NG or older w/ ATmega168 +atmega168.name=ATmega168 +atmega168.container=Arduino NG or older atmega168.upload.protocol=arduino atmega168.upload.maximum_size=14336 @@ -442,7 +457,8 @@ atmega168.build.variant=standard ############################################################## -atmega8.name=Arduino NG or older w/ ATmega8 +atmega8.name=ATmega8 +atmega8.container=Arduino NG or older atmega8.upload.protocol=arduino atmega8.upload.maximum_size=7168 pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy