Ejemplo n.º 1
0
 protected SymbolsViewModel()
 {
     SearchPauseSearching = true;
     #region Events
     //Subscribe to ProjectItemsChangedEvent to update ProjecyStyles
     ProjectItemsChangedEvent.Subscribe(OnProjectItemsChanged);
     ProjectClosedEvent.Subscribe(OnProjectClosed);
     //Subscribe to ActiveMapViewChangedEvent in order to get the layers in the map
     ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged);
     LayersAddedEvent.Subscribe(OnLayersAdded);
     LayersRemovedEvent.Subscribe(OnLayersemoved);
     //Subscribe to Graphic Elements selection changed event
     ElementSelectionChangedEvent.Subscribe(OnGraphicsElementSelectionChanged);
     #endregion
     BindingOperations.EnableCollectionSynchronization(_layersInMap, _layersInMapLock);
     _           = GetLayersInMapAsync();
     _patchTypes = new Dictionary <StyleItemType, SymbolPatchType>
     {
         { StyleItemType.LineSymbol, SymbolPatchType.ZigzagLine },
         { StyleItemType.PolygonSymbol, SymbolPatchType.BoundaryPoly }
     };
     //Get the Styles in the project
     ProjectFilterStyles.Add(new SymbolSearcherSearchFilter(true));
     ProjectFilterStyles.Add(new SymbolSearcherSearchFilter());
     foreach (var pi in Project.Current.GetItems <StyleProjectItem>())
     {
         ProjectFilterStyles.Add(new SymbolSearcherSearchFilter(false, pi));
     }
     if (SelectedProjectFilterStyle == null && ProjectFilterStyles.Count > 0)
     {
         SelectedProjectFilterStyle = ProjectFilterStyles[0];
     }
     //Get the various StyleItemTypes in Pro.
     foreach (StyleItemType sit in Enum.GetValues(typeof(StyleItemType)))
     {
         if (sit == 0)
         {
             continue;
         }
         StyleItemTypeValues.Add(sit);
     }
     SelectedStyleItemType = StyleItemTypeValues.FirstOrDefault();
     SearchPauseSearching  = false;
 }
Ejemplo n.º 2
0
        private void OnProjectItemsChanged(ProjectItemsChangedEventArgs obj)
        {
            if (!(obj.ProjectItem is StyleProjectItem pi))
            {
                return;
            }
            var getStyleProjectItems = (Action)(() =>
            {
                if (ProjectFilterStyles.Count == 0)
                {
                    ProjectFilterStyles.Add(new SymbolSearcherSearchFilter(true));
                    ProjectFilterStyles.Add(new SymbolSearcherSearchFilter());
                }
                ProjectFilterStyles.Add(new SymbolSearcherSearchFilter(false, pi));
                if (SelectedProjectFilterStyle == null && ProjectFilterStyles.Count > 0)
                {
                    // select the default search type
                    SelectedProjectFilterStyle = ProjectFilterStyles[0];
                    SearchPauseSearching = false;
                }
            });

            ActionOnGuiThread(getStyleProjectItems);
        }
Ejemplo n.º 3
0
 private void OnProjectClosed(ProjectEventArgs obj)
 {
     ActionOnGuiThread(() => {
         ProjectFilterStyles.Clear();
     });
 }