Beispiel #1
0
        private void InitializeCommands()
        {
            applyCommand = new ObservedCommand(() =>
            {
                if (stylePropertyContent != null)
                {
                    StyleLayerListItem styleListItem     = stylePropertyContent.StyleItem;
                    LayerListItem componentLayerListItem = StylePropertyUIPlugin.GetSpecificLayerListItem <CompositeStyle>(styleListItem);
                    if (componentLayerListItem != null)
                    {
                        CompositeStyle oldStyle  = (CompositeStyle)componentLayerListItem.ConcreteObject;
                        List <Style> innerStyles = oldStyle.Styles.ToList();
                        oldStyle.Styles.Clear();

                        foreach (var innerStyle in componentLayerListItem.Children.OfType <StyleLayerListItem>()
                                 .Select(item => item.ConcreteObject).OfType <Style>().Reverse())
                        {
                            oldStyle.Styles.Add(innerStyle);
                        }

                        if (featureLayer != null)
                        {
                            //GisEditor.ActiveMap.GetOverlaysContaining(featureLayer).ForEach(o => o.Refresh());
                            GisEditor.ActiveMap.GetOverlaysContaining(featureLayer).ForEach(o => o.RefreshWithBufferSettings());
                            LayerListUIPlugin layerListUIPlugin = GisEditor.UIManager.GetActiveUIPlugins <LayerListUIPlugin>().FirstOrDefault();
                            if (layerListUIPlugin != null)
                            {
                                layerListUIPlugin.Refresh(new RefreshArgs(this, "StyleProperties Applied."));
                            }
                        }
                    }
                }
            }, () => stylePropertyContent != null);
        }
        public static MenuItem GetDuplicateMenuItem()
        {
            var command  = new ObservedCommand(Duplicate, CanExecute);
            var menuItem = GetMenuItem("Duplicate", "pack://application:,,,/GisEditorInfrastructure;component/Images/duplicate.png", command);

            return(menuItem);
        }
        public static MenuItem GetMovementMenuItem(MovementAction movementAction, bool isMovementEnabled = true)
        {
            var    command      = new ObservedCommand(() => { MoveItem(movementAction); }, () => !(GisEditor.LayerListManager.SelectedLayerListItems.Count > 0) && isMovementEnabled);
            string headerString = String.Empty;
            string imageName    = String.Empty;

            switch (movementAction)
            {
            case MovementAction.Up:
                headerString = "Move up";
                imageName    = "moveUp";
                break;

            case MovementAction.Down:
                headerString = "Move down";
                imageName    = "moveDown";
                break;

            case MovementAction.ToTop:
                headerString = "Move to top";
                imageName    = "toTop";
                break;

            case MovementAction.ToBottom:
                headerString = "Move to bottom";
                imageName    = "toBottom";
                break;

            default:
                break;
            }
            return(GetMenuItem(headerString, string.Format("/GisEditorPluginCore;component/Images/{0}.png", imageName), command));
        }
 public static MenuItem GetRenameMenuItem()
 {
     var command = new ObservedCommand(() =>
     {
         GisEditor.LayerListManager.SelectedLayerListItem.IsRenaming = true;
     }, () => !(GisEditor.LayerListManager.SelectedLayerListItems.Count > 0));
     return GetMenuItem("Rename", "/GisEditorPluginCore;component/Images/rename.png", command);
 }
        internal static MenuItem GetAddLayerMenuItem()
        {
            ObservedCommand command = new ObservedCommand(() =>
            {
                CommandHelper.AddNewLayersCommand.Execute(true);
            }, () => !(GisEditor.LayerListManager.SelectedLayerListItems.Count > 0));

            return(GetMenuItem("Add layer", "/GisEditorPluginCore;component/Images/add.png", command));
        }
Beispiel #6
0
        public static MenuItem GetAddStyleWizardMenuItem(ShapeFileFeatureLayer shapeFileFeatureLayer)
        {
            var command = new ObservedCommand(() =>
            {
                if (GisEditorWpfMapExtension.AddStyleToLayerWithStyleWizard(new Layer[] { shapeFileFeatureLayer }))
                {
                    LayerListHelper.RefreshCache();
                    GisEditor.UIManager.BeginRefreshPlugins(new RefreshArgs(shapeFileFeatureLayer, RefreshArgsDescription.GetAddStyleWizardMenuItemDescription));
                }
            }, () => true);

            return(GetMenuItem("Style Wizard", "/GisEditorPluginCore;component/Images/addstyle.png", command));
        }
        public static MenuItem GetEditStyleMenuItem()
        {
            var command = new ObservedCommand(new Action(() =>
            {
                LayerListHelper.EditStyle(GisEditor.LayerListManager.SelectedLayerListItem);
            }), new Func <bool>(() =>
            {
                if (GisEditor.LayerListManager.SelectedLayerListItem == null)
                {
                    return(false);
                }
                return(GisEditor.LayerListManager.SelectedLayerListItem.ConcreteObject is Style);
            }));

            return(GetMenuItem("Edit", "/GisEditorPluginCore;component/Images/editstyle.png", command));
        }
        internal static MenuItem GetRefreshLayersMenuItem(LayerOverlay overlay)
        {
            MenuItem item = new MenuItem();

            item.Header = GisEditor.LanguageManager.GetStringResource("LayerListMenuItemHelperRefreshlayersText");
            item.Icon   = new Image {
                Source = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/refresh.png", UriKind.RelativeOrAbsolute)), Width = 16, Height = 16
            };;
            ObservedCommand command = new ObservedCommand(() =>
            {
                overlay.Invalidate();
            }, () => { return(overlay != null); });

            item.Command = command;
            return(item);
        }
Beispiel #9
0
        public static MenuItem GetAddSpecifiedStyleByPluginMenuItem(StylePlugin styleProvider)
        {
            var image = new Image();

            image.BeginInit();
            image.Source = styleProvider.SmallIcon;
            image.EndInit();
            var command = new ObservedCommand(() => { AddStyle(styleProvider); },
                                              () =>
            {
                string stylePluginName = styleProvider.GetType().FullName;
                return(GisEditor.StyleManager.GetActiveStylePlugins().Any(p => p.GetType().FullName.Equals(stylePluginName, StringComparison.Ordinal)));
            });

            return(GetMenuItem(styleProvider.GetShortName(), image, command));
        }
        private static MenuItem GetMenuItem(string header, Image icon, ObservedCommand command)
        {
            if (icon != null)
            {
                icon.Width  = 16;
                icon.Height = 16;
            }
            MenuItem menuItem = new MenuItem();

            menuItem.HorizontalContentAlignment = HorizontalAlignment.Stretch;
            menuItem.VerticalContentAlignment   = VerticalAlignment.Stretch;
            menuItem.Name    = header.Replace(" ", "").Replace("...", "").Replace("(", "").Replace(")", "");
            menuItem.Header  = header;
            menuItem.Icon    = icon;
            menuItem.Command = command;
            return(menuItem);
        }
Beispiel #11
0
        public static MenuItem GetAddStyleMenuItem(AddStyleTypes addStyleType, FeatureLayer featureLayer)
        {
            var command = new ObservedCommand(() => { }, () => !(GisEditor.LayerListManager.SelectedLayerListItems.Count > 0));

            var menuItem = GetMenuItem(GisEditor.LanguageManager.GetStringResource("StyleBuilderWindowAddStyleLabel"), "/GisEditorPluginCore;component/Images/addstyle.png", null);

            menuItem.Items.Add(GetLoadFromLibraryMenuItem());
            menuItem.Items.Add(new Separator());
            AddSubMenuItems(addStyleType, menuItem);

            ShapeFileFeatureLayer shpLayer = featureLayer as ShapeFileFeatureLayer;

            if (shpLayer != null)
            {
                if (menuItem.Items.Count > 0)
                {
                    menuItem.Items.Add(new Separator());
                }
                menuItem.Items.Add(LayerListMenuItemHelper.GetAddStyleWizardMenuItem(shpLayer));
            }
            return(menuItem);
        }
Beispiel #12
0
 protected GeoProcessingViewModel()
 {
     runningTasks                  = new Dictionary <string, Action <ExceptionInfo> >();
     runningErrors                 = new Dictionary <string, Collection <ExceptionInfo> >();
     gridWizardCommand             = GetCommand <GridWizardWindow>();
     explodeWizardCommand          = GetCommand <ExplodeWizardWindow>();
     blendWizardCommand            = GetCommand <BlendWizardWindow>();
     mergeWizardCommand            = GetCommand <MergeWizardWindow>();
     splitWizardCommand            = GetCommand <SplitWizardWindow>();
     bufferWizardCommand           = GetCommand <BufferWizardWindow>();
     clipWizardCommand             = GetCommand <ClippingWizardWindow>();
     dissolveWizardCommand         = GetCommand <DissolveWizardWindow>();
     simplifyWizardCommand         = GetCommand <SimplifyWizardWindow>();
     dataJoinWizardCommand         = GetCommand <DataJoinWizardWindow>();
     exportSelectedFeaturesCommand = GetExportSelectedFeaturesCommand();
     exportMeasuredFeaturesCommand = GetExportMeasuredFeaturesCommand();
     reprojectionCommand           = GetCommand <ReprojectionWindow>();
     rebuildIndexWizardCommand     = new RelayCommand(() =>
     {
         BuildIndexWizardWindow window = new BuildIndexWizardWindow();
         window.Show();
     });
 }
 private static MenuItem GetMenuItem(string header, string iconUri, ObservedCommand command)
 {
     return(GetMenuItem(header, new Image {
         Source = new BitmapImage(new Uri(iconUri, UriKind.RelativeOrAbsolute))
     }, command));
 }
        public static MenuItem GetInsertFromLibraryMenuItem()
        {
            var command = new ObservedCommand(LayerListHelper.InsertFromLibrary, () => true);

            return(GetMenuItem("Insert from Library...", "/GisEditorPluginCore;component/Images/insert_from_library.png", command));
        }
        public static MenuItem GetRemoveFeatureMenuItem()
        {
            var command = new ObservedCommand(RemoveFeature, () => true);

            return(GetMenuItem("Remove", "/GisEditorPluginCore;component/Images/unload.png", command));
        }
Beispiel #16
0
        public static MenuItem GetZoomToExtentMenuItem()
        {
            var command = new ObservedCommand(ZoomToExtent, () => true);

            return(GetMenuItem("Zoom to Extent", "/GisEditorPluginCore;component/Images/zoomextent.png", command));
        }
        private void InitializeCommands()
        {
            addConditionCommand = new RelayCommand(() =>
            {
                FilterConditionWindow newFilterConditionWindow = new FilterConditionWindow();
                FilterConditionViewModel itemViewModel         = new FilterConditionViewModel(RequiredValues);
                itemViewModel.PropertyChanged       += ItemViewModel_PropertyChanged;
                newFilterConditionWindow.DataContext = itemViewModel;
                foreach (var item in columnNameTypes)
                {
                    newFilterConditionWindow.ViewModel.ColumnNameTypes[item.Key] = item.Value;
                }

                newFilterConditionWindow.ViewModel.SelectedColumnName = newFilterConditionWindow.ViewModel.ColumnNames.FirstOrDefault();
                if (newFilterConditionWindow.ShowDialog().GetValueOrDefault())
                {
                    var stylePlugin = GisEditor.StyleManager.GetDefaultStylePlugin(requiredValues.AvailableStyleCategories);

                    filterConditions.Add(newFilterConditionWindow.ViewModel);
                    SyncConditions();
                    RaisePropertyChanged("FilterConditions");
                }
            });

            editConditionCommand = new RelayCommand <FilterConditionViewModel>(v =>
            {
                var clonedViewModel = v.CloneDeep();
                clonedViewModel.ColumnNameTypes.Clear();

                foreach (var item in columnNameTypes)
                {
                    clonedViewModel.ColumnNameTypes[item.Key] = item.Value;
                }

                FilterConditionWindow newFilterConditionWindow = new FilterConditionWindow(clonedViewModel);

                FeatureLayerPlugin resultLayerPlugin = GisEditor.LayerManager.GetLayerPlugins(RequiredValues.FeatureLayer.GetType()).LastOrDefault() as FeatureLayerPlugin;

                if (resultLayerPlugin != null)
                {
                    Collection <IntermediateColumn> columns = resultLayerPlugin.GetIntermediateColumns(requiredValues.FeatureLayer.FeatureSource);
                    foreach (var item in columns)
                    {
                        newFilterConditionWindow.ViewModel.ColumnNameTypes[item.ColumnName] = item.IntermediateColumnType;
                    }
                }

                if (newFilterConditionWindow.ShowDialog().Value)
                {
                    var index = FilterConditions.IndexOf(v);
                    if (index != -1)
                    {
                        v = clonedViewModel;
                        FilterConditions.RemoveAt(index);
                        FilterConditions.Insert(index, v);
                    }
                }

                SyncConditions();
            });

            removeConditionCommand = new RelayCommand <FilterConditionViewModel>(v =>
            {
                if (FilterConditions.Contains(v))
                {
                    var messageBoxResult = System.Windows.Forms.MessageBox.Show(GisEditor.LanguageManager.GetStringResource("FilterStyleViewModelConditionRemovedMessage")
                                                                                , "Alert"
                                                                                , System.Windows.Forms.MessageBoxButtons.YesNo);

                    if (messageBoxResult == System.Windows.Forms.DialogResult.Yes)
                    {
                        FilterConditions.Remove(v);
                        SyncConditions();
                        RaisePropertyChanged("FilterConditions");
                    }
                }
            });

            testScriptCommand = new RelayCommand(() =>
            {
                try
                {
                    var result = actualFilterStyle.GetRequiredColumnNames().All(c => requiredValues.ColumnNames.Contains(c));
                    if (!result)
                    {
                        MessageBox.Show(GisEditor.LanguageManager.GetStringResource("FilterStyleUserControlColumnMessage"));
                    }
                    else
                    {
                        Collection <Feature> features   = new Collection <Feature>();
                        ScriptFilterCondition condition = actualFilterStyle.Conditions.OfType <ScriptFilterCondition>().FirstOrDefault();
                        if (condition != null)
                        {
                            condition.GetMatchingFeatures(features);
                        }
                        MessageBox.Show(GisEditor.LanguageManager.GetStringResource("TestPassMessage"));
                    }
                }
                catch (Exception ex)
                {
                    GisEditor.LoggerManager.Log(LoggerLevel.Debug, ex.Message, new ExceptionInfo(ex));
                    MessageBox.Show(ex.Message);
                }
            });

            viewDataCommand = new RelayCommand(() =>
            {
                DataViewerUserControl content = new DataViewerUserControl();
                content.ShowDialog();
            });

            showResultsCommand = new ObservedCommand(() =>
            {
                ShowFilteredData(requiredValues.FeatureLayer, FilterConditions.Select(f => f.FilterCondition), "");
            }, () => filterConditions.Count > 0);
        }
        internal static MenuItem GetTileTypeMenuItem(TileOverlay tileOverlay)
        {
            MenuItem tileTypeItem = new MenuItem();

            tileTypeItem.Header = "Tile type";
            tileTypeItem.Icon   = new Image {
                Source = new BitmapImage(new Uri("pack://application:,,,/GisEditorPluginCore;component/Images/tiltType.png", UriKind.Absolute)), Width = 16, Height = 16
            };

            MenuItem singleMenuItem = new MenuItem();

            singleMenuItem.Header = "Single tile";
            ObservedCommand singleCommand = new ObservedCommand(() =>
            {
                foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>())
                {
                    if (subItem.Header == singleMenuItem.Header)
                    {
                        singleMenuItem.IsChecked = true;
                    }
                    else
                    {
                        subItem.IsChecked = false;
                    }
                }
                tileOverlay.TileType = TileType.SingleTile;
                tileOverlay.RefreshWithBufferSettings();
            }, () => GisEditor.ActiveMap != null);

            singleMenuItem.Command = singleCommand;

            MenuItem hybridMenuItem = new MenuItem();

            hybridMenuItem.Header = "Multiple tile";
            ObservedCommand hybridCommand = new ObservedCommand(() =>
            {
                foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>())
                {
                    subItem.IsChecked = false;
                }
                hybridMenuItem.IsChecked = true;
                tileOverlay.TileType     = TileType.HybridTile;
                tileOverlay.RefreshWithBufferSettings();
            }, () => GisEditor.ActiveMap != null);

            hybridMenuItem.Command = hybridCommand;


            MenuItem preloadMenuItem = new MenuItem();

            preloadMenuItem.Header = "Hybrid tile";
            ObservedCommand preloadCommand = new ObservedCommand(() =>
            {
                foreach (var subItem in tileTypeItem.Items.OfType <MenuItem>())
                {
                    if (subItem.Header == preloadMenuItem.Header)
                    {
                        preloadMenuItem.IsChecked = true;
                    }
                    else
                    {
                        subItem.IsChecked = false;
                    }
                }
                tileOverlay.TileType = TileType.PreloadDataHybridTile;
                tileOverlay.RefreshWithBufferSettings();
            }, () => GisEditor.ActiveMap != null);

            preloadMenuItem.Command = preloadCommand;


            switch (tileOverlay.TileType)
            {
            case TileType.SingleTile:
                singleMenuItem.IsChecked = true;
                break;

            case TileType.PreloadDataHybridTile:
                preloadMenuItem.IsChecked = true;
                break;

            case TileType.MultipleTile:
            case TileType.HybridTile:
            default:
                hybridMenuItem.IsChecked = true;
                break;
            }

            tileTypeItem.Items.Add(singleMenuItem);
            tileTypeItem.Items.Add(hybridMenuItem);
            tileTypeItem.Items.Add(preloadMenuItem);

            return(tileTypeItem);
        }
Beispiel #19
0
        public static MenuItem GetSaveStyleMenuItem()
        {
            var command = new ObservedCommand(SaveStyle, () => true);

            return(GetMenuItem("Save Style", "/GisEditorPluginCore;component/Images/Export.png", command));
        }
        public static MenuItem GetRebuildIndexMenuItem()
        {
            var command = new ObservedCommand(RebuildIndex, () => !(GisEditor.LayerListManager.SelectedLayerListItems.Count > 0));

            return(GetMenuItem("Rebuild Index", "/GisEditorPluginCore;component/Images/buildindex.png", command));
        }
        public static MenuItem GetLoadFromLibraryMenuItem()
        {
            var command = new ObservedCommand(LoadFromLibrary, () => true);

            return(GetMenuItem("Load from Library...", "/GisEditorPluginCore;component/Images/load_from_library.png", command));
        }