Exemplo n.º 1
0
        /// <summary>
        /// Update the context menu based on the current state of the version.
        /// </summary>
        private void UpdateMenu()
        {
            var menuItems = new List <FrameworkElement>
            {
                new MenuItem {
                    Header = Resources.UiOpenOnCloudConsoleMenuHeader, Command = new ProtectedCommand(OnOpenOnCloudConsoleCommand)
                },
                new MenuItem {
                    Header = Resources.UiPropertiesMenuHeader, Command = new ProtectedCommand(OnPropertiesWindowCommand)
                },
            };

            // If the version is running it can be opened.
            if (_version.IsServing())
            {
                menuItems.Add(new MenuItem {
                    Header = Resources.CloudExplorerGaeVersionOpen, Command = new ProtectedCommand(OnOpenVersion)
                });
                if (_trafficAllocation < 1.0)
                {
                    menuItems.Add(new MenuItem {
                        Header = Resources.CloudExplorerGaeMigrateAllTrafficHeader, Command = new ProtectedCommand(OnMigrateTrafficCommand)
                    });
                }
            }

            menuItems.Add(new MenuItem {
                Header = Resources.CloudExplorerLaunchLogsViewerMenuHeader, Command = new ProtectedCommand(OnBrowseStackdriverLogCommand)
            });
            menuItems.Add(new Separator());

            if (_version.IsServing())
            {
                menuItems.Add(new MenuItem {
                    Header = Resources.CloudExplorerGaeStopVersion, Command = new ProtectedCommand(OnStopVersion)
                });
            }
            else if (_version.IsStopped())
            {
                menuItems.Add(new MenuItem {
                    Header = Resources.CloudExplorerGaeStartVersion, Command = new ProtectedCommand(OnStartVersion)
                });
            }

            if (CanDeleteVersion)
            {
                menuItems.Add(new MenuItem {
                    Header = Resources.CloudExplorerGaeDeleteVersion, Command = new ProtectedCommand(OnDeleteVersion)
                });
            }

            ContextMenu = new ContextMenu {
                ItemsSource = menuItems
            };

            SyncContextMenuState();
        }