Exemplo n.º 1
0
 /// <summary>
 /// To make shapes collection panel invisible when item is getting unselection
 /// </summary>
 /// <param name="param">
 /// </param>
 private void OnItemUnselectCommandExecute(object param)
 {
     if ((param as DiagramEventArgs).Item is NodeVM)
     {
         FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
         sd.PanelVisibility = Visibility.Collapsed;
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// To make shapes collection panel visible when item is getting selection
        /// </summary>
        /// <param name="param">
        /// The param.
        /// </param>
        private void OnItemSelectionCommandExecute(object param)
        {
            int val = ((this.SelectedItems as FlowChartSelectorVm).Nodes as ObservableCollection <object>).Count();

            if (val == 1)
            {
                if ((param as DiagramEventArgs).Item is NodeVM)
                {
                    this.FindQuickCommandVisibility(param as DiagramEventArgs);
                }
            }
            else if (val > 1)
            {
                FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
                sd.LeftButtonVisibility   = Visibility.Hidden;
                sd.RightButtonVisibility  = Visibility.Hidden;
                sd.TopButtonVisibility    = Visibility.Hidden;
                sd.BottomButtonVisibility = Visibility.Hidden;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// The find quick command visibilty method handles the visibility of the quickcommand.
        /// </summary>
        /// <param name="param">
        /// The param.
        /// </param>
        private void FindQuickCommandVisibility(DiagramEventArgs param)
        {
            // right side intersecting bounds
            Rect   nodeBounds           = ((param.Item as NodeVM).Info as INodeInfo).Bounds;
            double right_x              = nodeBounds.Right + 50;
            double right_y              = (param.Item as NodeVM).OffsetY - 25;
            Rect   rightintersectbounds = new Rect(right_x, right_y, 100, 50);

            // left side intersecting bounds
            double left_x = nodeBounds.Left - 150;
            double left_y = (param.Item as NodeVM).OffsetY - 25;
            Rect   leftIntersectBounds = new Rect(left_x, left_y, 100, 50);

            // bottom side intersecting bounds
            double bottom_x = (param.Item as NodeVM).OffsetX - 50;
            double bottom_y = nodeBounds.Bottom + 50;
            Rect   bottomIntersectbounds = new Rect(bottom_x, bottom_y, 100, 50);

            // top side intersecting bounds
            double top_x = (param.Item as NodeVM).OffsetX - 50;
            double top_y = nodeBounds.Top - 100;
            Rect   topIntersectbounds = new Rect(top_x, top_y, 100, 50);

            ObservableCollection <NodeVM> nodesCollection = this.Nodes as ObservableCollection <NodeVM>;

            double Nodeangle = (param.Item as NodeVM).RotateAngle;

            if (nodesCollection != null)
            {
                if (Nodeangle >= 315 && Nodeangle <= 360 || Nodeangle >= 0 && Nodeangle <= 45)
                {
                    // To hide or show right side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(rightintersectbounds))
                        {
                            sd.RightButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.RightButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show left side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(leftIntersectBounds))
                        {
                            sd.LeftButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.LeftButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show top side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(topIntersectbounds))
                        {
                            sd.TopButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.TopButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show bottom side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(bottomIntersectbounds))
                        {
                            sd.BottomButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.BottomButtonVisibility = Visibility.Visible;
                    }

                    ;
                }
                else if (Nodeangle >= 45 && Nodeangle <= 135)
                {
                    // To hide or show right side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(rightintersectbounds))
                        {
                            sd.TopButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.TopButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show left side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(leftIntersectBounds))
                        {
                            sd.BottomButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.BottomButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show top side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(topIntersectbounds))
                        {
                            sd.LeftButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.LeftButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show bottom side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(bottomIntersectbounds))
                        {
                            sd.RightButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.RightButtonVisibility = Visibility.Visible;
                    }

                    ;
                }
                else if (Nodeangle >= 135 && Nodeangle <= 225)
                {
                    // To hide or show right side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(rightintersectbounds))
                        {
                            sd.LeftButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.LeftButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show left side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(leftIntersectBounds))
                        {
                            sd.RightButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.RightButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show top side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(topIntersectbounds))
                        {
                            sd.BottomButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.BottomButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show bottom side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(bottomIntersectbounds))
                        {
                            sd.TopButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.TopButtonVisibility = Visibility.Visible;
                    }

                    ;
                }
                else if (Nodeangle >= 225 && Nodeangle <= 325)
                {
                    // To hide or show right side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;
                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(rightintersectbounds))
                        {
                            sd.BottomButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.BottomButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show left side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(leftIntersectBounds))
                        {
                            sd.TopButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.TopButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show top side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(topIntersectbounds))
                        {
                            sd.RightButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.RightButtonVisibility = Visibility.Visible;
                    }

                    ;

                    // To hide or show bottom side button
                    foreach (NodeVM node in nodesCollection)
                    {
                        FlowChartSelectorVm sd = this.SelectedItems as FlowChartSelectorVm;

                        if ((node.Info as INodeInfo).Bounds.IntersectsWith(bottomIntersectbounds))
                        {
                            sd.LeftButtonVisibility = Visibility.Hidden;
                            break;
                        }

                        sd.LeftButtonVisibility = Visibility.Visible;
                    }

                    ;
                }
            }
        }