From dd1810a855b3e2bb3d508947aa3d253edfea45ad Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Thu, 11 Oct 2012 13:18:21 +0200 Subject: [PATCH 1/2] submenus in boards menu --- app/src/processing/app/Base.java | 26 +++++++++++++--- app/src/processing/app/Editor.java | 6 +++- hardware/arduino/boards.txt | 48 ++++++++++++++++++++---------- 3 files changed, 59 insertions(+), 21 deletions(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index b755de23692..3f941e0d118 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,10 +1025,27 @@ public void actionPerformed(ActionEvent actionevent) { item.setSelected(true); } group.add(item); - menu.add(item); + if (boardAttributes.containsKey("container")) { + JMenuItem container = findOrCreateBoardsSubmenuContainerIn(menu.getPopupMenu(), boardAttributes.get("container")); + container.add(item); + } else { + menu.add(item); + } } } } + + private JMenuItem findOrCreateBoardsSubmenuContainerIn(JPopupMenu menu, String label) { + for (MenuElement menuElement : menu.getSubElements()) { + JMenuItem item = (JMenuItem) menuElement; + if (label.equals(item.getText())) { + return item; + } + } + JMenu item = new JMenu(label); + menu.add(item); + return item; + } public void rebuildProgrammerMenu(JMenu menu) { 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 From 03b5c2feef27ef13fedc2c714d3f20cd441b9c3a Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Thu, 11 Oct 2012 13:29:29 +0200 Subject: [PATCH 2/2] submenus in boards menu --- app/src/processing/app/Base.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 3f941e0d118..d6df6796ed9 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1026,7 +1026,7 @@ public void actionPerformed(ActionEvent actionevent) { } group.add(item); if (boardAttributes.containsKey("container")) { - JMenuItem container = findOrCreateBoardsSubmenuContainerIn(menu.getPopupMenu(), boardAttributes.get("container")); + JMenuItem container = findOrCreateBoardsSubmenuContainer(menu, boardAttributes.get("container")); container.add(item); } else { menu.add(item); @@ -1035,15 +1035,15 @@ public void actionPerformed(ActionEvent actionevent) { } } - private JMenuItem findOrCreateBoardsSubmenuContainerIn(JPopupMenu menu, String label) { - for (MenuElement menuElement : menu.getSubElements()) { + 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); - menu.add(item); + boardMenu.add(item); return item; } 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