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=baa2eff9b43fadc2a8df411ffc8c4fda2bc584ed;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=2a66e4760a2b6ff25da15b6b4ad7b925563721e8;hpb=a393b0a2a9899707af54c9ee77a01f28ac967bd1;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 2a66e476..baa2eff9 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 @@ -12,9 +12,10 @@ 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.InteractiveDialog; +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 { @@ -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.getSubmodel(), 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!"); + } } } }