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=f6e8ccdb3850813362756c01ff01a8f46401a752;hpb=e5ba4628b160a373ed5e7bdcd96ae59b7fbc1faa;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 f6e8ccdb..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 @@ -15,6 +15,7 @@ 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 { @@ -98,19 +99,23 @@ public class SelectionState extends EditorState editor.getSelection().clear(); if ((stateMask & SWT.ALT) == SWT.ALT) { - String[] result = DialogManager.openMultiTextDialog("Add Pin...", "Add", "Cancel", "Name", "Logic Width"); + 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, result[0], Integer.parseInt(result[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) { 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!"); + } } } }