private static BaseMenuItem GetMenuByAction(string action, Collection <object> sourceMenus)
 {
     if (sourceMenus != null)
     {
         foreach (object item in sourceMenus)
         {
             if (item is CompositeMenuItem)
             {
                 CompositeMenuItem compositeMenuItem = ((CompositeMenuItem)item);
                 BaseMenuItem      menu = GetMenuByAction(action, compositeMenuItem.Children);
                 if (menu != null)
                 {
                     return(menu);
                 }
             }
             else if (item is SingleMenuItem)
             {
                 SingleMenuItem singleMenuItem = ((SingleMenuItem)item);
                 if (string.Compare(singleMenuItem.Action, action, StringComparison.InvariantCultureIgnoreCase) == 0)
                 {
                     return(singleMenuItem);
                 }
             }
         }
     }
     return(null);
 }
        //private void overlay_Drawing(object sender, DrawingOverlayEventArgs e)
        //{
        //    if (IsHydrographyLayerVisiable())
        //    {
        //        IsOnLoading = true;
        //    }
        //}

        //private void overlay_Drawn(object sender, DrawnOverlayEventArgs e)
        //{
        //    IsOnLoading = false;
        //}

        private void SetToolbarMenuItems()
        {
            areaDrawingModes = GetMenusByGroupName("s52areadrawingmode", menuItems);
            foreach (BaseMenuItem menuItem in areaDrawingModes)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedAreaDrawingMode = areaDrawingModes.FirstOrDefault(p => p.IsChecked);
            colorSchemas            = GetMenusByGroupName("colorschema", menuItems);
            foreach (BaseMenuItem menuItem in colorSchemas)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedColorSchema = colorSchemas.FirstOrDefault(p => p.IsChecked);
            pointDrawingModes   = GetMenusByGroupName("s52pointdrawingmode", menuItems);
            foreach (BaseMenuItem menuItem in pointDrawingModes)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedPointDrawingMode = pointDrawingModes.FirstOrDefault(p => p.IsChecked);

            baseMaps = GetMenusByGroupName("showworldmap", menuItems);
            foreach (BaseMenuItem menuItem in baseMaps)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedBaseMap = baseMaps.FirstOrDefault(m => m.IsChecked);

            displayCategorys = GetMenusByGroupName("displaycategory", menuItems);
            foreach (BaseMenuItem menuItem in displayCategorys)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedDisplayCategory = displayCategorys.FirstOrDefault(m => m.IsChecked);

            symbolLabels = GetMenusByGroupName("textlabel", menuItems);
            foreach (BaseMenuItem menuItem in symbolLabels)
            {
                menuItem.PropertyChanged += MenuItem_PropertyChanged;
            }
            SelectedSymbolLabel = symbolLabels.FirstOrDefault(p => p.IsChecked);

            showingGradicule = GetMenuByAction("graticule", menuItems);
            showLights       = GetMenuByAction("lights", menuItems);

            showContourText       = GetMenuByAction("contourlabel", menuItems);
            showSoundingText      = GetMenuByAction("soundinglabel", menuItems);
            showLightDescriptions = GetMenuByAction("lightdescription", menuItems);
        }
 private void SwitchCheckedState(BaseMenuItem menuItem, IEnumerable <object> menuItems)
 {
     if (menuItems != null)
     {
         IEnumerator <object> enumerator = menuItems.GetEnumerator();
         while (enumerator.MoveNext())
         {
             object current = enumerator.Current;
             if (current is SingleMenuItem)
             {
                 SingleMenuItem singleMenuItem = (SingleMenuItem)current;
                 if (singleMenuItem.GroupName == menuItem.GroupName &&
                     singleMenuItem.IsCheckable &&
                     !singleMenuItem.CanToggle)
                 {
                     singleMenuItem.IsChecked = singleMenuItem == menuItem;
                 }
             }
         }
     }
 }
        private void MenuItem_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (string.Compare(e.PropertyName, "IsChecked", StringComparison.InvariantCultureIgnoreCase) == 0)
            {
                BaseMenuItem menuItem = sender as BaseMenuItem;
                if (menuItem.IsChecked)
                {
                    canHandleExecute = false;
                    switch (menuItem.GroupName.ToLowerInvariant())
                    {
                    case "s52areadrawingmode":
                        SelectedAreaDrawingMode = menuItem;
                        break;

                    case "colorschema":
                        SelectedColorSchema = menuItem;
                        break;

                    case "s52pointdrawingmode":
                        SelectedPointDrawingMode = menuItem;
                        break;

                    case "showworldmap":
                        SelectedBaseMap = menuItem;
                        break;

                    case "displaycategory":
                        SelectedDisplayCategory = menuItem;
                        break;

                    case "textlabel":
                        SelectedSymbolLabel = menuItem;
                        break;
                    }
                    canHandleExecute = true;
                }
            }
        }
Ejemplo n.º 5
0
 public MenuItemMessage(BaseMenuItem menuItem)
 {
     MenuItem = menuItem;
 }