예제 #1
0
        /// <summary>
        /// Fetch data object from drag element.
        /// </summary>
        /// <param name="dragElement">Drag element.</param>
        /// <returns>Format-independent data transfer.</returns>
        public IDataObject GetDataObject(UIElement dragElement)
        {
            // Note: consider to replace this method with strong type vertion for FrameworkElement
            // (i.e. "drag'n'drop for elements with DataContext only")
            var sourcePanel = (IPanel)((FrameworkElement)dragElement).DataContext;

            // In case when source panel has parent panel container,
            // it is required to remove it (later, after drop) from parent panel container childs collection
            // if "drop move" operation will be used.
            // For "drop copy" operation cloning of this panel is sufficient.
            parentContainer = sourcePanel.Parent is IPanelContainer
                                                ? (IPanelContainer)sourcePanel.Parent
                                                : null;

            return(new DataObject(SupportedFormat.Name, sourcePanel));
        }
예제 #2
0
        public CardListListViewModel(ObservableCollection <ReadCardList> cardLists, int parentBoardId, IPanelContainer detailsContainer)
        {
            this.parentBoardId      = parentBoardId;
            this.CardListViewModels = new ObservableCollection <CardListViewModel>();
            this.detailsContainer   = detailsContainer;

            foreach (ReadCardList cardList in cardLists)
            {
                CardListViewModels.Add(new CardListViewModel(cardList, OnDeleteCardList, detailsContainer, OnMoveCard, OnSelectedCard));
            }

            NewListCommand = new CommandBase(OnNewListClick);

            InitActions();
            Subscribe();
        }
예제 #3
0
        /// <summary>
        /// Gets debug panels layout.
        /// </summary>
        /// <returns>Debug panels layout.</returns>
        private static IPanel GetDebugLayout()
        {
            IPanelContainer workLeftTabContainer    = GetWorkLeftTabContainer();
            IPanelContainer workMiddleTabContainer  = GetWorkMiddleTabContainer();
            IPanelContainer workRightStackContainer = GetWorkRightStackContainer();
            IPanelContainer workStackContainer      = GetWorkStackContainer(
                workLeftTabContainer, workMiddleTabContainer, workRightStackContainer);

            IPanel enterPanel = GetEnterPanel();

            enterPanel.Activate();

            IPanelContainer subTabContainer1 = GetEnterTopTabContainer();
            IPanelContainer subTabContainer2 = GetDisksTopTabSubContainer();
            IPanelContainer topTabContainer  = GetTopTabContainer(subTabContainer1, subTabContainer2);

            //			workStackContainer.IsSelected = true;
            IPanelContainer mainTabContainer = GetMainTabContainer(enterPanel, workStackContainer, topTabContainer);

            return(mainTabContainer);            //workLeftTabContainer
        }
예제 #4
0
        public CardListViewModel(ReadCardList list, Action <ReadCardList> onDeleteCardList, IPanelContainer container, Action <MoveCard> onMoveCard, Action <ReadCardList> onSelectedCard)
            : base(container)
        {
            //Data
            this.CardList = list;

            //Commands
            AddCardCommand        = new CommandBase(OnAddCardClick);
            DeleteCardListCommand = new CommandBase <ReadCardList>(OnDeleteCardList);
            DeleteCardListAction  = onDeleteCardList;
            RenameCardListCommand = new CommandBase <ReadCardList>(OnRenameCardList);
            DeleteCardCommand     = new CommandBase <ReadCard>(OnDeleteCard);
            OnMoveCardAction      = onMoveCard;
            OnCardSelectedAction  = onSelectedCard;

            InitActions();
            Subscribe();
        }
예제 #5
0
 protected PanelOwnerViewModel(IPanelContainer container)
 {
     Container    = container;
     HasPanelOpen = false;
 }