Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0094145

Browse files
committed
Merge pull request #2628 from ffissore/split-ports-by-category
Split ports in menu, grouping boards by their protocol
2 parents 834593d + fea3848 commit 0094145

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

‎app/src/processing/app/Editor.java‎

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@
6060
@SuppressWarnings("serial")
6161
public class Editor extends JFrame implements RunnerListener {
6262

63+
private final static List<String> BOARD_PROTOCOLS_ORDER = Arrays.asList(new String[]{"serial", "network"});
64+
private final static List<String> BOARD_PROTOCOLS_ORDER_TRANSLATIONS = Arrays.asList(new String[]{_("Serial ports"), _("Network ports")});
65+
6366
Base base;
6467

6568
// otherwise, if the window is resized with the message label
@@ -441,7 +444,7 @@ protected void applyPreferences() {
441444
textarea.setEditable(!external);
442445
saveMenuItem.setEnabled(!external);
443446
saveAsMenuItem.setEnabled(!external);
444-
447+
445448
textarea.setDisplayLineNumbers(Preferences.getBoolean("editor.linenumbers"));
446449

447450
TextAreaPainter painter = textarea.getPainter();
@@ -996,7 +999,30 @@ protected void populatePortMenu() {
996999
String selectedPort = Preferences.get("serial.port");
9971000

9981001
List<BoardPort> ports = Base.getDiscoveryManager().discovery();
1002+
1003+
Collections.sort(ports, new Comparator<BoardPort>() {
1004+
@Override
1005+
public int compare(BoardPort o1, BoardPort o2) {
1006+
return BOARD_PROTOCOLS_ORDER.indexOf(o1.getProtocol()) - BOARD_PROTOCOLS_ORDER.indexOf(o2.getProtocol());
1007+
}
1008+
});
1009+
1010+
String lastProtocol = null;
1011+
String lastProtocolTranslated;
9991012
for (BoardPort port : ports) {
1013+
if (lastProtocol == null || !port.getProtocol().equals(lastProtocol)) {
1014+
if (lastProtocol != null) {
1015+
serialMenu.addSeparator();
1016+
}
1017+
lastProtocol = port.getProtocol();
1018+
1019+
if (BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol()) != -1) {
1020+
lastProtocolTranslated = BOARD_PROTOCOLS_ORDER_TRANSLATIONS.get(BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol()));
1021+
} else {
1022+
lastProtocolTranslated = port.getProtocol();
1023+
}
1024+
serialMenu.add(new JMenuItem(_(lastProtocolTranslated)));
1025+
}
10001026
String address = port.getAddress();
10011027
String label = port.getLabel();
10021028

@@ -1646,7 +1672,7 @@ protected void setCode(SketchCodeDocument codeDoc) {
16461672
if (document == null) { // this document not yet inited
16471673
document = new SyntaxDocument();
16481674
codeDoc.setDocument(document);
1649-
1675+
16501676
// turn on syntax highlighting
16511677
document.setTokenMarker(new PdeKeywords());
16521678

@@ -1870,7 +1896,7 @@ protected String getCurrentKeyword() {
18701896

18711897
} catch (BadLocationException bl) {
18721898
bl.printStackTrace();
1873-
}
1899+
}
18741900
return text;
18751901
}
18761902

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /