Skip to content

Commit 529e2ed

Browse files
committed
Merge branch 'ide-1.5.x' into ide-1.5.x-java7
2 parents 7ea0575 + f4a6b62 commit 529e2ed

File tree

186 files changed

+31505
-11691
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+31505
-11691
lines changed

.gitignore

+6-3
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ hardware/arduino/bootloaders/caterina_LUFA/Caterina.eep
1515
hardware/arduino/bootloaders/caterina_LUFA/.dep/
1616
build/libastylej-*.zip
1717
build/windows/work/
18-
build/windows/jre.zip
18+
build/windows/*.zip
19+
build/windows/*.tgz
1920
build/windows/libastylej*
2021
build/windows/arduino-*.zip
21-
build/windows/dist/gcc-*.tar.gz
22+
build/windows/dist/*.tar.gz
23+
build/windows/dist/*.tar.bz2
2224
build/windows/launch4j-*
2325
build/windows/launcher/launch4j
2426
build/windows/WinAVR-*.zip
2527
build/macosx/arduino-*.zip
26-
build/macosx/dist/gcc-*.tar.gz
28+
build/macosx/dist/*.tar.gz
29+
build/macosx/dist/*.tar.bz2
2730
build/macosx/libastylej*
2831
build/macosx/appbundler*.jar
2932
build/linux/work/

app/src/processing/app/AbstractMonitor.java

+63-11
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,53 @@
11
package processing.app;
22

3-
import processing.app.debug.MessageConsumer;
4-
import processing.app.legacy.PApplet;
3+
import static processing.app.I18n._;
54

6-
import javax.swing.*;
7-
import javax.swing.border.EmptyBorder;
8-
import javax.swing.text.DefaultCaret;
9-
import java.awt.*;
5+
import java.awt.BorderLayout;
6+
import java.awt.Dimension;
7+
import java.awt.Font;
8+
import java.awt.Rectangle;
9+
import java.awt.Toolkit;
1010
import java.awt.event.ActionEvent;
1111
import java.awt.event.ActionListener;
1212
import java.awt.event.WindowAdapter;
1313
import java.awt.event.WindowEvent;
1414

15-
import static processing.app.I18n._;
15+
import javax.swing.AbstractAction;
16+
import javax.swing.Box;
17+
import javax.swing.BoxLayout;
18+
import javax.swing.JButton;
19+
import javax.swing.JCheckBox;
20+
import javax.swing.JComboBox;
21+
import javax.swing.JComponent;
22+
import javax.swing.JFrame;
23+
import javax.swing.JLabel;
24+
import javax.swing.JPanel;
25+
import javax.swing.JScrollPane;
26+
import javax.swing.JTextField;
27+
import javax.swing.KeyStroke;
28+
import javax.swing.SwingUtilities;
29+
import javax.swing.Timer;
30+
import javax.swing.border.EmptyBorder;
31+
import javax.swing.text.DefaultCaret;
32+
33+
import processing.app.debug.TextAreaFIFO;
34+
import processing.app.legacy.PApplet;
1635

1736
@SuppressWarnings("serial")
18-
public abstract class AbstractMonitor extends JFrame implements MessageConsumer {
37+
public abstract class AbstractMonitor extends JFrame implements ActionListener {
1938

2039
protected final JLabel noLineEndingAlert;
21-
protected JTextArea textArea;
40+
protected TextAreaFIFO textArea;
2241
protected JScrollPane scrollPane;
2342
protected JTextField textField;
2443
protected JButton sendButton;
2544
protected JCheckBox autoscrollBox;
2645
protected JComboBox lineEndings;
2746
protected JComboBox serialRates;
2847

48+
private Timer updateTimer;
49+
private StringBuffer updateBuffer;
50+
2951
public AbstractMonitor(String title) {
3052
super(title);
3153

@@ -59,7 +81,9 @@ public void actionPerformed(ActionEvent event) {
5981
Font editorFont = Preferences.getFont("editor.font");
6082
Font font = new Font(consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize());
6183

62-
textArea = new JTextArea(16, 40);
84+
textArea = new TextAreaFIFO(8000000);
85+
textArea.setRows(16);
86+
textArea.setColumns(40);
6387
textArea.setEditable(false);
6488
textArea.setFont(font);
6589

@@ -111,7 +135,7 @@ public void actionPerformed(ActionEvent event) {
111135

112136
String[] serialRateStrings = {
113137
"300", "1200", "2400", "4800", "9600",
114-
"19200", "57600", "115200"
138+
"19200", "38400", "57600", "115200"
115139
};
116140

117141
serialRates = new JComboBox();
@@ -149,6 +173,10 @@ public void actionPerformed(ActionEvent event) {
149173
}
150174
}
151175
}
176+
177+
updateBuffer = new StringBuffer(1048576);
178+
updateTimer = new Timer(33, this); // redraw serial monitor at 30 Hz
179+
updateTimer.start();
152180
}
153181

154182
public void onSerialRateChange(ActionListener listener) {
@@ -199,4 +227,28 @@ public String getAuthorizationKey() {
199227
public abstract void open() throws Exception;
200228

201229
public abstract void close() throws Exception;
230+
231+
public synchronized void addToUpdateBuffer(char buff[], int n) {
232+
updateBuffer.append(buff, 0, n);
233+
}
234+
235+
private synchronized String consumeUpdateBuffer() {
236+
String s = updateBuffer.toString();
237+
updateBuffer.setLength(0);
238+
return s;
239+
}
240+
241+
public void actionPerformed(ActionEvent e) {
242+
final String s = consumeUpdateBuffer();
243+
if (s.length() > 0) {
244+
//System.out.println("gui append " + s.length());
245+
if (autoscrollBox.isSelected()) {
246+
textArea.appendTrim(s);
247+
textArea.setCaretPosition(textArea.getDocument().getLength());
248+
} else {
249+
textArea.appendNoTrim(s);
250+
}
251+
}
252+
}
253+
202254
}

app/src/processing/app/Base.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,8 @@ public LibraryList getUserLibs() {
988988
}
989989

990990
public void rebuildImportMenu(JMenu importMenu) {
991+
if (importMenu == null)
992+
return;
991993
importMenu.removeAll();
992994

993995
JMenuItem addLibraryMenuItem = new JMenuItem(_("Add Library..."));
@@ -1035,6 +1037,8 @@ public void actionPerformed(ActionEvent e) {
10351037
}
10361038

10371039
public void rebuildExamplesMenu(JMenu menu) {
1040+
if (menu == null)
1041+
return;
10381042
try {
10391043
menu.removeAll();
10401044

@@ -1077,6 +1081,10 @@ public void onBoardOrPortChange() {
10771081
}
10781082

10791083
public void rebuildBoardsMenu(JMenu toolsMenu, Editor editor) throws Exception {
1084+
// If there are no platforms installed skip menu creation
1085+
if (BaseNoGui.packages.size() == 0)
1086+
return;
1087+
10801088
JMenu boardsMenu = getBoardCustomMenu();
10811089

10821090
boolean first = true;
@@ -1698,11 +1706,6 @@ static public PreferencesMap getBoardPreferences() {
16981706
return BaseNoGui.getBoardPreferences();
16991707
}
17001708

1701-
public static TargetBoard getTargetBoard() {
1702-
String boardId = Preferences.get("board");
1703-
return getTargetPlatform().getBoard(boardId);
1704-
}
1705-
17061709
static public File getPortableFolder() {
17071710
return BaseNoGui.getPortableFolder();
17081711
}

0 commit comments

Comments
 (0)