From 33fcb1c4e4e9204b84fbd6a8c8272013d1c68350 Mon Sep 17 00:00:00 2001 From: joelmoniz Date: Tue, 20 May 2014 23:16:06 +0530 Subject: [PATCH] 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 cfe93d750..99146a533 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -895,10 +895,49 @@ public abstract class Editor extends JFrame implements RunnerListener { }); 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);