// // Copyright (c) 2012 Virtual Cable S.L. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of Virtual Cable S.L. nor the names of its contributors // may be used to endorse or promote products derived from this software // without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // author: Adolfo Gómez, dkmaster at dkmon dot com using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace UdsAdmin.gui { public class MenusManager { public static void InitProvidersMenu(ToolStripMenuItem menu, EventHandler action, xmlrpc.ServiceProviderType[] providersTypes) { menu.DropDownItems.Clear(); menu.Text = Strings.newItem; List lst = new List(providersTypes); lst.Sort(new xmlrpc.ServiceProviderTypeSorterByName()); foreach (xmlrpc.ServiceProviderType pt in lst) { ToolStripItem m = new ToolStripMenuItem(pt.name); m.Name = pt.type; m.ToolTipText = pt.description; m.Image = gui.Helpers.ImageFromBase64(pt.icon); m.Click += action; menu.DropDownItems.Add(m); } } public static ContextMenuStrip ServicesMenu(EventHandler action, xmlrpc.ServiceType[] servicesTypes, bool withModifyDelete) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem newA = new ToolStripMenuItem(); newA.Name = "" ; newA.DropDownItems.Clear(); newA.Text = Strings.newItem; List lst = new List(servicesTypes); lst.Sort(new xmlrpc.ServiceTypeSorterByName()); foreach (xmlrpc.ServiceType st in lst) { ToolStripItem m = new ToolStripMenuItem(st.name); m.Name = ActionTree.NEW_ACTION; m.Tag = st; m.ToolTipText = st.description; m.Image = gui.Helpers.ImageFromBase64(st.icon); m.Click += action; newA.DropDownItems.Add(m); } if (withModifyDelete) { ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; ToolStripMenuItem check = new ToolStripMenuItem(Strings.checkServiceProvider); check.Name = ActionTree.CHECK_ACTION; check.Click += action; if( servicesTypes.Length > 0 ) menu.Items.AddRange(new ToolStripItem[] { newA, modify, delete, check }); else menu.Items.AddRange(new ToolStripItem[] { modify, delete, check }); } else menu.Items.Add(newA); return menu; } public static ContextMenuStrip ServiceMenu(EventHandler action, xmlrpc.Service service, xmlrpc.ServiceType type) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; modify.Tag = type; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; menu.Items.AddRange(new ToolStripItem[] { modify, delete }); return menu; } public static void InitAuthenticatorsMenu(ToolStripMenuItem menu, EventHandler action, xmlrpc.AuthenticatorType[] authsTypes) { menu.DropDownItems.Clear(); menu.Text = Strings.newItem; List lst = new List(authsTypes); lst.Sort(new xmlrpc.AuthenticatorTypeSorterByName()); foreach (xmlrpc.AuthenticatorType authType in lst) { ToolStripItem m = new ToolStripMenuItem(authType.name); m.Name = authType.type; m.ToolTipText = authType.description; m.Image = gui.Helpers.ImageFromBase64(authType.icon); m.Click += action; menu.DropDownItems.Add(m); } } public static ContextMenuStrip AuthMenu(EventHandler action) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; ToolStripMenuItem check = new ToolStripMenuItem(Strings.checkAuthenticator); check.Name = ActionTree.CHECK_ACTION; check.Click += action; menu.Items.AddRange(new ToolStripItem[] { modify, delete, check }); return menu; } public static void InitOSManagersMenu(ToolStripMenuItem menu, EventHandler action, xmlrpc.OSManagerType[] osmTypes) { menu.DropDownItems.Clear(); menu.Text = Strings.newItem; List lst = new List(osmTypes); lst.Sort(new xmlrpc.OSManagerTypeSorterByName()); foreach (xmlrpc.OSManagerType osmType in lst) { ToolStripItem m = new ToolStripMenuItem(osmType.name); m.Name = osmType.type; m.ToolTipText = osmType.description; m.Image = gui.Helpers.ImageFromBase64(osmType.icon); m.Click += action; menu.DropDownItems.Add(m); } } public static ContextMenuStrip OSManagerMenu(EventHandler action, xmlrpc.OSManager osm) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; ToolStripMenuItem check = new ToolStripMenuItem(Strings.checkOSManager); check.Name = ActionTree.CHECK_ACTION; check.Click += action; menu.Items.AddRange(new ToolStripItem[] { modify, delete, check }); return menu; } public static void InitTransportsMenu(ToolStripMenuItem menu, EventHandler action, xmlrpc.TransportType[] transTypes) { menu.DropDownItems.Clear(); menu.Text = Strings.newItem; List lst = new List(transTypes); lst.Sort(new xmlrpc.TransportTypeSorterByName()); foreach (xmlrpc.TransportType tType in lst) { ToolStripItem m = new ToolStripMenuItem(tType.name); m.Name = tType.type; m.ToolTipText = tType.description; m.Image = gui.Helpers.ImageFromBase64(tType.icon); m.Click += action; menu.DropDownItems.Add(m); } } public static ContextMenuStrip TransportMenu(EventHandler action, xmlrpc.Transport trans) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; menu.Items.AddRange(new ToolStripItem[] { modify, delete }); return menu; } public static ContextMenuStrip NetworksMenu(EventHandler action) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem newNetwork = new ToolStripMenuItem(Strings.newItem); newNetwork.Click += action; menu.Items.Add(newNetwork); return menu; } public static void InitDeployedServicesMenu(ToolStripMenuItem menu, EventHandler action) { menu.Text = Strings.newItem; menu.Click += action; } public static ContextMenuStrip DeployedServiceMenu(EventHandler action, xmlrpc.DeployedService dps) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem modify = new ToolStripMenuItem(Strings.modifyItem); modify.Name = ActionTree.MODIFY_ACTION; modify.Click += action; ToolStripMenuItem delete = new ToolStripMenuItem(Strings.deleteItem); delete.Name = ActionTree.DELETE_ACTION; delete.Click += action; menu.Items.AddRange(new ToolStripItem[] { modify, delete}); if (dps.info.needsPublication) { ToolStripSeparator sep = new ToolStripSeparator(); ToolStripMenuItem publish = new ToolStripMenuItem(Strings.publish); publish.Name = ActionTree.PUBLISH_ACTION; publish.Click += action; menu.Items.AddRange(new ToolStripItem[] {sep, publish }); } return menu; } public static ContextMenuStrip TreeUsersGroupsMenu(EventHandler action) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem newU = new ToolStripMenuItem(Strings.newItem); newU.Name = ActionTree.NEW_ACTION; newU.Click += action; menu.Items.Add(newU); return menu; } public static ContextMenuStrip PublicationMenu(EventHandler action) { ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem publish = new ToolStripMenuItem(Strings.publish); publish.Name = ActionTree.PUBLISH_ACTION; publish.Click += action; menu.Items.Add(publish); return menu; } } }