GetLabelController() публичный статический Метод

public static GetLabelController ( BaseElement el ) : ILabelController
el BaseElement
Результат ILabelController
Пример #1
0
        public void Resize(Point dragPoint)
        {
            if ((resizeCtrl != null) && (resizeCtrl.CanResize))
            {
                //Events
                ElementEventArgs eventResizeArg = new ElementEventArgs(resizeCtrl.OwnerElement);

                resizeCtrl.OwnerElement.Invalidate();

                resizeCtrl.Resize(dragPoint);

                ILabelController lblCtrl = ControllerHelper.GetLabelController(resizeCtrl.OwnerElement);
                if (lblCtrl != null)
                {
                    lblCtrl.SetLabelPosition();
                }
                else
                {
                    if (resizeCtrl.OwnerElement is ILabelElement)
                    {
                        LabelElement label = ((ILabelElement)resizeCtrl.OwnerElement).Label;
                        label.PositionBySite(resizeCtrl.OwnerElement);
                    }
                }

                UpdateResizeCorner();

                onElementResizingDelegate(eventResizeArg);
            }
        }
Пример #2
0
        public void EndEdit()
        {
            if (siteLabelElement == null)
            {
                return;
            }

            labelTextBox.KeyPress -= new KeyPressEventHandler(labelTextBox_KeyPress);

            ILabelController lblCtrl = ControllerHelper.GetLabelController(siteLabelElement);

            labelElement.Size = MeasureTextSize();
            labelElement.Text = labelTextBox.Text;
            labelTextBox.Hide();
            if (lblCtrl != null)
            {
                lblCtrl.SetLabelPosition();
            }
            else
            {
                labelElement.PositionBySite(siteLabelElement);
            }
            labelElement.Invalidate();
            siteLabelElement = null;
            labelElement     = null;
            labelTextBox     = null;
        }
Пример #3
0
        public void Move(Point dragPoint)
        {
            //Upper selecion point controller
            Point dragPointEl = dragPoint;

            dragPointEl.Offset(upperSelPointDragOffset.X, upperSelPointDragOffset.Y);

            upperSelPoint = dragPointEl;

            if (dragPointEl.X < 0)
            {
                dragPointEl.X = 0;
            }
            if (dragPointEl.Y < 0)
            {
                dragPointEl.Y = 0;
            }

            //Move Controller
            if (dragPointEl.X == 0)
            {
                dragPoint.X = dragPoint.X - upperSelPoint.X;
            }
            if (dragPointEl.Y == 0)
            {
                dragPoint.Y = dragPoint.Y - upperSelPoint.Y;
            }

            foreach (IMoveController ctrl in moveCtrl)
            {
                if (ctrl != null)
                {
                    ctrl.OwnerElement.Invalidate();

                    onElementMovingDelegate(new ElementEventArgs(ctrl.OwnerElement));

                    ctrl.Move(dragPoint);

                    if (ctrl.OwnerElement is NodeElement)
                    {
                        UpdateLinkPosition((NodeElement)ctrl.OwnerElement);
                    }

                    ILabelController lblCtrl = ControllerHelper.GetLabelController(ctrl.OwnerElement);
                    if (lblCtrl != null)
                    {
                        lblCtrl.SetLabelPosition();
                    }
                }
            }
        }
Пример #4
0
        private void UpdateLinkPosition(NodeElement node)
        {
            foreach (ConnectorElement conn in node.Connectors)
            {
                foreach (BaseElement el in conn.Links)
                {
                    BaseLinkElement lnk  = (BaseLinkElement)el;
                    IController     ctrl = ((IControllable)lnk).GetController();
                    if (ctrl is IMoveController)
                    {
                        IMoveController mctrl = (IMoveController)ctrl;
                        if (!mctrl.IsMoving)
                        {
                            lnk.NeedCalcLink = true;
                        }
                    }
                    else
                    {
                        lnk.NeedCalcLink = true;
                    }

                    if (lnk is ILabelElement)
                    {
                        LabelElement label = ((ILabelElement)lnk).Label;

                        ILabelController lblCtrl = ControllerHelper.GetLabelController(lnk);
                        if (lblCtrl != null)
                        {
                            lblCtrl.SetLabelPosition();
                        }
                        else
                        {
                            label.PositionBySite(lnk);
                        }
                        label.Invalidate();
                    }
                }
            }
        }
Пример #5
0
        public void Start(Point mousePoint, Document document, OnElementMovingDelegate onElementMovingDelegate)
        {
            this.document = document;
            this.onElementMovingDelegate = onElementMovingDelegate;

            // Get Controllers
            moveCtrl = new IMoveController[document.SelectedElements.Count];
            IMoveController[] moveLabelCtrl = new IMoveController[document.SelectedElements.Count];
            for (int i = document.SelectedElements.Count - 1; i >= 0; i--)
            {
                moveCtrl[i] = ControllerHelper.GetMoveController(document.SelectedElements[i]);

                if ((moveCtrl[i] != null) && (moveCtrl[i].CanMove))
                {
                    onElementMovingDelegate(new ElementEventArgs(document.SelectedElements[i]));
                    moveCtrl[i].Start(mousePoint);

                    //ILabelElement - Move Label inside the element
                    if ((document.SelectedElements[i] is ILabelElement) &&
                        (ControllerHelper.GetLabelController(document.SelectedElements[i]) == null))
                    {
                        LabelElement label = ((ILabelElement)document.SelectedElements[i]).Label;
                        moveLabelCtrl[i] = ControllerHelper.GetMoveController(label);
                        if ((moveLabelCtrl[i] != null) && (moveLabelCtrl[i].CanMove))
                        {
                            moveLabelCtrl[i].Start(mousePoint);
                        }
                        else
                        {
                            moveLabelCtrl[i] = null;
                        }
                    }
                }
                else
                {
                    moveCtrl[i] = null;
                }
            }

            moveCtrl = (IMoveController[])DiagramUtil.ArrayHelper.Append(moveCtrl, moveLabelCtrl);
            moveCtrl = (IMoveController[])DiagramUtil.ArrayHelper.Shrink(moveCtrl, null);

            // Can't move only links
            bool isOnlyLink = true;

            foreach (IMoveController ctrl in moveCtrl)
            {
                // Verify
                if (ctrl != null)
                {
                    ctrl.OwnerElement.Invalidate();

                    if (!(ctrl.OwnerElement is BaseLinkElement) && !(ctrl.OwnerElement is LabelElement))
                    {
                        isOnlyLink = false;
                        break;
                    }
                }
            }
            if (isOnlyLink)
            {
                //End Move the Links
                foreach (IMoveController ctrl in moveCtrl)
                {
                    if (ctrl != null)
                    {
                        ctrl.End();
                    }
                }
                moveCtrl = new IMoveController[] { null };
            }

            //Upper selecion point controller
            UpdateUpperSelectionPoint();
            upperSelPointDragOffset.X = upperSelPoint.X - mousePoint.X;
            upperSelPointDragOffset.Y = upperSelPoint.Y - mousePoint.Y;

            isMoving = true;
        }