private void _InitSymbology() { SymbologyManager.Init(); _InitFields(); _InitCategoriesDataGridLayout(); _InitQuantitiesDataGridLayout(); if (SymbologyManager.SymbologyType == SymbologyType.CategorySymbology) { CategoriesButton.IsChecked = true; QuantitiesButton.IsChecked = false; CategoryXceedGrid.Visibility = Visibility.Visible; QuantityXceedGrid.Visibility = Visibility.Collapsed; } else { CategoriesButton.IsChecked = false; QuantitiesButton.IsChecked = true; CategoryXceedGrid.Visibility = Visibility.Collapsed; QuantityXceedGrid.Visibility = Visibility.Visible; } _SetFieldBoxIndex(); _OnFieldChanged(); SymbologyLabel.Visibility = Visibility.Visible; SymbologyGrid.Visibility = Visibility.Visible; _SetShadowGrid(); _symbologyInited = true; }
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); }
/// <summary> /// React on order property changes /// </summary> private void _order_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == Order.PropertyNameGeoLocation) { // if order geocoded position changed - show order in new place Geometry = _CreatePoint(_order); } if (e.PropertyName.Equals(SymbologyManager.FieldName)) { SymbologyManager.InitGraphic(this); } }
private void _StoreState() { if (_edited != null) { if (SymbologyManager.SymbologyType == SymbologyType.CategorySymbology) { try { CategoryXceedGrid.EndEdit(); } catch { CategoryXceedGrid.CancelEdit(); } } else { try { QuantityXceedGrid.EndEdit(); } catch { QuantityXceedGrid.CancelEdit(); } } } if (_edited != null) { _EndEdit(); } if (App.Current.Project != null) { SymbologyManager.SaveConfig(); } MapDisplay mapDisplay = App.Current.MapDisplay; mapDisplay.TrueRoute = TrueRouteButton.IsChecked.Value; mapDisplay.LabelingEnabled = LabelingOnButton.IsChecked.Value; mapDisplay.ShowBarriers = BarriersOnButton.IsChecked.Value; mapDisplay.ShowZones = ZonesOnButton.IsChecked.Value; mapDisplay.ShowLeadingStemTime = ShowLeadingStemTimeButton.IsChecked.Value; mapDisplay.ShowTrailingStemTime = ShowTrailingStemTimeButton.IsChecked.Value; mapDisplay.AutoZoom = AutoZoomButton.IsChecked.Value; mapDisplay.Save(); }
private void FieldBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Finish editing if in edit mode. if (_edited != null) { DataGridControl dataGridControl; if (SymbologyManager.SymbologyType == SymbologyType.CategorySymbology) { dataGridControl = CategoryXceedGrid; } else { dataGridControl = QuantityXceedGrid; } try { dataGridControl.EndEdit(); } catch { dataGridControl.CancelEdit(); } } DeleteButton.IsEnabled = false; if (_symbologyInited && _userChange) { if (SymbologyManager.SymbologyType == SymbologyType.CategorySymbology) { SymbologyManager.CategoryOrderField = (string)FieldBox.SelectedItem; SymbologyManager.OrderCategories.Clear(); SymbologyManager.AddDefaultCategory(); } else { SymbologyManager.QuantityOrderField = (string)FieldBox.SelectedItem; SymbologyManager.OrderQuantities.Clear(); SymbologyManager.AddDefaultQuantity(); } _SetShadowGrid(); } _OnFieldChanged(); }
/// <summary> /// React on symbology settings changed. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Ignored.</param> private void _SymbologyManagerOnSettingsChanged(object sender, EventArgs e) { foreach (Graphic graphic in MapLayer) { StopGraphicObject stopGraphic = graphic as StopGraphicObject; if (stopGraphic != null) { stopGraphic.InitSymbology(); } OrderGraphicObject orderGraphic = graphic as OrderGraphicObject; if (orderGraphic != null) { SymbologyManager.InitGraphic(orderGraphic); } } }
/// <summary> /// Create order symbols. /// </summary> /// <param name="stop">Stop, associated with order.</param> private void _CreateOrderSymbol(Stop stop) { if (stop.AssociatedObject is Order) { if (App.Current.MapDisplay.LabelingEnabled) { Color color = Color.FromRgb(_stop.Route.Color.R, _stop.Route.Color.G, _stop.Route.Color.B); SolidColorBrush solidColorBrush = new SolidColorBrush(color); Attributes[SymbologyContext.FILL_ATTRIBUTE_NAME] = solidColorBrush; Symbol = new LabelSequenceSymbol(); } else { SymbologyManager.InitGraphic(this); } } }
/// <summary> /// React on order property changes. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Ignored.</param> private void _StopAssociatedObjectPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == Order.PropertyNameGeoLocation) { // if order geocoded position changed - show order in new place Geometry = _CreatePoint(_stop); } Order order = _stop.AssociatedObject as Order; if (order != null) { if (e.PropertyName.Equals(SymbologyManager.FieldName) && !App.Current.MapDisplay.LabelingEnabled) { SymbologyManager.InitGraphic(this); } } }
/// <summary> /// Create graphic object for order /// </summary> /// <param name="order">Source order</param> /// <returns>Graphic object for order</returns> public static OrderGraphicObject Create(Order order) { OrderGraphicObject graphic = null; graphic = new OrderGraphicObject(order); Color color = Color.FromRgb(0, 0, 0); graphic.Attributes.Add(SymbologyContext.FILL_ATTRIBUTE_NAME, new SolidColorBrush(color)); graphic.Attributes.Add(SymbologyContext.OFFSETX_ATTRIBUTE_NAME, -(SymbologyManager.DEFAULT_SIZE - SymbologyManager.DEFAULT_INDENT / 2)); graphic.Attributes.Add(SymbologyContext.OFFSETY_ATTRIBUTE_NAME, -(SymbologyManager.DEFAULT_SIZE - SymbologyManager.DEFAULT_INDENT / 2)); graphic.Attributes.Add(SymbologyContext.SIZE_ATTRIBUTE_NAME, SymbologyManager.DEFAULT_SIZE); graphic.Attributes.Add(SymbologyContext.FULLSIZE_ATTRIBUTE_NAME, SymbologyManager.DEFAULT_SIZE + SymbologyManager.DEFAULT_INDENT); SymbologyManager.InitGraphic(graphic); return(graphic); }