X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fstates%2FSelectionState.java;h=4a02db4c7af4fd0e4ba4383b7f061aeb50a4daba;hb=148a58630b38b30d4d24a21e3f55c357f5b4d0bc;hp=446635ee9d1f2fd26fef91ad97a7db47f7707a37;hpb=47ea68ed5c444dd14864412639f6a6fd60ab8a0f;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/SelectionState.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/SelectionState.java index 446635ee..4a02db4c 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/SelectionState.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/SelectionState.java @@ -7,14 +7,15 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.zoomablecanvas.ZoomableCanvas.ZoomedRenderer; import net.mograsim.logic.model.editor.Editor; import net.mograsim.logic.model.editor.Selection; -import net.mograsim.logic.model.editor.DialogManager.InteractiveDialog; import net.mograsim.logic.model.editor.handles.Handle; import net.mograsim.logic.model.editor.handles.PinHandle; import net.mograsim.logic.model.editor.handles.WireHandle; import net.mograsim.logic.model.editor.handles.Handle.HandleClickInfo; import net.mograsim.logic.model.editor.handles.WireHandle.WireHandleClickInfo; +import net.mograsim.logic.model.editor.ui.DialogManager; import net.mograsim.logic.model.model.wires.MovablePin; import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.PinUsage; public class SelectionState extends EditorState { @@ -36,7 +37,7 @@ public class SelectionState extends EditorState @Override public void add() { - Point curserPos = editor.getWorldMousePosition(); + Point curserPos = editor.userInput.getWorldMousePosition(); editor.addComponent(curserPos.x, curserPos.y); } @@ -55,7 +56,7 @@ public class SelectionState extends EditorState @Override public void paste() { - Point curserPos = editor.getWorldMousePosition(); + Point curserPos = editor.userInput.getWorldMousePosition(); editor.paste(curserPos.x, curserPos.y); } @@ -98,19 +99,23 @@ public class SelectionState extends EditorState editor.getSelection().clear(); if ((stateMask & SWT.ALT) == SWT.ALT) { - InteractiveDialog pinAdd = new InteractiveDialog("Add Pin...", "Add", "Cancel", "Name", "Logic Width"); - pinAdd.open(); - if (pinAdd.getState().equals(InteractiveDialog.InteractiveDialogState.ACCEPTED)) + String[] result = DialogManager.openMultiTextDialog("Add Pin...", "Add", "Cancel", "Name", "Logic Width", "Usage"); + if (result != null) { try { - Pin p = editor.toBeEdited.addSubmodelInterface(new MovablePin(editor.toBeEdited, pinAdd.getText(), - Integer.parseInt(pinAdd.getText(1)), clicked.x, clicked.y)); + Pin p = editor.toBeEdited.addSubmodelInterface(new MovablePin(editor.toBeEdited, result[0], Integer.parseInt(result[1]), + PinUsage.valueOf(result[2]), clicked.x, clicked.y)); editor.handleManager.getInterfacePinHandle(p).reqMove(clicked.x, clicked.y); - } catch (NumberFormatException e) + } + catch (NumberFormatException e) { editor.dialogManager.openWarningDialog("Failed to create Pin!", "Bit width must be a number!"); } + catch (IllegalArgumentException e) + { + editor.dialogManager.openWarningDialog("Failed to create Pin!", "Usage must be one of INPUT, OUTPUT, TRISTATE!"); + } } } }