X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fstates%2FStateManager.java;fp=plugins%2Fnet.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2Fstates%2FStateManager.java;h=d4b3fc4df56027c04e7db1558beb5b8425cb5ef7;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=0000000000000000000000000000000000000000;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/StateManager.java b/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/StateManager.java new file mode 100644 index 00000000..d4b3fc4d --- /dev/null +++ b/plugins/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/StateManager.java @@ -0,0 +1,78 @@ +package net.mograsim.logic.model.editor.states; + +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; +import net.mograsim.logic.model.editor.Editor; +import net.mograsim.logic.model.editor.handles.Handle.HandleClickInfo; + +public class StateManager +{ + private EditorState state; + + public StateManager(Editor session) + { + state = new SelectionState(session, this); + state.onEntry(); + } + + public EditorState getState() + { + return state; + } + + public void setState(EditorState state) + { + this.state.onExit(); + this.state = state; + state.onEntry(); + } + + public void add() + { + state.add(); + } + + public void delete() + { + state.delete(); + } + + public void copy() + { + state.copy(); + } + + public void paste() + { + state.paste(); + } + + public void duplicate() + { + state.duplicate(); + } + + public void grab() + { + state.grab(); + } + + public void mouseMoved(double x, double y) + { + state.mouseMoved(x, y); + } + + public void select(Point pos, boolean additive) + { + state.select(pos, additive); + } + + public boolean clickedHandle(HandleClickInfo handleClickInfo) + { + return state.clickedHandle(handleClickInfo); + } + + public void boxSelect() + { + state.boxSelect(); + } +}