Пример #1
0
        private void miSetEvents_Click(object sender, EventArgs e)
        {
            MethodDiagramViewer   mv     = MethodViewer.GetCurrentViewer();
            ILimnorDesignerLoader loader = mv.Loader;
            DlgSelectEvent        dlg    = new DlgSelectEvent();

            dlg.LoadData(_menuData);
            DialogResult ret = dlg.ShowDialog(this.FindForm());

            if (dlg.FrequentlyUsedMethodsChanged)
            {
                _menuData.RemoveMenuCollection();
                loader.DesignPane.ResetContextMenu();
            }
            if (ret == DialogResult.OK)
            {
                IEvent ei = dlg.ReturnEventInfo;
                if (ei != null)
                {
                    EventPointer ep = ei as EventPointer;
                    if (ep == null)
                    {
                        EventClass ec = ei as EventClass;
                        if (ec != null)
                        {
                            EventClass ec2 = (EventClass)ec.Clone();
                            ec2.SetHolder(this.ClassPointer);
                            CustomEventPointer cep = new CustomEventPointer(ec2, this.ClassPointer);
                            ei = cep;
                        }
                    }
                    assignAction(ei);
                }
            }
        }
Пример #2
0
        private void btOK_Click(object sender, EventArgs e)
        {
            TreeNodeObject ne = treeViewAll.SelectedNode as TreeNodeObject;

            if (ne != null)
            {
                IProperty ep = ne.OwnerPointer as IProperty;
                ReturnPropertyInfo = ep;
            }
            else
            {
                ReturnPropertyInfo = null;
            }
            if (FrequentlyUsedMethodsChanged)
            {
                XmlNode nodeType    = _menus.GetTypeNode();
                XmlNode nodeMethods = nodeType.SelectSingleNode(LimnorContextMenuCollection.XML_Properties);
                if (nodeMethods == null)
                {
                    nodeMethods = nodeType.OwnerDocument.CreateElement(LimnorContextMenuCollection.XML_Properties);
                    nodeType.AppendChild(nodeMethods);
                }
                nodeMethods.RemoveAll();
                XmlNode nodePrimary = nodeMethods.OwnerDocument.CreateElement(LimnorContextMenuCollection.XML_Primary);
                nodeMethods.AppendChild(nodePrimary);
                for (int i = 0; i < lstP.Items.Count; i++)
                {
                    XmlNode node = nodeMethods.OwnerDocument.CreateElement(LimnorContextMenuCollection.XML_Property);
                    node.InnerText = lstP.Items[i].ToString();
                    nodePrimary.AppendChild(node);
                }
                XmlNode nodeSecondary = nodeMethods.OwnerDocument.CreateElement(LimnorContextMenuCollection.XML_Secondary);
                nodeMethods.AppendChild(nodeSecondary);
                for (int i = 0; i < lstS.Items.Count; i++)
                {
                    XmlNode node = nodeMethods.OwnerDocument.CreateElement(LimnorContextMenuCollection.XML_Property);
                    node.InnerText = lstS.Items[i].ToString();
                    nodeSecondary.AppendChild(node);
                }
                try
                {
                    nodeMethods.OwnerDocument.Save(_menus.FilePath);
                    _menus.RemoveMenuCollection();
                }
                catch (Exception err)
                {
                    MessageBox.Show(this, err.Message, "Error saving frequently used properties", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    FrequentlyUsedMethodsChanged = false;
                }
            }
            //===============
            if (ReturnPropertyInfo == null)
            {
                this.DialogResult = DialogResult.Abort;
            }
            else
            {
                this.DialogResult = DialogResult.OK;
            }
        }
        public override bool ExecuteMenuCommand(LimnorProject project, IClass holder, XmlNode node, MultiPanes pane, IMethod scopeMethod, IActionsHolder actsHolder)
        {
            DlgSelectEvent dlg = new DlgSelectEvent();

            dlg.LoadData(_menuData);
            DialogResult ret = dlg.ShowDialog(pane.FindForm());

            if (dlg.FrequentlyUsedMethodsChanged)
            {
                _menuData.RemoveMenuCollection();
                pane.Loader.DesignPane.ResetContextMenu();
            }
            if (ret == DialogResult.OK)
            {
                IEvent ei = dlg.ReturnEventInfo;
                if (ei != null)
                {
                    EventPointer ep = ei as EventPointer;
                    if (ep != null)
                    {
                        return(pane.AssignActions(ep, pane.FindForm()));
                    }
                    else
                    {
                        EventClass ec = ei as EventClass;
                        if (ec != null)
                        {
                            EventClass ec2 = (EventClass)ec.Clone();
                            ec2.SetHolder(holder);
                            CustomEventPointer cep = new CustomEventPointer(ec2, this.Owner);
                            return(pane.AssignActions(cep, pane.FindForm()));
                        }
                    }
                }
            }
            return(false);
        }