public MenuItemFeature(ResourceManager resourceManager, XmlNode node, PluginDescriptor plugin, ParentMenuItemFeature parentFeature) : base(resourceManager, node, plugin) { _parentFeature = parentFeature; _menu = Helpers.GetEnumXmlAttribute<PluginMenu>(node, ATT_MENU, PluginMenu.none); _contextMenu = Helpers.GetEnumXmlAttribute<PluginContextMenu>(node, ATT_CONTEXT_MENU, GetContextMenuFromMenu(_menu)); _serialization = Helpers.GetEnumXmlAttribute<PluginSerializationLevel>(node, ATT_SERIALIZED, PluginSerializationLevel.none); foreach (XmlNode child in node.ChildNodes) { switch (child.Name) { case TYPE_SHELL: _shellCmd = new ShellCmd(child, paramsFromXML(child)); break; case TYPE_POWERSHELL: _shellCmd = new PowerShellCmd(child, paramsFromXML(child)); break; case TYPE_XENSERVER_POWERSHELL: _shellCmd = new XenServerPowershellCmd(child, paramsFromXML(child)); break; } return; } }
public MenuItemFeature(ResourceManager resourceManager, XmlNode node, PluginDescriptor plugin, ParentMenuItemFeature parentFeature) : base(resourceManager, node, plugin) { _parentFeature = parentFeature; _menu = Helpers.GetEnumXmlAttribute <PluginMenu>(node, ATT_MENU, PluginMenu.none); _contextMenu = Helpers.GetEnumXmlAttribute <PluginContextMenu>(node, ATT_CONTEXT_MENU, GetContextMenuFromMenu(_menu)); _serialization = Helpers.GetEnumXmlAttribute <PluginSerializationLevel>(node, ATT_SERIALIZED, PluginSerializationLevel.none); foreach (XmlNode child in node.ChildNodes) { switch (child.Name) { case TYPE_SHELL: _shellCmd = new ShellCmd(child, paramsFromXML(child)); break; case TYPE_POWERSHELL: _shellCmd = new PowerShellCmd(child, paramsFromXML(child)); break; case TYPE_XENSERVER_POWERSHELL: _shellCmd = new XenServerPowershellCmd(child, paramsFromXML(child)); break; } return; } }
public void AddPluginItems(PluginContextMenu contextMenu, SelectedItemCollection selection) { if (_pluginManager == null) { throw new InvalidOperationException("No plugin manager was specified."); } bool addedSeparatorBefore = false; foreach (PluginDescriptor plugin in _pluginManager.Plugins) { if (plugin.Enabled) { foreach (Feature feature in plugin.Features) { MenuItemFeature menuItemFeature = feature as MenuItemFeature; if (menuItemFeature != null && menuItemFeature.ContextMenu == contextMenu) { if (!addedSeparatorBefore) { AddSeparator(); addedSeparatorBefore = true; } Add(menuItemFeature.GetCommand(_mainWindow, selection)); } ParentMenuItemFeature parentMenuItemFeature = feature as ParentMenuItemFeature; if (parentMenuItemFeature != null && parentMenuItemFeature.ContextMenu == contextMenu) { CommandToolStripMenuItem parentItem = new CommandToolStripMenuItem(parentMenuItemFeature.GetCommand(_mainWindow, selection)); foreach (MenuItemFeature f in parentMenuItemFeature.Features) { parentItem.DropDownItems.Add(new CommandToolStripMenuItem(f.GetCommand(_mainWindow, selection))); } if (!addedSeparatorBefore) { AddSeparator(); addedSeparatorBefore = true; } Add(parentItem); } } } } if (addedSeparatorBefore) { AddSeparator(); } }
public ParentMenuItemFeature(ResourceManager resourceManager, XmlNode node, PluginDescriptor plugin) : base(resourceManager, node, plugin) { _menu = Helpers.GetEnumXmlAttribute<PluginMenu>(node, MenuItemFeature.ATT_MENU, PluginMenu.none); _contextMenu = Helpers.GetEnumXmlAttribute<PluginContextMenu>(node, MenuItemFeature.ATT_CONTEXT_MENU, MenuItemFeature.GetContextMenuFromMenu(_menu)); foreach (XmlNode child in node.ChildNodes) { if (child.NodeType == XmlNodeType.Element) { if (child.Name == MenuItemFeature.ELEMENT_NAME) _features.Add(new MenuItemFeature(resourceManager, child, PluginDescriptor, this)); } } }
public ParentMenuItemFeature(ResourceManager resourceManager, XmlNode node, PluginDescriptor plugin) : base(resourceManager, node, plugin) { _menu = Helpers.GetEnumXmlAttribute <PluginMenu>(node, MenuItemFeature.ATT_MENU, PluginMenu.none); _contextMenu = Helpers.GetEnumXmlAttribute <PluginContextMenu>(node, MenuItemFeature.ATT_CONTEXT_MENU, MenuItemFeature.GetContextMenuFromMenu(_menu)); foreach (XmlNode child in node.ChildNodes) { if (child.NodeType == XmlNodeType.Element) { if (child.Name == MenuItemFeature.ELEMENT_NAME) { _features.Add(new MenuItemFeature(resourceManager, child, PluginDescriptor, this)); } } } }