Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.model.editor / src / net / mograsim / logic / model / editor / ui / EditorGUI.java
index 06f9f4b..17e12eb 100644 (file)
@@ -1,5 +1,7 @@
 package net.mograsim.logic.model.editor.ui;
 
+import java.io.IOException;
+
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -22,7 +24,7 @@ import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasOverlay;
 import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasUserInput;
 import net.mograsim.logic.model.editor.Editor;
 import net.mograsim.logic.model.editor.SaveLoadManager;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 
 public class EditorGUI
 {
@@ -50,7 +52,7 @@ public class EditorGUI
                innerCompData.horizontalAlignment = SWT.FILL;
                innerCompData.verticalAlignment = SWT.FILL;
                innerComp.setLayoutData(innerCompData);
-               
+
                GridLayout innerLayout = new GridLayout();
                innerComp.setLayout(innerLayout);
                innerLayout.numColumns = 2;
@@ -63,7 +65,7 @@ public class EditorGUI
 
                logicCanvas = new EditorCanvas(innerComp, SWT.TRAIL, editor);
                logicCanvas.setLayoutData(d);
-               
+
                d = new GridData();
                d.grabExcessVerticalSpace = true;
                d.verticalAlignment = SWT.FILL;
@@ -71,7 +73,7 @@ public class EditorGUI
                addList = new List(innerComp, SWT.V_SCROLL);
                addList.setLayoutData(d);
                refreshAddList();
-               
+
                setupBottomToolBar(innerComp);
 
                ZoomableCanvasUserInput userInput = new ZoomableCanvasUserInput(logicCanvas);
@@ -92,17 +94,26 @@ public class EditorGUI
 
                ToolItem file = new ToolItem(toolBar, SWT.DROP_DOWN);
 
-               //TODO
-//             DropDownEntry newEntry = new DropDownEntry("New", e -> {
-//             });
-               DropDownEntry loadEntry = new DropDownEntry("Load", e -> SaveLoadManager.openLoadDialog());
+               // TODO
+               DropDownEntry newEntry = new DropDownEntry("New", e -> Editor.openNewEditor());
+               DropDownEntry loadEntry = new DropDownEntry("Load", e ->
+               {
+                       try
+                       {
+                               SaveLoadManager.openLoadDialog();
+                       }
+                       catch (IOException e1)
+                       {
+                               editor.dialogManager.openWarningDialog("Failed to load Component!", e1.getMessage());
+                       }
+               });
                DropDownEntry saveEntry = new DropDownEntry("Save", e -> editor.save());
                DropDownEntry saveAsEntry = new DropDownEntry("Save as...", e -> editor.saveAs());
-               
-               DropDownEntry[] entries = new DropDownEntry[] { loadEntry, saveEntry, saveAsEntry};
-               
+
+               DropDownEntry[] entries = new DropDownEntry[] { newEntry, loadEntry, saveEntry, saveAsEntry };
+
                setupDrowpDownMenu(file, entries);
-               
+
                file.setText("File");
                return toolBar;
        }
@@ -199,7 +210,7 @@ public class EditorGUI
 
        public void refreshAddList()
        {
-               addList.setItems(IndirectGUIComponentCreator.getStandardComponentIDs().toArray(String[]::new));
+               addList.setItems(IndirectModelComponentCreator.getStandardComponentIDs().keySet().stream().sorted().toArray(String[]::new));
                addList.select(0);
        }
 
@@ -218,5 +229,4 @@ public class EditorGUI
                        if (!display.readAndDispatch())
                                display.sleep();
        }
-
-}
+}
\ No newline at end of file