If only one creator do not do submenu
authorBill Kuker <bkuker@billkuker.com>
Mon, 22 Nov 2010 01:31:55 +0000 (01:31 +0000)
committerBill Kuker <bkuker@billkuker.com>
Mon, 22 Nov 2010 01:31:55 +0000 (01:31 +0000)
gui/com/billkuker/rocketry/motorsim/visual/MultiObjectEditor.java

index fcd7c68b00b37d3bd795ff68597a39d03467128c..9fcabe81ba837409fd1fb44e285bb2077b73d996 100644 (file)
@@ -36,7 +36,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        \r
        private final String noun;\r
        \r
-       private Set<ObjectCreator> creators = new HashSet<ObjectCreator>();\r
+       private List<ObjectCreator> creators = new Vector<ObjectCreator>();\r
        \r
        private final Map<OBJECT, EDITOR> objectToEditor = new HashMap<OBJECT, EDITOR>();\r
        private final Map<EDITOR, OBJECT> editorToObject = new HashMap<EDITOR, OBJECT>();\r
@@ -178,25 +178,41 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        \r
        public final List<JMenuItem> getMenuItems(){\r
                List<JMenuItem> ret = new Vector<JMenuItem>();\r
-               ret.add(new JMenu("New"){\r
-                       private static final long serialVersionUID = 1L;\r
-                       {\r
-                               for (final ObjectCreator c : creators ){\r
-                                       add(new JMenuItem("New " + c.getName()){\r
-                                               private static final long serialVersionUID = 1L;\r
-                                               {\r
-                                                       addActionListener(new ActionListener() {\r
-                                                               @Override\r
-                                                               public void actionPerformed(ActionEvent ae) {\r
-                                                                       log.debug("New");\r
-                                                                       menuNew(c);\r
-                                                               }\r
-                                                       });\r
+               if ( creators.size() == 1 ){\r
+                       final ObjectCreator c = creators.get(0);\r
+                       ret.add(new JMenuItem("New " + c.getName()){\r
+                               private static final long serialVersionUID = 1L;\r
+                               {\r
+                                       addActionListener(new ActionListener() {\r
+                                               @Override\r
+                                               public void actionPerformed(ActionEvent ae) {\r
+                                                       log.debug("New");\r
+                                                       menuNew(c);\r
                                                }\r
                                        });\r
                                }\r
-                       }\r
-               });\r
+                       });\r
+               } else {\r
+                       ret.add(new JMenu("New"){\r
+                               private static final long serialVersionUID = 1L;\r
+                               {\r
+                                       for (final ObjectCreator c : creators ){\r
+                                               add(new JMenuItem("New " + c.getName()){\r
+                                                       private static final long serialVersionUID = 1L;\r
+                                                       {\r
+                                                               addActionListener(new ActionListener() {\r
+                                                                       @Override\r
+                                                                       public void actionPerformed(ActionEvent ae) {\r
+                                                                               log.debug("New");\r
+                                                                               menuNew(c);\r
+                                                                       }\r
+                                                               });\r
+                                                       }\r
+                                               });\r
+                                       }\r
+                               }\r
+                       });\r
+               }\r
                ret.add(new JMenuItem("Open" + noun + "..."){\r
                                private static final long serialVersionUID = 1L;\r
                                {\r