public void AddBoard() { var ret = new BoardItemModel(Boards); Boards.Add(ret); Selection = ret; }
private void BoardMouseDown(object sender, MouseButtonEventArgs e) { DragItem = sender as Canvas; BoardItemModel board = DragItem.DataContext as BoardItemModel; ViewModelLocator.PreviewTabViewModel.Selection = board; mouseDownOffset = e.GetPosition(DragItem); MouseHitType = SetHitType(new Rect(board.XPos, board.YPos, board.Width, board.Height), mouseDownOffset); if (MouseHitType == HitType.None) { return; } SetMouseCursor(); mouseDown = true; boardView.CaptureMouse(); }
private void BoardViewMove(object sender, MouseEventArgs e) { if (!mouseDown) { Canvas itemCanvas = (sender as Canvas).Children[0] as Canvas; BoardItemModel board = itemCanvas.DataContext as BoardItemModel; MouseHitType = SetHitType(new Rect(board.XPos, board.YPos, board.Width, board.Height), e.GetPosition(itemCanvas)); SetMouseCursor(); return; } if (DragItem.DataContext is BoardItemModel) { base.OnMouseMove(e); e.Handled = true; var vm = DragItem.DataContext as BoardItemModel; Rect newrect = RectTransform(new Rect(vm.XPos, vm.YPos, vm.Width, vm.Height), e.GetPosition(boardView)); vm.XPos = Convert.ToInt32(newrect.X); vm.YPos = Convert.ToInt32(newrect.Y); vm.Width = Convert.ToInt32(newrect.Width); vm.Height = Convert.ToInt32(newrect.Height); vm.RefreshValues(); } }
public PreviewTabViewModel() { var _game = ViewModelLocator.GameLoader.Game; if (_game.GlobalPlayer == null) { _game.GlobalPlayer = new GlobalPlayer() { Counters = new List <Counter>(), Groups = new List <Group>() }; } Table = new TableItemModel(_game.Table, new IdeCollection <IdeBaseItem>(this)) { CanRemove = false, CanCopy = false, CanInsert = false }; Piles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.Player.Groups) { Piles.Add(new GroupItemModel(pile, Piles)); } Piles.CollectionChanged += (sender, args) => { _game.Player.Groups = Piles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedPiles"); RaisePropertyChanged("VisiblePiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddPileCommand = new RelayCommand(AddPile); Counters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.Player.Counters) { Counters.Add(new CounterItemModel(counter, Counters)); } Counters.CollectionChanged += (sender, args) => { _game.Player.Counters = Counters.Select(x => ((CounterItemModel)x)._counter); }; AddCounterCommand = new RelayCommand(AddCounter); GlobalPiles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.GlobalPlayer.Groups) { GlobalPiles.Add(new GroupItemModel(pile, GlobalPiles)); } GlobalPiles.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Groups = GlobalPiles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedGlobalPiles"); RaisePropertyChanged("VisibleGlobalPiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddGlobalPileCommand = new RelayCommand(AddGlobalPile); GlobalCounters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.GlobalPlayer.Counters) { GlobalCounters.Add(new CounterItemModel(counter, GlobalCounters)); } GlobalCounters.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Counters = GlobalCounters.Select(x => ((CounterItemModel)x)._counter); }; AddGlobalCounterCommand = new RelayCommand(AddGlobalCounter); CardSizes = new IdeCollection <IdeBaseItem>(this); foreach (var sizeDef in _game.CardSizes) { var size = new SizeItemModel(sizeDef.Value, CardSizes); CardSizes.Add(size); if (sizeDef.Key == "") { CardSizes.DefaultItem = size; } } CardSizes.CollectionChanged += (sender, args) => { UpdateCardSizesDef(); Messenger.Default.Send(new CardSizeChangedMesssage(args)); }; CardSizes.DefaultItemChanged += (sender, args) => { UpdateCardSizesDef(); }; AddSizeCommand = new RelayCommand(AddSize); Phases = new IdeCollection <IdeBaseItem>(this); foreach (var phase in _game.Phases) { Phases.Add(new PhaseItemModel(phase, Phases)); } Phases.CollectionChanged += (sender, args) => { _game.Phases = Phases.Select(x => ((PhaseItemModel)x)._phase).ToList(); }; AddPhaseCommand = new RelayCommand(AddPhase); Boards = new IdeCollection <IdeBaseItem>(this); foreach (var boardDef in _game.GameBoards) { var board = new BoardItemModel(boardDef.Value, Boards); Boards.Add(board); if (boardDef.Key == "") { Boards.DefaultItem = board; } } ActiveBoard = (BoardItemModel)Boards.DefaultItem; Boards.CollectionChanged += (sender, args) => { UpdateBoardsDef(); }; Boards.DefaultItemChanged += (sender, args) => { UpdateBoardsDef(); }; AddBoardCommand = new RelayCommand(AddBoard); Cards = new ObservableCollection <SampleCardItemModel>(); var card = new SampleCardItemModel { Size = (SizeItemModel)CardSizes.DefaultItem }; Cards.Add(card); RaisePropertyChanged("Cards"); }
public PreviewTabViewModel() { #region table if (_game.Table == null) { _game.Table = new Group() { Name = "Table", Width = 640, Height = 480 }; } Table = new TableItemModel(_game.Table, new IdeCollection <IdeBaseItem>(this)) { CanRemove = false, CanCopy = false, CanInsert = false }; #endregion #region piles if (_game.Player == null) { _game.Player = new Player(); } Piles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.Player.Groups) { Piles.Add(new GroupItemModel(pile, Piles)); } Piles.CollectionChanged += (sender, args) => { _game.Player.Groups = Piles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedPiles"); RaisePropertyChanged("VisiblePiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddPileCommand = new RelayCommand(AddPile); #endregion #region counters Counters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.Player.Counters) { Counters.Add(new CounterItemModel(counter, Counters)); } Counters.CollectionChanged += (sender, args) => { _game.Player.Counters = Counters.Select(x => ((CounterItemModel)x)._counter); }; AddCounterCommand = new RelayCommand(AddCounter); #endregion #region globalpiles if (_game.GlobalPlayer == null) { _game.GlobalPlayer = new GlobalPlayer(); } GlobalPiles = new IdeCollection <IdeBaseItem>(this); foreach (var pile in _game.GlobalPlayer.Groups) { GlobalPiles.Add(new GroupItemModel(pile, GlobalPiles)); } GlobalPiles.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Groups = GlobalPiles.Select(x => ((GroupItemModel)x)._group); RaisePropertyChanged("CollapsedGlobalPiles"); RaisePropertyChanged("VisibleGlobalPiles"); Messenger.Default.Send(new GroupChangedMessage(args)); }; AddGlobalPileCommand = new RelayCommand(AddGlobalPile); #endregion #region globalcounters GlobalCounters = new IdeCollection <IdeBaseItem>(this); foreach (var counter in _game.GlobalPlayer.Counters) { GlobalCounters.Add(new CounterItemModel(counter, GlobalCounters)); } GlobalCounters.CollectionChanged += (sender, args) => { _game.GlobalPlayer.Counters = GlobalCounters.Select(x => ((CounterItemModel)x)._counter); }; AddGlobalCounterCommand = new RelayCommand(AddGlobalCounter); #endregion #region sizes CardSizes = new IdeCollection <IdeBaseItem>(this); foreach (var sizeDef in _game.CardSizes) { var size = new SizeItemModel(sizeDef.Value, CardSizes); CardSizes.Add(size); if (sizeDef.Key == "") { CardSizes.DefaultItem = size; } } CardSizes.CollectionChanged += (sender, args) => { UpdateCardSizesDef(); Messenger.Default.Send(new CardSizeChangedMesssage(args)); }; CardSizes.DefaultItemChanged += (sender, args) => { UpdateCardSizesDef(); }; AddSizeCommand = new RelayCommand(AddSize); #endregion #region phases Phases = new IdeCollection <IdeBaseItem>(this); foreach (var phase in _game.Phases) { Phases.Add(new PhaseItemModel(phase, Phases)); } Phases.CollectionChanged += (sender, args) => { _game.Phases = Phases.Select(x => ((PhaseItemModel)x)._phase).ToList(); }; AddPhaseCommand = new RelayCommand(AddPhase); #endregion #region boards Boards = new IdeCollection <IdeBaseItem>(this); foreach (var boardDef in _game.GameBoards) { var board = new BoardItemModel(boardDef.Value, Boards); Boards.Add(board); if (boardDef.Key == "") { Boards.DefaultItem = board; } } Boards.CollectionChanged += (sender, args) => { UpdateBoardsDef(); }; Boards.DefaultItemChanged += (sender, args) => { UpdateBoardsDef(); }; AddBoardCommand = new RelayCommand(AddBoard); #endregion #region samplecards Cards = new ObservableCollection <SampleCardItemModel>(); if (CardSizes.DefaultItem != null) { var card = new SampleCardItemModel { Size = (SizeItemModel)CardSizes.DefaultItem }; Cards.Add(card); } #endregion #region activeboard if (Boards.DefaultItem != null) { ActiveBoard = (BoardItemModel)Boards.DefaultItem; } #endregion }