From 9721808c7e6cc17900c7f5ae92398c720e9ccc6f Mon Sep 17 00:00:00 2001 From: joelmoniz Date: Tue, 20 May 2014 23:16:06 +0530 Subject: [PATCH 1/3] Open sketches display in Sketch menu Consists of 3 commits all squashed up. Used Menu Listener in the end over polling. --- app/src/processing/app/Editor.java | 41 +++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index cfe93d750c..99146a533a 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -895,10 +895,49 @@ public void actionPerformed(ActionEvent e) { }); sketchMenu.add(item); + sketchMenu.add(item); + + sketchMenu.addSeparator(); + + sketchMenu.addMenuListener(new MenuListener() { + + java.util.List menuList = new java.util.ArrayList(); + + @Override + public void menuSelected(MenuEvent arg0) { + java.util.List ed = base.getEditors(); + JMenuItem item; + for (Editor editor2 : ed) + { + item = new JMenuItem(editor2.getSketch().getName()); + item.setText(editor2.getSketch().getName() + " (" + + editor2.getMode().getTitle() + ")"); + sketchMenu.add(item); + menuList.add(item); + } + } + + @Override + public void menuDeselected(MenuEvent arg0) { + for (JMenuItem it : menuList) + sketchMenu.remove(it); + menuList.clear(); + } + + @Override + public void menuCanceled(MenuEvent arg0) { + menuDeselected(arg0); + } + }); + return sketchMenu; } - + //DONE: Handle closing of sketches + //DONE: Destroy uneccesary background threads when a sketch has been closed + //TODO: Handle changing mode of sketches + //TODO: Make current sketch at the top of the list / tick mark it + //TODO: Bring sketch to foreground when it is clicked (duh :p) abstract public void handleImportLibrary(String jarPath); From b579398dcc96a750114da21129ae40963047be69 Mon Sep 17 00:00:00 2001 From: joelmoniz Date: Wed, 21 May 2014 12:26:26 +0530 Subject: [PATCH 2/3] Added a submenu; sketch now comes to front. Consists of 2 commits all squashed up. --- app/src/processing/app/Editor.java | 75 +++++++++++++++++------------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 99146a533a..f993e77179 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -895,49 +895,58 @@ public void actionPerformed(ActionEvent e) { }); sketchMenu.add(item); - sketchMenu.add(item); - sketchMenu.addSeparator(); - + sketchMenu.addMenuListener(new MenuListener() { - java.util.List menuList = new java.util.ArrayList(); - - @Override - public void menuSelected(MenuEvent arg0) { - java.util.List ed = base.getEditors(); - JMenuItem item; - for (Editor editor2 : ed) - { - item = new JMenuItem(editor2.getSketch().getName()); - item.setText(editor2.getSketch().getName() + " (" - + editor2.getMode().getTitle() + ")"); - sketchMenu.add(item); - menuList.add(item); - } - } + java.util.List menuList = new java.util.ArrayList(); - @Override - public void menuDeselected(MenuEvent arg0) { - for (JMenuItem it : menuList) - sketchMenu.remove(it); - menuList.clear(); - } + JMenu openSketchesSubmenu = new JMenu("Open Sketches"); - @Override - public void menuCanceled(MenuEvent arg0) { - menuDeselected(arg0); - } - }); + @Override + public void menuSelected(MenuEvent arg0) { + java.util.List ed = base.getEditors(); + JMenuItem item; + for (final Editor editor2 : ed) { + item = new JMenuItem(editor2.getSketch().getName()); + item.setText(editor2.getSketch().getName() + " (" + + editor2.getMode().getTitle() + ")"); + item.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + editor2.setState(Frame.NORMAL); + editor2.setVisible(true); + editor2.toFront(); + } + }); + + openSketchesSubmenu.add(item); + menuList.add(item); + } + sketchMenu.add(openSketchesSubmenu); + } + + @Override + public void menuDeselected(MenuEvent arg0) { + for (JMenuItem it : menuList) + openSketchesSubmenu.remove(it); + menuList.clear(); + sketchMenu.remove(openSketchesSubmenu); + } + + @Override + public void menuCanceled(MenuEvent arg0) { + menuDeselected(arg0); + } + }); + return sketchMenu; } - //DONE: Handle closing of sketches - //DONE: Destroy uneccesary background threads when a sketch has been closed - //TODO: Handle changing mode of sketches + //TODO: Make current sketch at the top of the list / tick mark it - //TODO: Bring sketch to foreground when it is clicked (duh :p) abstract public void handleImportLibrary(String jarPath); From 1dae5440849408c7f25ab81863e94848edfd5d09 Mon Sep 17 00:00:00 2001 From: joelmoniz Date: Thu, 29 May 2014 00:25:14 +0530 Subject: [PATCH 3/3] Open Sketches Sub-Menu implementation complete Current sketch is now indicated with a check box --- app/src/processing/app/Editor.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index f993e77179..6ea9f309df 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -897,7 +897,11 @@ public void actionPerformed(ActionEvent e) { sketchMenu.addSeparator(); - sketchMenu.addMenuListener(new MenuListener() { + final Editor editorName = this; + + sketchMenu.addMenuListener(new MenuListener() { // Menu Listener so that + // the Open Sketches sub-menu is populated + // only when the Sketch menu is opened java.util.List menuList = new java.util.ArrayList(); @@ -908,11 +912,19 @@ public void menuSelected(MenuEvent arg0) { java.util.List ed = base.getEditors(); JMenuItem item; for (final Editor editor2 : ed) { - item = new JMenuItem(editor2.getSketch().getName()); + if (editorName.getSketch().getName().trim().contains(editor2.getSketch().getName().trim())) + { + item = new JCheckBoxMenuItem(editor2.getSketch().getName()); + item.setSelected(true); + } + else + { + item = new JMenuItem(editor2.getSketch().getName()); + } item.setText(editor2.getSketch().getName() + " (" + editor2.getMode().getTitle() + ")"); - - item.addActionListener(new ActionListener() { + + item.addActionListener(new ActionListener() { // Action listener to bring the appropriate sketch in front @Override public void actionPerformed(ActionEvent e) { @@ -921,7 +933,6 @@ public void actionPerformed(ActionEvent e) { editor2.toFront(); } }); - openSketchesSubmenu.add(item); menuList.add(item); } @@ -946,7 +957,6 @@ public void menuCanceled(MenuEvent arg0) { } - //TODO: Make current sketch at the top of the list / tick mark it abstract public void handleImportLibrary(String jarPath);