Beispiel #1
0
        public Collection <MenuItem> GetLayerListItemContextMenuItems(GetLayerListItemContextMenuParameters parameters)
        {
            Collection <MenuItem> menuItems = new Collection <MenuItem>();

            menuItems.Add(LayerListMenuItemHelper.GetMovementMenuItem(MovementAction.Up));
            menuItems.Add(LayerListMenuItemHelper.GetMovementMenuItem(MovementAction.Down));
            menuItems.Add(LayerListMenuItemHelper.GetMovementMenuItem(MovementAction.ToTop));
            menuItems.Add(LayerListMenuItemHelper.GetMovementMenuItem(MovementAction.ToBottom));

            //menuItems.Add(new MenuItem() { Header = "--" });
            menuItems.Add(LayerListMenuItemHelper.GetZoomToExtentMenuItem());
            menuItems.Add(LayerListMenuItemHelper.GetRenameMenuItem());
            menuItems.Add(LayerListMenuItemHelper.GetRemoveLayerMenuItem());

            //menuItems.Add(new MenuItem() { Header = "--" });

            float       transparency = 255;
            RasterLayer rasterLayer  = parameters.LayerListItem.ConcreteObject as RasterLayer;

            if (rasterLayer != null)
            {
                transparency = rasterLayer.Transparency;
            }
            else
            {
                transparency = ((Layer)parameters.LayerListItem.ConcreteObject).Transparency;
            }

            menuItems.Add(LayerListMenuItemHelper.GetTransparencyMenuItem(
                              transparency));
            Collection <MenuItem> newMenuItems = GetLayerListItemContextMenuItemsCore(parameters);

            foreach (MenuItem menuItem in newMenuItems)
            {
                menuItems.Add(menuItem);
            }

            return(menuItems);
        }
        protected virtual ObservableCollection <MenuItem> GetLayerListContextMenuItemsCore(LayerListItem layerListItem)
        {
            ObservableCollection <MenuItem> menuItems = new ObservableCollection <MenuItem>();
            var args = new GetLayerListItemContextMenuParameters(layerListItem);

            foreach (var item in layerListItem.ContextMenuItems)
            {
                menuItems.Add(item);
            }
            if (layerListItem.ConcreteObject is Layer)
            {
                var layerPlugin = GisEditor.LayerManager.GetLayerPlugins(layerListItem.ConcreteObject.GetType()).FirstOrDefault();
                if (layerPlugin != null)
                {
                    foreach (var item in layerPlugin.GetLayerListItemContextMenuItems(args))
                    {
                        menuItems.Add(item);
                    }
                }
            }
            else if (layerListItem.ConcreteObject is Styles.Style)
            {
                var stylePlugin = GisEditor.StyleManager.GetStylePluginByStyle((Styles.Style)layerListItem.ConcreteObject);
                if (stylePlugin != null)
                {
                    foreach (var item in stylePlugin.GetLayerListItemContextMenuItems(args))
                    {
                        menuItems.Add(item);
                    }
                }
                Styles.Style style = (Styles.Style)layerListItem.ConcreteObject;
                if (style is CompositeStyle)
                {
                    CompositeStyle compositeStyle = (CompositeStyle)style;
                    if (compositeStyle.Styles.Count == 1 && !(compositeStyle.Styles[0] is FilterStyle) && compositeStyle.Styles[0].Filters != null && compositeStyle.Styles[0].Filters.Count > 0)
                    {
                        MenuItem menuItem = GetFilteredDataMenuItem(layerListItem);
                        menuItems.Add(menuItem);

                        MenuItem exportMenuItem = GetExportFilterMenuItem(layerListItem);
                        menuItems.Add(exportMenuItem);

                        MenuItem zoomtoMenuItem = GetZoomToFilteredDataMenuItem(layerListItem);
                        menuItems.Add(zoomtoMenuItem);
                    }
                }
                else if (!(style is FilterStyle) && style.Filters != null && style.Filters.Count > 0)
                {
                    MenuItem menuItem = GetFilteredDataMenuItem(layerListItem);
                    menuItems.Add(menuItem);

                    MenuItem zoomtoMenuItem = GetZoomToFilteredDataMenuItem(layerListItem);
                    menuItems.Add(zoomtoMenuItem);
                }
            }

            foreach (var uiPlugin in GisEditor.UIManager.GetActiveUIPlugins())
            {
                var tmpItems = uiPlugin.GetLayerListItemContextMenuItems(args);
                if (tmpItems != null && tmpItems.Count > 0)
                {
                    menuItems.Add(new MenuItem {
                        Header = "--"
                    });
                    foreach (var tmItem in tmpItems)
                    {
                        menuItems.Add(tmItem);
                    }
                }
            }

            return(menuItems);
        }
Beispiel #3
0
 protected virtual Collection <MenuItem> GetLayerListItemContextMenuItemsCore(GetLayerListItemContextMenuParameters parameters)
 {
     return(new Collection <MenuItem>());
 }
 public Collection <MenuItem> GetLayerListItemContextMenuItems(GetLayerListItemContextMenuParameters parameters)
 {
     return(GetLayerListItemContextMenuItemsCore(parameters));
 }