Ejemplo n.º 1
0
        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 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
                }
            }
        }