public ScopeJoinManager(FlowAreaControl flowAreaControl, Command.CommandManager commandManager, MoveManager moveManager) { this.flowAreaControl = flowAreaControl; this.commandManager = commandManager; this.moveManager = moveManager; commandSet = new CommandSet(); moveManager.ControlPressed += moveManager_ControlPressed; moveManager.MoveEnd += moveManager_MoveEnd; }
private void Dejoin(MoveManager moveManager) { foreach (PositionableControl control in moveManager.Controls) { var scopeChild = control.CurrentPositionable as ScopeChild; if (scopeChild == null || scopeChild.Scope == null) { continue; } var scopeControl = flowAreaControl.GetAllScopeControls().FirstOrDefault(c => c.CurrentScope == scopeChild.Scope); var command = new RemoveSelectableFromScopeCommand(flowAreaControl, scopeControl, control); commandSet.AddCommand(command); } }
private void Join(MoveManager moveManager) { var p = flowAreaControl.ToLocal(Mouse.GetPosition(flowAreaControl)); var control = flowAreaControl.GetScopeByPosition(p); if (control == null) { return; } foreach (PositionableControl positionableControl in moveManager.Controls.Where(c => !control.Contains(c))) { var command = new AddSelectableToScopeCommand(flowAreaControl, control, positionableControl); commandSet.AddCommand(command); } }