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;
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
{
innerCompData.horizontalAlignment = SWT.FILL;
innerCompData.verticalAlignment = SWT.FILL;
innerComp.setLayoutData(innerCompData);
-
+
GridLayout innerLayout = new GridLayout();
innerComp.setLayout(innerLayout);
innerLayout.numColumns = 2;
logicCanvas = new EditorCanvas(innerComp, SWT.TRAIL, editor);
logicCanvas.setLayoutData(d);
-
+
d = new GridData();
d.grabExcessVerticalSpace = true;
d.verticalAlignment = SWT.FILL;
addList = new List(innerComp, SWT.V_SCROLL);
addList.setLayoutData(d);
refreshAddList();
-
+
setupBottomToolBar(innerComp);
ZoomableCanvasUserInput userInput = new ZoomableCanvasUserInput(logicCanvas);
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;
}
public void refreshAddList()
{
- addList.setItems(IndirectGUIComponentCreator.getStandardComponentIDs().toArray(String[]::new));
+ addList.setItems(IndirectModelComponentCreator.getStandardComponentIDs().keySet().stream().sorted().toArray(String[]::new));
addList.select(0);
}
if (!display.readAndDispatch())
display.sleep();
}
-
-}
+}
\ No newline at end of file