From 879911fcda0c79a4d7f0ea4f53dedcfecf3852e9 Mon Sep 17 00:00:00 2001 From: joelmoniz Date: Wed, 21 May 2014 12:26:26 +0530 Subject: [PATCH] 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 99146a533..f993e7717 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -895,49 +895,58 @@ 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); - } - } + 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);