Beispiel #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public ViewComplementManipulationAdorner(ViewManipulationManager OwnerManager, VisualComplement TargetComplement, AdornerLayer TargetLayer,
                                                 Action <ViewManipulationAdorner, bool, bool, bool, bool, bool, bool, bool, bool> ManipulationOperation)
            : base(OwnerManager, TargetComplement, TargetLayer)
        {
            this.DefaultAction_ = (byte)EComplementManipulationAction.Edit;

            this.ManipulatingHeadingRectangle = TargetComplement.BaseArea;
            this.ManipulationOperation        = ManipulationOperation;
        }
Beispiel #2
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public ViewSymbolManipulationAdorner(ViewManipulationManager OwnerManager, VisualSymbol TargetSymbol, AdornerLayer TargetLayer,
                                             Action <ViewManipulationAdorner, bool, bool, bool, bool, bool, bool, bool, bool> ManipulationOperation)
            : base(OwnerManager, TargetSymbol, TargetLayer)
        {
            DefaultAction_ = (byte)ESymbolManipulationAction.EditInPlace;

            ManipulatingHeadingRectangle = TargetSymbol.BaseArea;
            ManipulatingHeadingLabel     = TargetSymbol.LabelingArea;

            ManipulatingDetailsRectangle = TargetSymbol.DetailsArea;
            this.ManipulationOperation   = ManipulationOperation;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public ViewManipulationAdorner(ViewManipulationManager OwnerManager, VisualObject TargetObject, AdornerLayer TargetLayer)
            : base(OwnerManager.OwnerView.PresenterControl)
        {
            this.IsHitTestVisible = true;

            this.OwnerManager      = OwnerManager;
            this.ManipulatedObject = TargetObject;
            this.BaseLayer         = TargetLayer;

            this.Indicators = new VisualCollection(this);
            this.ExclusivePointingIndicators = new List <Visual>();

            this.ContextControl = this.OwnerManager.OwnerView.PresenterControl;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public ViewConnectorManipulationAdorner(ViewManipulationManager OwnerManager, VisualConnector WorkingConnector,
                                                AdornerLayer WorkingLayer, Action <ViewManipulationAdorner, bool, bool, bool, bool, bool, bool, bool, bool> ManipulationOperation)
            : base(OwnerManager, WorkingConnector, WorkingLayer)
        {
            this.TentativeAction_ = (byte)EConnectorManipulationAction.Displace;
            this.DefaultAction_   = (byte)EConnectorManipulationAction.Displace;

            this.ManipulationOperation = ManipulationOperation;

            var OriginEdgePoint = WorkingConnector.OriginPosition.DetermineNearestIntersectingPoint(WorkingConnector.TargetPosition, OwnerManager.OwnerView.Presenter,
                                                                                                    WorkingConnector.OriginSymbol.Graphic, OwnerManager.OwnerView.VisualHitTestFilter);
            var TargetEdgePoint = WorkingConnector.TargetPosition.DetermineNearestIntersectingPoint(WorkingConnector.OriginPosition, OwnerManager.OwnerView.Presenter,
                                                                                                    WorkingConnector.TargetSymbol.Graphic, OwnerManager.OwnerView.VisualHitTestFilter);

            var ViewPosition     = Mouse.GetPosition(this.OwnerManager.OwnerView.Presenter);
            var DistanceToOrigin = (ViewPosition - OriginEdgePoint).Length;
            var DistanceToTarget = (ViewPosition - TargetEdgePoint).Length;

            this.ManipulationAlternatePosition = (WorkingConnector.OriginSymbol == WorkingConnector.OwnerRelationshipRepresentation.MainSymbol
                                                  ? WorkingConnector.OriginPosition : WorkingConnector.TargetPosition);

            this.ManipulConnDisplacingPos = (this.ManipulatedConnector.IntermediatePosition == Display.NULL_POINT
                                                  ? (WorkingConnector.OriginSymbol == WorkingConnector.OwnerRelationshipRepresentation.MainSymbol
                                                     ? new Point((this.ManipulationAlternatePosition.X + TargetEdgePoint.X) / 2.0,
                                                                 (this.ManipulationAlternatePosition.Y + TargetEdgePoint.Y) / 2.0)
                                                     : new Point((OriginEdgePoint.X + this.ManipulationAlternatePosition.X) / 2.0,
                                                                 (OriginEdgePoint.Y + this.ManipulationAlternatePosition.Y) / 2.0))
                                                  : this.ManipulatedConnector.IntermediatePosition);
            //T Console.WriteLine("ManConnDisPos=" + this.ManipulConnDisplacingPos + "     at " + DateTime.Now.Ticks);

            if (DistanceToOrigin < DistanceToTarget)
            {
                this.WorkingOnOrigin         = true;
                this.ManipulConnRelinkingPos = OriginEdgePoint;
            }
            else
            {
                this.WorkingOnOrigin         = false;
                this.ManipulConnRelinkingPos = TargetEdgePoint;
            }

            this.ActStroke.Opacity = 0.1;
        }