1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-29 18:52:13 +01:00

Reordered boards menu

This commit is contained in:
Cristian Maglie 2012-10-09 21:40:11 +02:00
parent b2f1bce2ac
commit 2f8e766588
4 changed files with 50 additions and 4 deletions

View File

@ -1113,7 +1113,10 @@ public class Base {
String selBoard = Preferences.get("board"); String selBoard = Preferences.get("board");
menu.removeAll(); menu.removeAll();
boolean first = true;
ButtonGroup group = new ButtonGroup(); ButtonGroup group = new ButtonGroup();
// Cycle through all packages // Cycle through all packages
for (TargetPackage targetPackage : packages.values()) { for (TargetPackage targetPackage : packages.values()) {
String packageName = targetPackage.getName(); String packageName = targetPackage.getName();
@ -1123,8 +1126,16 @@ public class Base {
String platformName = targetPlatform.getName(); String platformName = targetPlatform.getName();
Map<String, PreferencesMap> boards = targetPlatform.getBoards(); Map<String, PreferencesMap> boards = targetPlatform.getBoards();
// For every platform cycle throug all boards // Add a title for each group of boards
for (String board : boards.keySet()) { if (!first)
menu.add(new JSeparator());
first = false;
JMenuItem separator = new JMenuItem(targetPlatform.getPreferences().get("name"));
separator.setEnabled(false);
menu.add(separator);
// For every platform cycle through all boards
for (String board : targetPlatform.getOrderedBoards()) {
// Setup a menu item for the current board // Setup a menu item for the current board
String boardName = boards.get(board).get("name"); String boardName = boards.get(board).get("name");

View File

@ -24,15 +24,19 @@
package processing.app.debug; package processing.app.debug;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import processing.app.helpers.PreferencesMap; import processing.app.helpers.PreferencesMap;
import processing.core.PApplet;
public class TargetPlatform { public class TargetPlatform {
private String name; private String name;
private File folder; private File folder;
private Map<String, PreferencesMap> boards; private Map<String, PreferencesMap> boards;
private List<String> boardsOrder;
private Map<String, PreferencesMap> programmers; private Map<String, PreferencesMap> programmers;
private PreferencesMap preferences; private PreferencesMap preferences;
@ -50,6 +54,7 @@ public class TargetPlatform {
PreferencesMap boardPreferences = new PreferencesMap(); PreferencesMap boardPreferences = new PreferencesMap();
boardPreferences.load(boardsFile); boardPreferences.load(boardsFile);
boards = boardPreferences.createFirstLevelMap(); boards = boardPreferences.createFirstLevelMap();
boardsOrder = readBoardsOrder(boardsFile);
} }
} catch (Exception e) { } catch (Exception e) {
System.err.println("Error loading boards from boards.txt: " + e); System.err.println("Error loading boards from boards.txt: " + e);
@ -76,6 +81,32 @@ public class TargetPlatform {
} }
} }
/**
* Loads the ordered list of boards as they appears on the boards.txt file
*
* @param boardsFile
* @return
*/
private List<String> readBoardsOrder(File boardsFile) {
String[] strings = PApplet.loadStrings(boardsFile);
List<String> res = new ArrayList<String>();
String latestBoard = "-";
for (String s : strings) {
int dot = s.indexOf('.');
if (dot == -1)
continue;
String board = s.substring(0, dot);
if (board.equals(latestBoard))
continue;
if (!boards.containsKey(board))
continue;
latestBoard = board;
res.add(board);
}
return res;
}
public String getName() { public String getName() {
return name; return name;
} }
@ -87,6 +118,10 @@ public class TargetPlatform {
public Map<String, PreferencesMap> getBoards() { public Map<String, PreferencesMap> getBoards() {
return boards; return boards;
} }
public List<String> getOrderedBoards() {
return boardsOrder;
}
public Map<String, PreferencesMap> getProgrammers() { public Map<String, PreferencesMap> getProgrammers() {
return programmers; return programmers;

View File

@ -2,7 +2,7 @@
# AVR compile variables # AVR compile variables
# --------------------- # ---------------------
name=Arduino name=Arduino AVR Boards
# Default "compiler.path" is correct, change only if you want to overidde the initial value # Default "compiler.path" is correct, change only if you want to overidde the initial value
#compiler.path={ide.path}/tools/avr/bin/.. #compiler.path={ide.path}/tools/avr/bin/..
compiler.c.cmd=avr-gcc compiler.c.cmd=avr-gcc

View File

@ -2,7 +2,7 @@
# SAM3 compile variables # SAM3 compile variables
# --------------------- # ---------------------
name=Atmel SAM3 name=Arduino ARM (32-bits) Boards
compiler.path={runtime.ide.path}/hardware/tools/g++_arm_none_eabi/bin/ compiler.path={runtime.ide.path}/hardware/tools/g++_arm_none_eabi/bin/
#compiler.path=C:/arm-none-eabi-gcc-4_6/bin/ #compiler.path=C:/arm-none-eabi-gcc-4_6/bin/
compiler.c.cmd=arm-none-eabi-gcc compiler.c.cmd=arm-none-eabi-gcc