コード例 #1
0
 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;
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }