public LimnorContextMenuCollection GetObjectMenuData(object obj) { LimnorXmlDesignerLoader2 l = this.Loader as LimnorXmlDesignerLoader2; UInt32 id = l.ObjectMap.GetObjectID(obj); if (_menuData == null) { _menuData = new Dictionary <UInt32, LimnorContextMenuCollection>(); } LimnorContextMenuCollection data; if (!_menuData.TryGetValue(id, out data)) { if (obj == l.RootObject) { data = new LimnorContextMenuCollection(l.GetRootId()); } else { MemberComponentId mc = MemberComponentId.CreateMemberComponentId(l.GetRootId(), obj, id, null); data = new LimnorContextMenuCollection(mc); } _menuData.Add(id, data); } return(data); }
public static MenuItemDataProperty CreateMenuItem(IProperty p, LimnorContextMenuCollection menus) { PropertyPointer pp = p as PropertyPointer; if (pp != null) { return(new PropertyItem(p.Name, menus.Owner, pp.Info)); } else { PropertyClass pc = p as PropertyClass; if (pc != null) { return(new PropertyItemClassPointer(p.Name, menus.Owner, pc)); } else { IPropertyWrapper w = p as IPropertyWrapper; if (w != null) { } } } throw new DesignerException("Unsupported property type {0} for CreateMenuItem", p.GetType()); }
public static MenuItemDataEvent CreateMenuItem(IEvent p, LimnorContextMenuCollection menus) { EventPointer pp = p as EventPointer; if (pp != null) { return(new EventItem(pp.ObjectKey, menus.Owner, pp.Info)); } else { EventClass pc = p as EventClass; if (pc != null) { return(new EventItemClassPointer(pc.DisplayName, menus.Owner, pc)); } else { IPropertyWrapper w = p as IPropertyWrapper; if (w != null) { } } } throw new DesignerException("Unsupported property type {0} for CreateMenuItem", p.GetType()); }
protected override LimnorContextMenuCollection GetMenuData() { if (LocalPointer == null) { throw new DesignerException("Calling GetMenuData with null local variable"); } return(LimnorContextMenuCollection.GetMenuCollection(LocalPointer)); //, runAt); }
protected override LimnorContextMenuCollection GetMenuData() { IClassWrapper a = Variable; if (a == null) { throw new DesignerException("Calling GetMenuData without an array variable"); } return(LimnorContextMenuCollection.GetMenuCollection(a)); }
public LimnorContextMenuCollection GetObjectMenuData(object obj) { LimnorXmlDesignerLoader2 l = this.Loader as LimnorXmlDesignerLoader2; IClass ic = l.GetRootId().CreateMemberPointer(obj); if (ic != null) { return(LimnorContextMenuCollection.GetMenuCollection(ic)); } return(null); }
public void LoadData(LimnorContextMenuCollection type) { _menus = type; // List <MenuItemDataProperty> ps = _menus.PrimaryProperties; if (ps != null && ps.Count > 0) { foreach (MenuItemDataProperty p in ps) { lstP.Items.Add(p); } } List <MenuItemDataProperty> sps = _menus.SecondaryProperties; if (sps != null && sps.Count > 0) { foreach (MenuItemDataProperty p in sps) { lstS.Items.Add(p); } } SortedDictionary <string, IProperty> all = _menus.GetAllProperties(); SortedDictionary <string, TreeNode> customNodes = new SortedDictionary <string, TreeNode>(); foreach (KeyValuePair <string, IProperty> kv in all) { PropertyPointer pi = kv.Value as PropertyPointer; if (pi != null) { treeViewAll.Nodes.Add(new TreeNodeProperty(false, pi)); } else { PropertyClass pc = kv.Value as PropertyClass; if (pc != null) { //use 0 as the scope method Id because property selection does not method scope TreeNodeCustomProperty tnc = new TreeNodeCustomProperty(treeViewAll, pc.IsStatic, pc, 0); customNodes.Add(tnc.Text, tnc); } } } int i = 0; foreach (KeyValuePair <string, TreeNode> kv in customNodes) { treeViewAll.Nodes.Insert(i++, kv.Value); } // }
public void LoadData(LimnorContextMenuCollection menus) { _menus = menus; List <MenuItemDataMethod> pms = _menus.PrimaryMethods; if (pms != null && pms.Count > 0) { foreach (MenuItemDataMethod m in pms) { lstP.Items.Add(m); } } List <MenuItemDataMethod> sms = _menus.SecondaryMethods; if (sms != null && sms.Count > 0) { foreach (MenuItemDataMethod m in sms) { lstS.Items.Add(m); } } SortedDictionary <string, IMethod> all = _menus.GetAllMethods(); SortedDictionary <string, TreeNode> customNodes = new SortedDictionary <string, TreeNode>(); foreach (KeyValuePair <string, IMethod> kv in all) { MethodInfoPointer mi = kv.Value as MethodInfoPointer; if (mi != null) { treeViewAll.Nodes.Add(new TreeNodeMethod(false, mi)); } else { MethodClass mc = kv.Value as MethodClass; if (mc != null) { //use 0 as the scope because method selection does not need scope TreeNodeCustomMethod tnc = new TreeNodeCustomMethod(treeViewAll, mc.IsStatic, mc, menus.Pointer, 0); customNodes.Add(tnc.Text, tnc); } } } int i = 0; foreach (KeyValuePair <string, TreeNode> kv in customNodes) { treeViewAll.Nodes.Insert(i++, kv.Value); } }
public LimnorContextMenuCollection GetMenuData(IClass owner) { if (_menuData == null) { _menuData = new Dictionary <UInt32, LimnorContextMenuCollection>(); } LimnorContextMenuCollection data; if (!_menuData.TryGetValue(owner.MemberId, out data)) { data = new LimnorContextMenuCollection(owner); _menuData.Add(owner.MemberId, data); } return(data); }
public void LoadData(LimnorContextMenuCollection type) { _menus = type; // List <MenuItemDataEvent> es = _menus.PrimaryEvents; if (es != null && es.Count > 0) { foreach (MenuItemDataEvent e in es) { lstP.Items.Add(e); } } es = _menus.SecondaryEvents; if (es != null && es.Count > 0) { foreach (MenuItemDataEvent e in es) { lstS.Items.Add(e); } } SortedDictionary <string, IEvent> all = _menus.GetAllEvents(); SortedDictionary <string, TreeNode> customNodes = new SortedDictionary <string, TreeNode>(); foreach (KeyValuePair <string, IEvent> kv in all) { EventPointer ei = kv.Value as EventPointer; if (ei != null) { treeViewAll.Nodes.Add(new TreeNodeEvent(false, ei)); } else { EventClass ec = kv.Value as EventClass; if (ec != null) { TreeNodeCustomEvent tnc = new TreeNodeCustomEvent(ec.IsStatic, ec); customNodes.Add(tnc.Text, tnc); } } } int i = 0; foreach (KeyValuePair <string, TreeNode> kv in customNodes) { treeViewAll.Nodes.Insert(i++, kv.Value); } }
public static MenuItemDataMethod CreateMenuItem(IMethod p, LimnorContextMenuCollection menus) { MethodInfoPointer ip = p as MethodInfoPointer; if (ip != null) { return(new MethodItem(p.MethodSignature, menus.Owner, ip.MethodInformation)); } MethodClass mc = p as MethodClass; if (mc != null) { return(new MethodItemClassPointer(p.MethodSignature, menus.Owner, mc)); } IMethodWrapper w = p as IMethodWrapper; if (w != null) { return(new MethodItemWrapper(p.MethodSignature, menus.Owner, w)); } throw new DesignerException("Unsupported method type {0} for CreateMenuItem", p.GetType()); }
public MenuItemDataEventSelector(string key, LimnorContextMenuCollection menuData) : base(key, menuData.Owner) { _menuData = menuData; }
/// This is called whenever the user right-clicks on a designer. It removes any local verbs /// added by a previous, different selection and adds the local verbs for the current (primary) /// selection. Then it displays the ContextMenu. public override void ShowContextMenu(CommandID menuID, int x, int y) { ISelectionService ss = this.GetService(typeof(ISelectionService)) as ISelectionService; if (ss == null || ss.PrimarySelection == null) { return; } IDesignerHost host = (IDesignerHost)this.GetService(typeof(IDesignerHost)); // if (host != null) { HostSurface surface = host.GetService(typeof(DesignSurface)) as HostSurface; if (surface != null) { ContextMenu menu = new ContextMenu(); if (host.RootComponent != ss.PrimarySelection && ss.PrimarySelection is Control) { MenuItem mi = new MenuItem("Bring to front", menu_bringToFront); mi.Tag = ss.PrimarySelection; menu.MenuItems.Add(mi); // mi = new MenuItem("Send to back", menu_sendToBack); mi.Tag = ss.PrimarySelection; menu.MenuItems.Add(mi); // menu.MenuItems.Add("-"); } if (host.RootComponent != ss.PrimarySelection) { MenuItem mi = new MenuItem("Copy", menu_cmd); mi.Tag = StandardCommands.Copy; menu.MenuItems.Add(mi); // mi = new MenuItem("Cut", menu_cmd); mi.Tag = StandardCommands.Cut; menu.MenuItems.Add(mi); // mi = new MenuItem("Delete", menu_cmd); mi.Tag = StandardCommands.Delete; menu.MenuItems.Add(mi); // if (ss.SelectionCount == 1) { MenuItem mi2 = new MenuItemWithBitmap("Add to toolbar", addToToolbar, Resource1._toolbar.ToBitmap()); IXType ix = ss.PrimarySelection as IXType; if (ix != null) { mi2.Tag = ix.ValueType; } else { mi2.Tag = ss.PrimarySelection.GetType(); } menu.MenuItems.Add(mi2); } } else { MenuItem mi = new MenuItem("Undo", menu_cmd); mi.Tag = StandardCommands.Undo; menu.MenuItems.Add(mi); // mi = new MenuItem("Redo", menu_cmd); mi.Tag = StandardCommands.Redo; menu.MenuItems.Add(mi); // mi = new MenuItem("Paste", menu_cmd); mi.Tag = StandardCommands.Paste; menu.MenuItems.Add(mi); } // DrawingPage dp = ss.PrimarySelection as DrawingPage; if (dp != null) { MenuItem mi2 = new MenuItem("-"); menu.MenuItems.Add(mi2); // mi2 = new MenuItemWithBitmap("Drawing Board", showDrawingBoard, Resource1._paint.ToBitmap()); mi2.Tag = dp; menu.MenuItems.Add(mi2); } else { IDrawDesignControl drc = ss.PrimarySelection as IDrawDesignControl; if (drc != null) { MenuItem midrc = new MenuItemWithBitmap("Copy to Clipboard as bitmap image", mi_copyDrawing, Resource1._copy.ToBitmap()); midrc.Tag = drc; menu.MenuItems.Add(midrc); midrc = new MenuItemWithBitmap("Save to XML file", mi_savedrawing, Resource1._savefile.ToBitmap()); midrc.Tag = drc; menu.MenuItems.Add(midrc); midrc = new MenuItemWithBitmap("Load from XML file", mi_loadDrawing, Resource1._loadfile.ToBitmap()); midrc.Tag = drc; menu.MenuItems.Add(midrc); } } MenuItem mi20 = new MenuItem("-"); menu.MenuItems.Add(mi20); MenuItem miAddComponent = new MenuItemWithBitmap("Add component", mi_addComponent, Resource1._newIcon.ToBitmap()); menu.MenuItems.Add(miAddComponent); // LimnorContextMenuCollection mdata = surface.GetObjectMenuData(ss.PrimarySelection); if (mdata != null) { if (menu.MenuItems.Count > 0) { menu.MenuItems.Add("-"); } mdata.CreateContextMenu(menu, new Point(0, 0), surface.Loader.ViewerHolder); } if (menu.MenuItems.Count > 0) { Control ps = surface.View as Control; if (ps != null) { LimnorXmlDesignerLoader2.MenuPoint = new Point(x, y); Point s = ps.PointToClient(LimnorXmlDesignerLoader2.MenuPoint); menu.Show(ps, s); } else { ps = ss.PrimarySelection as Control; if (ps != null) { LimnorXmlDesignerLoader2.MenuPoint = new Point(x, y); Point s = ps.PointToScreen(new Point(0, 0)); menu.Show(ps, new Point(x - s.X, y - s.Y)); } } } } } }
public LimnorContextMenuCollection GetMenuData(IClass owner) { return(LimnorContextMenuCollection.GetMenuCollection(owner)); }
protected virtual LimnorContextMenuCollection CreateMenuData() { return(LimnorContextMenuCollection.GetMenuCollection(this.ClassPointer)); }
protected override void OnCreateContextMenu(ContextMenu mnu, Point location) { base.OnCreateContextMenu(mnu, location); if ((this.IsForComponent || IsClassType) && !(this.ClassPointer is HtmlElementUnknown)) { if (IsRootClass) { EventPath ep = this.Parent as EventPath; if (ep != null) { ep.OnCreateContextMenuForRootComponent(mnu, location); mnu.MenuItems.Add("-"); } } LimnorContextMenuCollection menudata = CreateMenuData(); if (menudata != null) { MenuItem mi; MenuItem m0; MenuItem m1; // #region Create Action List <MenuItemDataMethod> methods = menudata.PrimaryMethods; if (methods.Count > 0) { mi = new MenuItemWithBitmap("Create Action", Resources._newMethodAction.ToBitmap()); foreach (MenuItemDataMethod kv in methods) { m0 = new MenuItemWithBitmap(kv.Key, Resources._methodAction.ToBitmap()); m0.Click += new EventHandler(miAction_Click); kv.Location = location; m0.Tag = kv; mi.MenuItems.Add(m0); } methods = menudata.SecondaryMethods; if (methods.Count > 0) { m1 = new MenuItemWithBitmap("More methods", Resources._methods.ToBitmap()); mi.MenuItems.Add(m1); foreach (MenuItemDataMethod kv in methods) { m0 = new MenuItemWithBitmap(kv.Key, Resources._methodAction.ToBitmap()); m0.Click += new EventHandler(miAction_Click); kv.Location = location; m0.Tag = kv; m1.MenuItems.Add(m0); } m0 = new MenuItemWithBitmap("*All methods* =>", Resources._dialog.ToBitmap()); MenuItemDataMethodSelector miAll = new MenuItemDataMethodSelector(m0.Text, menudata); miAll.Location = location; m0.Tag = miAll; m1.MenuItems.Add(m0); m0.Click += new EventHandler(miSetMethods_Click); } // mnu.MenuItems.Add(mi); } #endregion // #region Create Set Property Action List <MenuItemDataProperty> properties = menudata.PrimaryProperties; if (properties.Count > 0) { mi = new MenuItemWithBitmap("Create Set Property Action", Resources._newPropAction.ToBitmap()); foreach (MenuItemDataProperty kv in properties) { m0 = new MenuItemWithBitmap(kv.Key, Resources._propAction.ToBitmap()); m0.Click += new EventHandler(miSetProperty_Click); kv.Location = location; m0.Tag = kv; mi.MenuItems.Add(m0); } properties = menudata.SecondaryProperties; if (properties.Count > 0) { m1 = new MenuItemWithBitmap("More properties", Resources._properties.ToBitmap()); mi.MenuItems.Add(m1); foreach (MenuItemDataProperty kv in properties) { m0 = new MenuItemWithBitmap(kv.Key, Resources._propAction.ToBitmap()); m0.Click += new EventHandler(miSetProperty_Click); kv.Location = location; m0.Tag = kv; m1.MenuItems.Add(m0); } m0 = new MenuItemWithBitmap("*All properties* =>", Resources._dialog.ToBitmap()); m1.MenuItems.Add(m0); MenuItemDataPropertySelector pAll = new MenuItemDataPropertySelector(m0.Text, menudata); pAll.Location = location; m0.Tag = pAll; m0.Click += new EventHandler(miSetProperties_Click); } // mnu.MenuItems.Add(mi); } #endregion // #region Assign Actions List <MenuItemDataEvent> events = menudata.PrimaryEvents; if (events.Count > 0) { mi = new MenuItemWithBitmap("Assign Action", Resources._eventHandlers.ToBitmap()); foreach (MenuItemDataEvent kv in events) { m0 = new MenuItemWithBitmap(kv.Key, Resources._event1.ToBitmap()); m0.Click += new EventHandler(miAssignEvent_Click); kv.Location = location; m0.Tag = kv; mi.MenuItems.Add(m0); EventItem ei = kv as EventItem; if (ei != null) { IEventInfoTree emi = ei.Value as IEventInfoTree; if (emi != null) { IEventInfoTree[] subs = emi.GetSubEventInfo(); LimnorContextMenuCollection.createEventTree(m0, location, kv.Owner, subs, new EventHandler(miAssignEvent_Click)); } } } events = menudata.SecondaryEvents; if (events.Count > 0) { m1 = new MenuItemWithBitmap("More events", Resources._events.ToBitmap()); mi.MenuItems.Add(m1); foreach (MenuItemDataEvent kv in events) { m0 = new MenuItemWithBitmap(kv.Key, Resources._event1.ToBitmap()); m0.Click += new EventHandler(miAssignEvent_Click); kv.Location = location; m0.Tag = kv; m1.MenuItems.Add(m0); EventItem ei = kv as EventItem; if (ei != null) { IEventInfoTree emi = ei.Value as IEventInfoTree; if (emi != null) { IEventInfoTree[] subs = emi.GetSubEventInfo(); LimnorContextMenuCollection.createEventTree(m0, location, kv.Owner, subs, new EventHandler(miAssignEvent_Click)); } } } m0 = new MenuItemWithBitmap("*All events* =>", Resources._dialog.ToBitmap()); m1.MenuItems.Add(m0); MenuItemDataEventSelector eAll = new MenuItemDataEventSelector(m0.Text, location, menudata); m0.Tag = eAll; m0.Click += new EventHandler(miSetEvents_Click); } mnu.MenuItems.Add(mi); } #endregion } } }
protected override LimnorContextMenuCollection CreateMenuData() { return(LimnorContextMenuCollection.GetStaticMenuCollection(this.ClassPointer)); }
protected override void OnCreateContextMenu(ContextMenu mnu, Point location) { if (_menuData == null) { _menuData = GetMenuData(); } if (_menuData != null) { MenuItem mi; MenuItem m0; MenuItem m1; // #region Create Action mi = new MenuItemWithBitmap("Create Action", Resources._newMethodAction.ToBitmap()); List <MenuItemDataMethod> methods = _menuData.PrimaryMethods; foreach (MenuItemDataMethod kv in methods) { m0 = new MenuItemWithBitmap(kv.Key, Resources._methodAction.ToBitmap()); m0.Click += new EventHandler(miAction_Click); kv.Location = location; m0.Tag = kv; mi.MenuItems.Add(m0); } m1 = new MenuItemWithBitmap("More methods", Resources._methods.ToBitmap()); mi.MenuItems.Add(m1); methods = _menuData.SecondaryMethods; foreach (MenuItemDataMethod kv in methods) { m0 = new MenuItemWithBitmap(kv.Key, Resources._methodAction.ToBitmap()); m0.Click += new EventHandler(miAction_Click); kv.Location = location; m0.Tag = kv; m1.MenuItems.Add(m0); } m0 = new MenuItemWithBitmap("*All methods* =>", Resources._dialog.ToBitmap()); MenuItemDataMethodSelector miAll = new MenuItemDataMethodSelector(m0.Text, _menuData); miAll.Location = location; m0.Tag = miAll; m1.MenuItems.Add(m0); m0.Click += new EventHandler(miSetMethods_Click); // mnu.MenuItems.Add(mi); #endregion // #region Create Set Property Action mi = new MenuItemWithBitmap("Create Set Property Action", Resources._newPropAction.ToBitmap()); List <MenuItemDataProperty> properties = _menuData.PrimaryProperties; foreach (MenuItemDataProperty kv in properties) { m0 = new MenuItemWithBitmap(kv.Key, Resources._propAction.ToBitmap()); m0.Click += new EventHandler(miSetProperty_Click); kv.Location = location; m0.Tag = kv; mi.MenuItems.Add(m0); } m1 = new MenuItemWithBitmap("More properties", Resources._properties.ToBitmap()); mi.MenuItems.Add(m1); properties = _menuData.SecondaryProperties; foreach (MenuItemDataProperty kv in properties) { m0 = new MenuItemWithBitmap(kv.Key, Resources._propAction.ToBitmap()); m0.Click += new EventHandler(miSetProperty_Click); kv.Location = location; m0.Tag = kv; m1.MenuItems.Add(m0); } m0 = new MenuItemWithBitmap("*All properties* =>", Resources._dialog.ToBitmap()); m1.MenuItems.Add(m0); MenuItemDataPropertySelector pAll = new MenuItemDataPropertySelector(m0.Text, _menuData); pAll.Location = location; m0.Tag = pAll; m0.Click += new EventHandler(miSetProperties_Click); // mnu.MenuItems.Add(mi); #endregion // #region Assign Actions //hooking events is not done inside a method mi = new MenuItemWithBitmap("Assign Action", Resources._event1.ToBitmap()); List <MenuItemDataEvent> events = _menuData.PrimaryEvents; foreach (MenuItemDataEvent kv in events) { m0 = new MenuItemWithBitmap(kv.Key, Resources._event1.ToBitmap()); m0.Click += new EventHandler(miAssignEvent_Click); m0.Tag = kv; mi.MenuItems.Add(m0); } m1 = new MenuItem("More events"); mi.MenuItems.Add(m1); events = _menuData.SecondaryEvents; foreach (MenuItemDataEvent kv in events) { m0 = new MenuItemWithBitmap(kv.Key, Resources._event1.ToBitmap()); m0.Click += new EventHandler(miAssignEvent_Click); m0.Tag = kv; m1.MenuItems.Add(m0); } m0 = new MenuItem("*All events* =>"); m1.MenuItems.Add(m0); m0.Click += new EventHandler(miSetEvents_Click); mnu.MenuItems.Add(mi); #endregion } }
protected override LimnorContextMenuCollection GetMenuData() { return(LimnorContextMenuCollection.GetMenuCollection(ClassPointer)); }
private void miSetProperties_Click(object sender, EventArgs e) { miSetProperty_Click(sender, e); _menuData = GetMenuData(); }
private void miSetMethods_Click(object sender, EventArgs e) { miAction_Click(sender, e); _menuData = GetMenuData(); }
public MenuItemDataPropertySelector(string key, Point location, LimnorContextMenuCollection menuData) : base(key, location, menuData.Owner) { _menuData = menuData; }