Exemplo n.º 1
0
        public static Control CreateCustomOrderSymbol(object orderOrStop)
        {
            DataGraphicObject graphicObject = null;

            // Create data graphic object that depends on object type.
            if (orderOrStop is Stop)
            {
                graphicObject = StopGraphicObject.Create(orderOrStop as Stop);
            }
            else if (orderOrStop is Order)
            {
                graphicObject = OrderGraphicObject.Create(orderOrStop as Order);
            }
            else
            {
                Debug.Assert(false); // Not supported.
            }
            // Init graphics object by order symbology manager.
            SymbologyManager.InitGraphic(graphicObject);

            // Create symbol control
            var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl
                              (graphicObject.Symbol.ControlTemplate);

            // Copy attributes from graphics object to symbol control.
            control.SymbologyContextDictionary = graphicObject.Attributes;

            // Offset symbol so it is not rendered shifted.
            control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY);

            return(control);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create map symbol.
        /// </summary>
        /// <param name="templateResource">XAML path.</param>
        /// <param name="color">Fill color.</param>
        /// <param name="isLocked">Whether symbol should look locked.</param>
        /// <param name="isViolated">Whether symbol should look violated.</param>
        /// <param name="sequenceNumber">Stop sequence number.</param>
        /// <returns>Symbol element.</returns>
        private static Control _CreateMapSymbol(string templateResource, Color color, bool isLocked, bool isViolated, int?sequenceNumber)
        {
            // Load label sequence control template.
            ControlTemplate template = _LoadTemplateFromResource(templateResource);

            // Create symbol control
            var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl
                              (template);

            // Set sequence number.
            control.SequenceNumber = sequenceNumber.HasValue ? sequenceNumber.Value.ToString() : "";

            // Set color.
            SolidColorBrush fillingBrush = new System.Windows.Media.SolidColorBrush(color);

            control.Fill = fillingBrush;

            // Set locked status.
            control.IsLocked = isLocked;

            // Set violated status.
            control.IsViolated = isViolated;

            // Set render transformation to suppress displacement that is necessary for showing on map control.
            double?symbolDisplacement = (double?)template.Resources["SymbolDisplacement"];

            if (symbolDisplacement.HasValue)
            {
                control.RenderTransform = new TranslateTransform(-symbolDisplacement.Value, -symbolDisplacement.Value);
            }
            else
            {
                control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY);
            }

            return(control);
        }
Exemplo n.º 3
0
        public static Control CreateCustomOrderSymbol(object orderOrStop)
        {
            DataGraphicObject graphicObject = null;

            // Create data graphic object that depends on object type.
            if (orderOrStop is Stop)
                graphicObject = StopGraphicObject.Create(orderOrStop as Stop);
            else if (orderOrStop is Order)
                graphicObject = OrderGraphicObject.Create(orderOrStop as Order);
            else
                Debug.Assert(false); // Not supported.

            // Init graphics object by order symbology manager.
            SymbologyManager.InitGraphic(graphicObject);

            // Create symbol control
            var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl
                (graphicObject.Symbol.ControlTemplate);

            // Copy attributes from graphics object to symbol control.
            control.SymbologyContextDictionary = graphicObject.Attributes;

            // Offset symbol so it is not rendered shifted.
            control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY);

            return control;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Create map symbol.
        /// </summary>
        /// <param name="templateResource">XAML path.</param>
        /// <param name="color">Fill color.</param>
        /// <param name="isLocked">Whether symbol should look locked.</param>
        /// <param name="isViolated">Whether symbol should look violated.</param>
        /// <param name="sequenceNumber">Stop sequence number.</param>
        /// <returns>Symbol element.</returns>
        private static Control _CreateMapSymbol(string templateResource, Color color, bool isLocked, bool isViolated, int? sequenceNumber)
        {
            // Load label sequence control template.
            ControlTemplate template = _LoadTemplateFromResource(templateResource);

            // Create symbol control
            var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl
                (template);

            // Set sequence number.
            control.SequenceNumber = sequenceNumber.HasValue ? sequenceNumber.Value.ToString() : "";

            // Set color.
            SolidColorBrush fillingBrush = new System.Windows.Media.SolidColorBrush(color);
            control.Fill = fillingBrush;

            // Set locked status.
            control.IsLocked = isLocked;

            // Set violated status.
            control.IsViolated = isViolated;

            // Set render transformation to suppress displacement that is necessary for showing on map control.
            double? symbolDisplacement = (double?)template.Resources["SymbolDisplacement"];
            if (symbolDisplacement.HasValue)
                control.RenderTransform = new TranslateTransform(-symbolDisplacement.Value, -symbolDisplacement.Value);
            else
            {
                control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY);
            }

            return control;
        }