24
24
25
25
import cc .arduino .packages .MonitorFactory ;
26
26
27
+ import cc .arduino .view .StubMenuListener ;
27
28
import com .jcraft .jsch .JSchException ;
28
29
import jssc .SerialPortException ;
29
30
import processing .app .debug .*;
@@ -92,7 +93,6 @@ public class Editor extends JFrame implements RunnerListener {
92
93
93
94
// file, sketch, and tools menus for re-inserting items
94
95
JMenu fileMenu ;
95
- JMenu sketchMenu ;
96
96
JMenu toolsMenu ;
97
97
98
98
int numTools = 0 ;
@@ -186,7 +186,6 @@ public void windowActivated(WindowEvent e) {
186
186
// re-add the sub-menus that are shared by all windows
187
187
fileMenu .insert (sketchbookMenu , 2 );
188
188
fileMenu .insert (examplesMenu , 3 );
189
- buildSketchMenu ();
190
189
int offset = 0 ;
191
190
for (JMenu menu : base .getBoardsCustomMenus ()) {
192
191
toolsMenu .insert (menu , numTools + offset );
@@ -200,7 +199,6 @@ public void windowActivated(WindowEvent e) {
200
199
public void windowDeactivated (WindowEvent e ) {
201
200
fileMenu .remove (sketchbookMenu );
202
201
fileMenu .remove (examplesMenu );
203
- buildSketchMenu ();
204
202
List <Component > toolsMenuItemsToRemove = new LinkedList <Component >();
205
203
for (Component menuItem : toolsMenu .getMenuComponents ()) {
206
204
if (menuItem instanceof JComponent ) {
@@ -492,7 +490,20 @@ protected void buildMenuBar() throws Exception {
492
490
JMenuBar menubar = new JMenuBar ();
493
491
menubar .add (buildFileMenu ());
494
492
menubar .add (buildEditMenu ());
495
- menubar .add (buildSketchMenu ());
493
+
494
+ final JMenu sketchMenu = new JMenu (_ ("Sketch" ));
495
+ sketchMenu .addMenuListener (new StubMenuListener () {
496
+
497
+ @ Override
498
+ public void menuSelected (MenuEvent e ) {
499
+ buildSketchMenu (sketchMenu );
500
+ sketchMenu .revalidate ();
501
+ validate ();
502
+ }
503
+ });
504
+ buildSketchMenu (sketchMenu );
505
+ menubar .add (sketchMenu );
506
+
496
507
menubar .add (buildToolsMenu ());
497
508
menubar .add (buildHelpMenu ());
498
509
setJMenuBar (menubar );
@@ -609,12 +620,8 @@ public void actionPerformed(ActionEvent e) {
609
620
}
610
621
611
622
612
- protected JMenu buildSketchMenu () {
613
- if (sketchMenu == null ) {
614
- sketchMenu = new JMenu (_ ("Sketch" ));
615
- } else {
616
- sketchMenu .removeAll ();
617
- }
623
+ protected void buildSketchMenu (JMenu sketchMenu ) {
624
+ sketchMenu .removeAll ();
618
625
619
626
JMenuItem item = newJMenuItem (_ ("Verify / Compile" ), 'R' );
620
627
item .addActionListener (new ActionListener () {
@@ -623,7 +630,7 @@ public void actionPerformed(ActionEvent e) {
623
630
}
624
631
});
625
632
sketchMenu .add (item );
626
-
633
+
627
634
item = newJMenuItem (_ ("Upload" ), 'U' );
628
635
item .addActionListener (new ActionListener () {
629
636
public void actionPerformed (ActionEvent e ) {
@@ -682,8 +689,6 @@ public void actionPerformed(ActionEvent e) {
682
689
}
683
690
});
684
691
sketchMenu .add (item );
685
-
686
- return sketchMenu ;
687
692
}
688
693
689
694
@@ -733,9 +738,7 @@ public void actionPerformed(ActionEvent e) {
733
738
});
734
739
toolsMenu .add (item );
735
740
736
- toolsMenu .addMenuListener (new MenuListener () {
737
- public void menuCanceled (MenuEvent e ) {}
738
- public void menuDeselected (MenuEvent e ) {}
741
+ toolsMenu .addMenuListener (new StubMenuListener () {
739
742
public void menuSelected (MenuEvent e ) {
740
743
//System.out.println("Tools menu selected.");
741
744
populatePortMenu ();
@@ -2025,7 +2028,7 @@ public void handleRun(final boolean verbose, Runnable verboseHandler, Runnable n
2025
2028
// placed on the event thread and causes a hang--bad idea all around.
2026
2029
new Thread (verbose ? verboseHandler : nonVerboseHandler ).start ();
2027
2030
}
2028
-
2031
+
2029
2032
class BuildHandler implements Runnable {
2030
2033
2031
2034
private final boolean verbose ;
0 commit comments