示例#1
0
        /// <summary>
        /// Defines behoaviour when a group is clicked. If not all connectors in the group are selected, then it selects them.
        /// If there are all connectors in the group selected, then the funcion deselects them.
        /// </summary>
        /// <param name="group">Group to check and de/select items in.</param>
        private void OnGroupClicked(ConnectorGroupViewModel group)
        {
            bool allConnectorsInGroupSelected = true;

            foreach (var connector in group.ConnectorViewModels)
            {
                if (!this.IsConnectorSelected(connector))
                {
                    allConnectorsInGroupSelected = false;
                }
            }

            if (allConnectorsInGroupSelected)
            {
                foreach (var connector in group.ConnectorViewModels)
                {
                    this.DeselectConnector(connector);
                }
            }
            else
            {
                foreach (var connector in group.ConnectorViewModels)
                {
                    this.SelectConnector(connector);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Defines behaviour when an item in tree is clicked with Ctrl.
        /// </summary>
        /// <param name="sender">sender item.</param>
        /// <param name="e">event args.</param>
        private void ControlLeftMouseDownHandler(object sender, MouseButtonEventArgs e)
        {
            TreeViewItem item = (TreeViewItem)sender;

            if (item == null)
            {
                return;
            }

            var connector = new ConnectorViewModel();

            if (item.Header is ConnectorViewModel)
            {
                connector = (ConnectorViewModel)item.Header;
                this.OnCtrlProjectClicked(connector);
            }
            else
            {
                var group = new ConnectorGroupViewModel();
                if (item.Header is ConnectorGroupViewModel)
                {
                    group = (ConnectorGroupViewModel)item.Header;
                    this.OnGroupClicked(group);
                }
            }

            this.model.UpdateSelectedConnectors(this.selectedConnectors);
        }
示例#3
0
        /// <summary>
        /// Based on group and connector function generates container from item and calls style set for the generated container.
        /// </summary>
        /// <param name="connectorGroupViewModel">Group of the connector.</param>
        /// <param name="connectorViewModel">Connector to set its style.</param>
        private void SetConnectorInGroupStyle(ConnectorGroupViewModel connectorGroupViewModel, ConnectorViewModel connectorViewModel)
        {
            TreeViewItem groupTreeViewItem   = (TreeViewItem)this.mainTreeView.ItemContainerGenerator.ContainerFromItem(connectorGroupViewModel);
            var          treeViewItemInGroup = (TreeViewItem)groupTreeViewItem?.ItemContainerGenerator.ContainerFromItem(connectorViewModel)
                                               ?? (TreeViewItem)this.mainTreeView.ItemContainerGenerator.ContainerFromItem(connectorViewModel);

            if (treeViewItemInGroup != null)
            {
                this.SetStyle(ref treeViewItemInGroup);
            }
        }
示例#4
0
        /// <summary>
        /// Defines behaviour when LMB is released.
        /// </summary>
        /// <param name="sender">sender item.</param>
        /// <param name="e">event args.</param>
        private void ControlLeftMouseUpHandler(object sender, MouseButtonEventArgs e)
        {
            TreeViewItem item = (TreeViewItem)sender;

            var connector = new ConnectorViewModel();

            if (item == null)
            {
                return;
            }

            if (item.Header is ConnectorViewModel)
            {
                connector = (ConnectorViewModel)item.Header;
                this.DeselectAllConnectors();
                this.connectorItemEventFired = true;
                this.OnCtrlProjectClicked(connector);
            }
            else
            {
                if (this.connectorItemEventFired)
                {
                    this.connectorItemEventFired = false;
                }
                else
                {
                    var group = new ConnectorGroupViewModel();
                    if (item.Header is ConnectorGroupViewModel)
                    {
                        group = (ConnectorGroupViewModel)item.Header;
                        this.DeselectAllConnectors();
                        this.OnGroupClicked(group);
                    }
                }
            }

            this.model.UpdateSelectedConnectors(this.selectedConnectors);
        }