public QuickAccessToolbarSettingViewModel(QuickAccessToolbarManager option)
        {
            this.option        = option;
            this.isUpEnabled   = false;
            this.isDownEnabled = false;

            GisEditorUserControl = GetLogicalChild(Application.Current.MainWindow);
        }
Exemplo n.º 2
0
        public static void Started(string startupProjectPath)
        {
            AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

            GisEditorUserControl gisEditorUserControl = new GisEditorUserControl(startupProjectPath);
            Window window = new Window();

            Application.Current.MainWindow = window;
            window.Title = GisEditor.LanguageManager.GetStringResource("ShellDscMapSuiteGISDscTitle");
            window.Icon  = new BitmapImage(new Uri("pack://application:,,,/MapSuiteGisEditor;component/Images/logo.png", UriKind.Absolute));
            window.SetBinding(Window.FlowDirectionProperty, new Binding()
            {
                Source = GisEditor.LanguageManager, Path = new PropertyPath("FlowDirection")
            });

            ApplyWindowStyle(window);
            window.Content = gisEditorUserControl;
            gisEditorUserControl.Load();
            GisEditorHelper.RestoreWindowLocation(window, startScreen);
            window.Loaded += new RoutedEventHandler(window_Loaded);
            window.Show();
        }
        private void InitializeQuickAccessToolBarItems(GisEditorUserControl gisEidtorControl)
        {
            quickAccessToolbarSettingViewModel.ListItemSource.Clear();

            RibbonTab homeTab = null;

            foreach (var item in gisEidtorControl.ribbonContainer.Items)
            {
                var ribbonTab = item as RibbonTab;
                if (ribbonTab != null)
                {
                    if (ribbonTab.Header.ToString().Equals(GisEditor.LanguageManager.GetStringResource("HomeRibbonTabHeader")))
                    {
                        homeTab = ribbonTab;
                        break;
                    }
                }
            }

            gisEidtorControl.ApplicationMenu_DropDownOpened(null, null);
            var printControl = GisEditor.UIManager.GetActiveUIPlugins <UIPlugin>()
                               .SelectMany(p => p.ApplicationMenuItems)
                               .FirstOrDefault(p => p.Name == "Print");

            RibbonGroup projectGroup = (RibbonGroup)homeTab.Items[0];

            for (int i = 0; i < projectGroup.Items.Count; i++)
            {
                Control control = projectGroup.Items[i] as Control;

                if (i == projectGroup.Items.Count - 2 && printControl != null)
                {
                    RibbonCommands.AddToQuickAccessToolBarCommand.Execute(null, printControl);
                }

                RibbonButton tempRibbonButton = control as RibbonButton;
                if (tempRibbonButton != null &&
                    tempRibbonButton.QuickAccessToolBarId.ToString().Equals("PluginManager", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                if (control != null && RibbonCommands.AddToQuickAccessToolBarCommand.CanExecute(null, control))
                {
                    RibbonCommands.AddToQuickAccessToolBarCommand.Execute(null, control);
                }
            }

            if (homeTab.Items.Count > 1)
            {
                string[] necessaryQuickAccessIds = new string[]
                {
                    "ViewData", "PanMode", "ZoomToSelectionMode", "IdentifyMode"
                };
                List <RibbonButton> necessaryQuickAccessItems = homeTab.Items.OfType <RibbonGroup>()
                                                                .SelectMany(tempGroup => tempGroup.Items.OfType <RibbonButton>())
                                                                .Where(tempButton =>
                {
                    object quickAccessBarId = tempButton.QuickAccessToolBarId;
                    return(quickAccessBarId != null &&
                           necessaryQuickAccessIds.Any(tempId => quickAccessBarId.ToString().Equals(tempId, StringComparison.Ordinal)));
                }).ToList();

                necessaryQuickAccessItems.ForEach(tempItem =>
                {
                    RibbonCommands.AddToQuickAccessToolBarCommand.Execute(null, tempItem);
                });
            }
        }