Ejemplo n.º 1
0
        public void UpdateButtonStates()
        {
            GoogleEarthModel ogeButton    = buttons.Where(b => b.Name.Equals("Open in Google earth", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
            GoogleEarthModel ogeProButton = buttons.Where(b => b.Name.Equals("Open in Google earth Pro", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();

            googleEarthInstalledPath    = GoogleEarthHelper.GetGoogleEarthInstalledPath();
            googleEarthProInstalledPath = GoogleEarthHelper.GetGoogleEarthProInstalledPath();

            ogeButton.IsEnabled    = !string.IsNullOrEmpty(googleEarthInstalledPath);
            ogeProButton.IsEnabled = !string.IsNullOrEmpty(googleEarthProInstalledPath);
        }
        public static MenuItem GetHighlightedFeaturesMenuitem()
        {
            MenuItem highlightedFeatureMenuItem = new MenuItem();

            highlightedFeatureMenuItem.Header = GisEditor.LanguageManager.GetStringResource("HighlightedFeaturesHelperHighLightMenuHeaderContent");
            highlightedFeatureMenuItem.Icon   = new Image()
            {
                Width = 16, Height = 16, Source = new BitmapImage(new Uri("pack://application:,,,/GisEditorPluginCore;component/Images/zoom_to_selected.png", UriKind.RelativeOrAbsolute))
            };

            //IEnumerable<FeatureLayer> layers = GisEditor.ActiveMap.GetFeatureLayers();
            Collection <FeatureLayer> layers = GisEditor.SelectionManager.GetSelectionOverlay().TargetFeatureLayers;
            Collection <FeatureLayer> selectedFeaturesLayers = new Collection <FeatureLayer>();

            foreach (FeatureLayer layer in layers)
            {
                Collection <Feature> features = GisEditor.SelectionManager.GetSelectedFeatures(layer);
                if (features.Count > 0)
                {
                    selectedFeaturesLayers.Add(layer);
                }
            }
            MenuItem copyToMenuitem = new MenuItem();

            copyToMenuitem.Header = GisEditor.LanguageManager.GetStringResource("SelectionAndQueryingRibbonGroupCopyToLabelText");

            MenuItem toNewLayerMenuitem = new MenuItem();

            toNewLayerMenuitem.Header = GisEditor.LanguageManager.GetStringResource("SelectionAndQueryingRibbonGroupCopyToTemporaryHeaderText");
            toNewLayerMenuitem.Tag    = selectedFeaturesLayers;
            toNewLayerMenuitem.Click += NewLayerMenuitem_Click;

            MenuItem toShapeFileMenuitem = new MenuItem();

            toShapeFileMenuitem.Header = "Shape File";
            toShapeFileMenuitem.Tag    = selectedFeaturesLayers;
            toShapeFileMenuitem.Click += ShapeFileMenuitem_Click;

            copyToMenuitem.Items.Add(toNewLayerMenuitem);
            copyToMenuitem.Items.Add(toShapeFileMenuitem);

            if (CheckCopyToEditLayerIsAvailable(selectedFeaturesLayers))
            {
                MenuItem toEditLayerMenuitem = new MenuItem();
                toEditLayerMenuitem.Tag    = selectedFeaturesLayers;
                toEditLayerMenuitem.Header = GisEditor.LanguageManager.GetStringResource("SelectionAndQueryingRibbonGroupCopyToEditHeaderText");
                toEditLayerMenuitem.Click += ToEditLayerMenuitem_Click;
                copyToMenuitem.Items.Add(toEditLayerMenuitem);
            }

            InMemoryFeatureLayer[] inMemoryFeatureLayers = GisEditor.ActiveMap.GetFeatureLayers(false).OfType <InMemoryFeatureLayer>().ToArray();
            if (inMemoryFeatureLayers.Length > 0)
            {
                copyToMenuitem.Items.Add(new Separator());
            }
            foreach (InMemoryFeatureLayer layer in inMemoryFeatureLayers)
            {
                MenuItem layerMenuitem = new MenuItem();
                layerMenuitem.Header = layer.Name;
                layerMenuitem.Click += LayerMenuitem_Click;
                copyToMenuitem.Items.Add(layerMenuitem);
            }

            MenuItem saveToKmlMenuitem = new MenuItem();

            saveToKmlMenuitem.Header = GisEditor.LanguageManager.GetStringResource("GisEarthHelperSaveasvectorKML");
            saveToKmlMenuitem.Click += GoogleEarthHelper.SaveToKmlMenuitemClick;

            MenuItem openWithGoogleMenuitem = new MenuItem();

            openWithGoogleMenuitem.IsEnabled = !string.IsNullOrEmpty(GoogleEarthHelper.GetGoogleEarthInstalledPath());
            openWithGoogleMenuitem.Tag       = "GoogleEarth";
            openWithGoogleMenuitem.Header    = GisEditor.LanguageManager.GetStringResource("GisEarthHelperOpeninGoogleEarth");
            openWithGoogleMenuitem.Icon      = new Image()
            {
                Width = 16, Height = 16, Source = new BitmapImage(new Uri("pack://application:,,,/GisEditorPluginCore;component/Images/googleEarth.png", UriKind.RelativeOrAbsolute))
            };
            openWithGoogleMenuitem.Click += GoogleEarthHelper.OpenWithGoogleMenuitemClick;

            MenuItem openWithGoogleProMenuitem = new MenuItem();

            openWithGoogleProMenuitem.IsEnabled = !string.IsNullOrEmpty(GoogleEarthHelper.GetGoogleEarthProInstalledPath());
            openWithGoogleProMenuitem.Tag       = "GoogleEarthPro";
            openWithGoogleProMenuitem.Header    = "Open in Google Earth Pro";
            openWithGoogleProMenuitem.Icon      = new Image()
            {
                Width = 16, Height = 16, Source = new BitmapImage(new Uri("pack://application:,,,/GisEditorPluginCore;component/Images/googleEarth.png", UriKind.RelativeOrAbsolute))
            };
            openWithGoogleProMenuitem.Click += GoogleEarthHelper.OpenWithGoogleMenuitemClick;

            highlightedFeatureMenuItem.Items.Add(copyToMenuitem);
            highlightedFeatureMenuItem.Items.Add(saveToKmlMenuitem);
            highlightedFeatureMenuItem.Items.Add(openWithGoogleMenuitem);
            highlightedFeatureMenuItem.Items.Add(openWithGoogleProMenuitem);

            return(highlightedFeatureMenuItem);
        }
 protected override Collection <MenuItem> GetMapContextMenuItemsCore(GetMapContextMenuParameters parameters)
 {
     return(new Collection <MenuItem> {
         GoogleEarthHelper.GetSaveAsKMLMenuItem()
     });
 }