mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-21 12:29:23 +01:00
Splitting up programmer selection menu and burn bootloader menu item.
This commit is contained in:
parent
3e31777fec
commit
15d07fa036
@ -1017,22 +1017,28 @@ public class Base {
|
||||
}
|
||||
|
||||
|
||||
public void rebuildBurnBootloaderMenu(JMenu menu) {
|
||||
//System.out.println("rebuilding burn bootloader menu");
|
||||
public void rebuildProgrammerMenu(JMenu menu) {
|
||||
//System.out.println("rebuilding programmer menu");
|
||||
menu.removeAll();
|
||||
ButtonGroup group = new ButtonGroup();
|
||||
for (Target target : targetsTable.values()) {
|
||||
for (String programmer : target.getProgrammers().keySet()) {
|
||||
AbstractAction action =
|
||||
new AbstractAction(
|
||||
"w/ " + target.getProgrammers().get(programmer).get("name")) {
|
||||
target.getProgrammers().get(programmer).get("name")) {
|
||||
public void actionPerformed(ActionEvent actionevent) {
|
||||
activeEditor.handleBurnBootloader((String) getValue("target"),
|
||||
(String) getValue("programmer"));
|
||||
Preferences.set("programmer", getValue("target") + ":" +
|
||||
getValue("programmer"));
|
||||
}
|
||||
};
|
||||
action.putValue("target", target.getName());
|
||||
action.putValue("programmer", programmer);
|
||||
JMenuItem item = new JMenuItem(action);
|
||||
JMenuItem item = new JRadioButtonMenuItem(action);
|
||||
if (Preferences.get("programmer").equals(target.getName() + ":" +
|
||||
programmer)) {
|
||||
item.setSelected(true);
|
||||
}
|
||||
group.add(item);
|
||||
menu.add(item);
|
||||
}
|
||||
}
|
||||
|
@ -693,12 +693,20 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
serialMenu = new JMenu("Serial Port");
|
||||
populateSerialMenu();
|
||||
menu.add(serialMenu);
|
||||
|
||||
|
||||
menu.addSeparator();
|
||||
|
||||
JMenu programmerMenu = new JMenu("Programmer");
|
||||
base.rebuildProgrammerMenu(programmerMenu);
|
||||
menu.add(programmerMenu);
|
||||
|
||||
JMenu bootloaderMenu = new JMenu("Burn Bootloader");
|
||||
base.rebuildBurnBootloaderMenu(bootloaderMenu);
|
||||
menu.add(bootloaderMenu);
|
||||
item = new JMenuItem("Burn Bootloader");
|
||||
item.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
handleBurnBootloader();
|
||||
}
|
||||
});
|
||||
menu.add(item);
|
||||
|
||||
menu.addMenuListener(new MenuListener() {
|
||||
public void menuCanceled(MenuEvent e) {}
|
||||
@ -989,8 +997,8 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
//serialMenu.addSeparator();
|
||||
//serialMenu.add(item);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
protected JMenu buildHelpMenu() {
|
||||
// To deal with a Mac OS X 10.5 bug, add an extra space after the name
|
||||
// so that the OS doesn't try to insert its slow help menu.
|
||||
@ -2440,14 +2448,14 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
}
|
||||
|
||||
|
||||
protected void handleBurnBootloader(final String target, final String programmer) {
|
||||
protected void handleBurnBootloader() {
|
||||
console.clear();
|
||||
statusNotice("Burning bootloader to I/O Board (this may take a minute)...");
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
Uploader uploader = new AvrdudeUploader();
|
||||
if (uploader.burnBootloader(target, programmer)) {
|
||||
if (uploader.burnBootloader()) {
|
||||
statusNotice("Done burning bootloader.");
|
||||
} else {
|
||||
statusError("Error while burning bootloader.");
|
||||
|
@ -96,8 +96,14 @@ public class AvrdudeUploader extends Uploader {
|
||||
return avrdude(commandDownloader);
|
||||
}
|
||||
|
||||
public boolean burnBootloader(String targetName, String programmer) throws RunnerException {
|
||||
return burnBootloader(getProgrammerCommands(Base.targetsTable.get(targetName), programmer));
|
||||
public boolean burnBootloader() throws RunnerException {
|
||||
String programmer = Preferences.get("programmer");
|
||||
Target target = Base.getTarget();
|
||||
if (programmer.indexOf(":") != -1) {
|
||||
target = Base.targetsTable.get(programmer.substring(0, programmer.indexOf(":")));
|
||||
programmer = programmer.substring(programmer.indexOf(":") + 1);
|
||||
}
|
||||
return burnBootloader(getProgrammerCommands(target, programmer));
|
||||
}
|
||||
|
||||
private Collection getProgrammerCommands(Target target, String programmer) {
|
||||
|
@ -67,7 +67,7 @@ public abstract class Uploader implements MessageConsumer {
|
||||
public abstract boolean uploadUsingPreferences(String buildPath, String className, boolean verbose)
|
||||
throws RunnerException, SerialException;
|
||||
|
||||
public abstract boolean burnBootloader(String target, String programmer) throws RunnerException;
|
||||
public abstract boolean burnBootloader() throws RunnerException;
|
||||
|
||||
protected void flushSerialBuffer() throws RunnerException, SerialException {
|
||||
// Cleanup the serial buffer
|
||||
|
@ -237,9 +237,11 @@ run.present.exclusive = false
|
||||
run.present.exclusive.macosx = true
|
||||
|
||||
# ARDUINO PREFERENCES
|
||||
board = atmega328
|
||||
board = uno
|
||||
target = arduino
|
||||
|
||||
programmer = arduino:avrispmkii
|
||||
|
||||
upload.using = bootloader
|
||||
|
||||
serial.port=COM1
|
||||
|
Loading…
x
Reference in New Issue
Block a user