/// <summary> /// Initializes a new UndoExecuter with the specified references. /// </summary> /// <param name="model">Reference to the model of the petrinet.</param> /// <param name="elementProvider">Reference to the element provider.</param> /// <param name="selectionManager">Reference to the selection manager.</param> /// <param name="undoManager">Reference to the undo manager.</param> /// <param name="elementCreator">Reference to the element creator.</param> /// <param name="elementManager">Reference to the element manager.</param> public UndoExecuter(ModelMain model, ElementProvider elementProvider, SelectionManager selectionManager, UndoManager undoManager, ElementCreator elementCreator, ElementManager elementManager) { _model = model; _elementProvider = elementProvider; _selectionManager = selectionManager; _undoManager = undoManager; _elementCreator = elementCreator; _elementManager = elementManager; }
/// <summary> /// Initalizes the ViewModel. /// </summary> public MainViewModel() { // initialize model _model = new ModelMain(); // module initializations _elementProvider = new ElementProvider(); _selectionManager = new SelectionManager(ElementProvider, Model); _undoManager = new UndoManager(); _elementManager = new ElementManager(ElementProvider, SelectionManager, UndoManager, Model, DrawSize, ArrowheadSize); _elementCreator = new ElementCreator(ElementProvider, SelectionManager, UndoManager, ElementManager, Model, DrawSize, ArrowheadSize); _workspaceManager = new WorkspaceManager(ElementProvider, UndoManager, SelectionManager, ElementCreator, ElementManager, Model); _undoExecuter = new UndoExecuter(Model, ElementProvider, SelectionManager, UndoManager, ElementCreator, ElementManager); UndoManager.UndoTarget = UndoExecuter; // event subscriptions SelectionManager.ReevaluateCommandState += ReevaluateAllCommands; UndoExecuter.ReevaluateCommandState += ReevaluateAllCommands; UndoExecuter.Modified += SetModified; UndoExecuter.ViewSizeChanged += SetViewSize; UndoExecuter.SizeFactorChanged += SetSizeFactor; WorkspaceManager.Modified += SetModified; WorkspaceManager.ReevaluateCommandState += ReevaluateAllCommands; WorkspaceManager.SelectingStateChanged += SetSelecting; ElementManager.Modified += SetModified; ElementManager.ReevaluateCommandState += ReevaluateAllCommands; ElementManager.BlockStateChanged += SetBlockStateChange; ElementManager.ViewSizeChanged += SetViewSize; ElementManager.DrawingStateChanged += SetDrawing; Model.TokensChangedEvent += ElementManager.HandleModelTokensChanged; Model.TransitionStateChangedEvent += ElementManager.HandleModelTransitionStateChanged; // connect command handlers _sizeChangeCommand = new DelegateCommand<int>(HandleSizeChange); _deleteNodesCommand = new DelegateCommand<String>(HandleDeleteNodes, CanDeleteNodes); _selectAllCommand = new DelegateCommand<String>(HandleSelectAll, CanSelectAll); _loadedCommand = new DelegateCommand<Point>(HandleLoaded); _newFileCommand = new DelegateCommand<String>(HandleFileNew); _loadFileCommand = new DelegateCommand<String>(HandleFileLoad); _saveFileCommand = new DelegateCommand<String>(HandleFileSave); }
/// <summary> /// Sets up a new parser for the provided file. /// </summary> /// <param name="filename"> The filename of the file to parse. </param> public PNMLParser(String filename, ElementCreator elementCreator) { _elementCreator = elementCreator; _filename = filename; _ids = new List<String>(); }
/// <summary> /// Initializes a new WorkspaceManager with the specified references. /// </summary> /// <param name="elementProvider">Reference to the element provider.</param> /// <param name="undoManager">Reference to the undo manager.</param> /// <param name="selectionManager">Reference to the selection manager.</param> /// <param name="elementCreator">Reference to the element creator.</param> /// <param name="elementManager">Reference to the element manager.</param> /// <param name="model">Reference to the model of the petrinet.</param> public WorkspaceManager(ElementProvider elementProvider, UndoManager undoManager, SelectionManager selectionManager, ElementCreator elementCreator, ElementManager elementManager, ModelMain model) { _elementProvider = elementProvider; _undoManager = undoManager; _selectionManager = selectionManager; _elementCreator = elementCreator; _elementManager = elementManager; _model = model; _rectSelectedNodes = new List<String>(); _drawModeChangeCommand = new DelegateCommand<DrawMode>(HandleDrawModeChange); _mouseLeftButtonDownCommand = new DelegateCommand<Point, bool>(HandleMouseLeftButtonDown); _selectRectMouseMoveCommand = new DelegateCommand<Point>(HandleSelectRectMouseMove); _mouseLeftButtonUpCommand = new DelegateCommand<Point>(HandleMouseLeftButtonUp); }