private static GroupBase GetParentGroupForGroupAdd(TreeNode node) { GroupBase groupBase = null; if (node != null) { groupBase = ((node as GroupBase) ?? (node.Parent as GroupBase)); while (groupBase != null && !groupBase.CanAddGroups()) { groupBase = (groupBase.Parent as GroupBase); } } return(groupBase); }
public static GroupPropertiesDialog NewAddDialog(GroupBase parent) { Group group = Group.CreateForAddDialog(); GroupPropertiesDialog groupPropertiesDialog = new GroupPropertiesDialog(group, "Add Group", "Add", null); groupPropertiesDialog.CreateControls(group); if (parent != null && !parent.CanAddGroups()) { parent = null; } if (!groupPropertiesDialog.PropertiesPage.PopulateParentDropDown(null, parent)) { groupPropertiesDialog.Dispose(); return(null); } return(groupPropertiesDialog); }
public static SmartGroupPropertiesDialog NewAddDialog(GroupBase parent) { SmartGroup smartGroup = SmartGroup.CreateForAdd(); SmartGroupPropertiesDialog smartGroupPropertiesDialog = new SmartGroupPropertiesDialog(smartGroup, "Add Smart Group", "Add", null); if (parent != null && !parent.CanAddGroups()) { parent = null; } smartGroupPropertiesDialog.CreateControls(smartGroup); if (!smartGroupPropertiesDialog.PropertiesPage.PopulateParentDropDown(null, parent)) { smartGroupPropertiesDialog.Dispose(); return(null); } return(smartGroupPropertiesDialog); }
private void PopulateNodeContextMenu(ContextMenuStrip menu, RdcTreeNode node) { menu.Items.Clear(); if (node == null) { if (AnyOpenedEditableFiles()) { menu.Items.Add(new DelegateMenuItem("添加服务器", MenuNames.EditAddServer, AddNodeDialogHelper.AddServersDialog)); menu.Items.Add(new DelegateMenuItem("导入服务器配置", MenuNames.EditImportServers, AddNodeDialogHelper.ImportServersDialog)); menu.Items.Add("-"); menu.Items.Add(new DelegateMenuItem("添加群组", MenuNames.EditAddGroup, AddNodeDialogHelper.AddGroupDialog)); } else { ToolStripMenuItem toolStripMenuItem = new ToolStripMenuItem("Please open or create a file"); toolStripMenuItem.Enabled = false; menu.Items.Add(toolStripMenuItem); } return; } GroupBase groupBase = node as GroupBase; if (groupBase != null) { groupBase.AnyOrAllConnected(out bool anyConnected, out bool allConnected); ToolStripMenuItem toolStripMenuItem = new DelegateMenuItem("整组连接", MenuNames.SessionConnect, groupBase.Connect); toolStripMenuItem.Enabled = !allConnected; menu.Items.Add(toolStripMenuItem); toolStripMenuItem = new DelegateMenuItem("连接组为...", MenuNames.SessionConnectAs, groupBase.DoConnectAs); toolStripMenuItem.Enabled = !allConnected; menu.Items.Add(toolStripMenuItem); toolStripMenuItem = new DelegateMenuItem("重连整组", MenuNames.SessionReconnect, groupBase.Reconnect); toolStripMenuItem.Enabled = anyConnected; menu.Items.Add(toolStripMenuItem); menu.Items.Add("-"); toolStripMenuItem = new DelegateMenuItem("断开整组", MenuNames.SessionDisconnect, groupBase.Disconnect); toolStripMenuItem.Enabled = anyConnected; menu.Items.Add(toolStripMenuItem); menu.Items.Add("-"); toolStripMenuItem = new DelegateMenuItem("登出整组", MenuNames.SessionLogOff, groupBase.LogOff); toolStripMenuItem.Enabled = (!Policies.DisableLogOff && anyConnected); menu.Items.Add(toolStripMenuItem); menu.Items.Add("-"); toolStripMenuItem = new DelegateMenuItem("添加服务器", MenuNames.EditAddServer, delegate { AddNodeDialogHelper.AddServersDialog(node); }); toolStripMenuItem.Enabled = groupBase.CanAddServers(); menu.Items.Add(toolStripMenuItem); toolStripMenuItem = new DelegateMenuItem("添加群组", MenuNames.EditAddGroup, delegate { AddNodeDialogHelper.AddGroupDialog(node); }); toolStripMenuItem.Enabled = groupBase.CanAddGroups(); menu.Items.Add(toolStripMenuItem); toolStripMenuItem = new DelegateMenuItem("添加智能群组", MenuNames.EditAddSmartGroup, delegate { AddNodeDialogHelper.AddSmartGroupDialog(node); }); toolStripMenuItem.Enabled = groupBase.CanAddGroups(); menu.Items.Add(toolStripMenuItem); menu.Items.Add("-"); FileGroup file = node as FileGroup; if (file != null) { toolStripMenuItem = new DelegateMenuItem("保存 " + file.GetFilename(), MenuNames.FileSave, delegate { Program.TheForm.DoFileSave(file); }); toolStripMenuItem.Enabled = file.AllowEdit(popUI: false); menu.Items.Add(toolStripMenuItem); menu.Items.Add(new DelegateMenuItem("关闭 " + file.GetFilename(), MenuNames.FileClose, delegate { Program.TheForm.DoFileClose(file); })); } else { toolStripMenuItem = new DelegateMenuItem("删除服务器", MenuNames.EditRemoveServers, delegate { DoRemoveChildren(node); }); toolStripMenuItem.Enabled = groupBase.CanRemoveChildren(); menu.Items.Add(toolStripMenuItem); toolStripMenuItem = new DelegateMenuItem("删除群组", MenuNames.EditRemove, delegate { ConfirmRemove(node, askUser: true); }); toolStripMenuItem.Enabled = node.CanRemove(popUI: false); menu.Items.Add(toolStripMenuItem); } menu.Items.Add("-"); toolStripMenuItem = new DelegateMenuItem("属性", MenuNames.EditProperties, node.DoPropertiesDialog); toolStripMenuItem.Enabled = node.HasProperties; menu.Items.Add(toolStripMenuItem); } else { ServerBase server = node as ServerBase; MenuHelper.AddSessionMenuItems(menu, server); menu.Items.Add("-"); MenuHelper.AddDockingMenuItems(menu, server); menu.Items.Add("-"); MenuHelper.AddMaintenanceMenuItems(menu, server); } }