Ejemplo n.º 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);
                }
            }
        }
Ejemplo n.º 2
0
        private void miSetProperty_Click(object sender, EventArgs e)
        {
            MenuItemDataProperty data = (MenuItemDataProperty)(((MenuItem)sender).Tag);
            MethodDiagramViewer  mv   = MethodViewer.GetCurrentViewer();
            ActionClass          act  = OnCreateSetPropertyAction(data);

            if (act != null)
            {
                if (!(this.ClassPointer is LocalVariable))
                {
                    if (MethodEditContext.IsWebPage)
                    {
                        if (!MethodEditContext.CheckAction(act, this.FindForm()))
                        {
                            return;
                        }
                    }
                }
                act.SetScopeMethod(_methodClass);
                int x = (mv.Width / 4 - 20) / 2;
                int y = (mv.Height / 4 - 20) / 2;
                if (x < 30)
                {
                    x = 30;
                }
                if (y < 30)
                {
                    y = 30;
                }
                mv.AddNewAction(act, new Point(x, y));
            }
        }
Ejemplo n.º 3
0
        private void checkNameChange(object sender, EventArgs e)
        {
            EventArgNameChange anc = e as EventArgNameChange;

            if (anc != null)
            {
                if (string.IsNullOrEmpty(anc.NewName))
                {
                    MessageBox.Show(this.FindForm(), "The new name cannot be empty", "Change variable name", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    IList <MethodDiagramViewer> l = MethodViewer.GetViewer();
                    foreach (MethodDiagramViewer mv in l)
                    {
                        if (mv.IsNameUsed(anc.NewName))
                        {
                            anc.Cancel = true;
                            MessageBox.Show(this.FindForm(), "The new name is in use", "Change variable name", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }
                    _name = anc.NewName;
                    SetLabelText(anc.NewName);
                    MethodViewer.Changed = true;
                }
            }
        }
Ejemplo n.º 4
0
        void _editBox_FinishEdit(object sender, EventArgs e)
        {
            string newName = _editBox.TextBoxText;

            if (!string.IsNullOrEmpty(newName))
            {
                if (newName != _name)
                {
                    IList <MethodDiagramViewer> l = MethodViewer.GetViewer();
                    foreach (MethodDiagramViewer dv in l)
                    {
                        if (dv.IsNameUsed(newName))
                        {
                            _editBox.TextBoxText = _name;
                            MessageBox.Show(this.FindForm(), string.Format("The name, {0}, is in use", newName), "Rename", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            _editBox.SetTextFocus();
                            return;
                        }
                        else
                        {
                            ChangeName(newName);
                        }
                        dv.Changed = true;
                    }
                }
            }
            _editBox.Visible = false;
            ShowLabel(true);
        }
Ejemplo n.º 5
0
        public void ChangeName(string newName)
        {
            LocalVariable lv = this.ClassPointer as LocalVariable;

            _name = newName;
            lv.SetName(_name);
            SetLabelText(_name);
            IList <MethodDiagramViewer> lst = MethodViewer.GetViewer();

            foreach (MethodDiagramViewer dv in lst)
            {
                for (int i = 0; i < dv.Controls.Count; i++)
                {
                    ActionViewerConstructor avc = dv.Controls[i] as ActionViewerConstructor;
                    if (avc != null)
                    {
                        AB_Constructor     bc  = avc.ActionObject as AB_Constructor;
                        ConstructorPointer cp  = bc.ActionData.ActionMethod as ConstructorPointer;
                        LocalVariable      lv2 = cp.Owner as LocalVariable;
                        if (lv2.IsSameObjectRef(lv))
                        {
                            lv2.SetName(_name);
                            avc.ActionName = "Create " + _name;
                            break;
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
 private void assignAction(IEvent ep)
 {
     if (ep != null)
     {
         MethodDiagramViewer mv = MethodViewer.GetCurrentViewer();
         mv.AddAssignActionsAction(ep);
     }
 }
Ejemplo n.º 7
0
        private void miAssignEvent_Click(object sender, EventArgs e)
        {
            MenuItemDataEvent   data = (MenuItemDataEvent)(((MenuItem)sender).Tag);
            MethodDiagramViewer mv   = MethodViewer.GetCurrentViewer();
            IEvent ep = data.CreateEventPointer(data.Owner);

            if (ep != null)
            {
                assignAction(ep);
            }
        }
Ejemplo n.º 8
0
        private void createNewAction(MenuItemDataMethod data)
        {
            ILimnorDesignPane dp  = Designer.Project.GetTypedData <ILimnorDesignPane>(Designer.ObjectMap.ClassId);
            IAction           act = OnCreateAction(data, dp);

            if (act != null)
            {
                if (!(this.ClassPointer is LocalVariable))
                {
                    if (MethodEditContext.IsWebPage)
                    {
                        if (!MethodEditContext.CheckAction(act, this.FindForm()))
                        {
                            return;
                        }
                    }
                }
                MethodDiagramViewer mv = MethodViewer.GetCurrentViewer();
                act.ScopeMethod  = _methodClass;
                act.ActionHolder = MethodViewer.ActionsHolder;
                double x0, y0;
                ComponentIconEvent.CreateRandomPoint((double)((mv.Width - 20) / 2), out x0, out y0);
                if (x0 < 0)
                {
                    x0 = 10;
                }
                if (y0 < 0)
                {
                    y0 = 10;
                }
                ActionViewer av = MethodViewer.AddNewAction(act, new Point((mv.Width - 20) / 2 + (int)x0, (mv.Height - 20) / 2 + (int)y0));
                if (av.Parent == null)
                {
#if DEBUG
                    MessageBox.Show("Adding action viewer failed (1)");
#endif
                    mv.Controls.Add(av);
                }
                else
                {
                }
            }
        }
Ejemplo n.º 9
0
        void miNewInstance_Click(object sender, EventArgs e)
        {
            MethodDiagramViewer mv = MethodViewer.GetCurrentViewer();

            if (mv != null)
            {
                MemberComponentId     lv  = this.ClassPointer as MemberComponentId;
                ActionAssignComponent act = new ActionAssignComponent(MethodViewer.Method.RootPointer);
                act.ActionOwner = lv;
                act.ActionId    = (UInt32)(Guid.NewGuid().GetHashCode());
                act.ActionName  = MethodViewer.RootClass.CreateNewActionName("Create" + lv.ObjectType.Name);
                Point p = mv.PointToClient(System.Windows.Forms.Cursor.Position);
                if (p.X < 0)
                {
                    p.X = 10;
                }
                if (p.Y < 0)
                {
                    p.Y = 10;
                }
                act.ValidateParameterValues();
                mv.AddNewAction(act, p);
            }
        }
Ejemplo n.º 10
0
        void miDelete_Click(object sender, EventArgs e)
        {
            LocalVariable  lv   = this.ClassPointer as LocalVariable;
            List <IAction> acts = lv.RootPointer.GetRelatedActions(lv.MemberId);
            bool           bOK  = (acts.Count == 0);

            if (bOK)
            {
                MethodDesignerHolder mdh = MethodViewer;
                if (mdh != null)
                {
                    BranchList bl = mdh.ActionList;
                    if (bl != null)
                    {
                        Dictionary <UInt32, IAction> actions = new Dictionary <uint, IAction>();
                        bl.GetActionsUseLocalVariable(lv.MemberId, actions);
                        if (actions.Count > 0)
                        {
                            foreach (KeyValuePair <UInt32, IAction> kv in actions)
                            {
                                acts.Add(kv.Value);
                            }
                            bOK = false;
                        }
                    }
                }
            }
            if (!bOK)
            {
                List <ObjectTextID> objs = new List <ObjectTextID>();
                foreach (IAction a in acts)
                {
                    objs.Add(new ObjectTextID("Action", "", a.Display));
                }
                dlgObjectUsage dlg = new dlgObjectUsage();
                dlg.LoadData("There are actions using this object. These actions must be removed before this object can be removed.", "Remove object", objs);
                //currently no OK will be returned
                bOK = (dlg.ShowDialog(this.FindForm()) == DialogResult.OK);
                if (bOK)
                {
                    IList <MethodDiagramViewer> l = MethodViewer.GetViewer();
                    foreach (MethodDiagramViewer mv in l)
                    {
                        //remove local/constructor actions belong to it
                        List <IComponent> avList = new List <IComponent>();
                        for (int i = 0; i < mv.Controls.Count; i++)
                        {
                            ActionViewer av = mv.Controls[i] as ActionViewer;
                            if (av != null)
                            {
                                foreach (IAction a in acts)
                                {
                                    if (av.ActionObject.ContainsActionId(a.ActionId))
                                    {
                                        avList.Add(av);
                                    }
                                }
                            }
                        }
                        if (avList.Count > 0)
                        {
                            mv.DeleteComponents(avList.ToArray());
                        }
                    }
                }
            }
            if (bOK)
            {
                MethodViewer.RemoveLocalVariable(this);
                RemoveLabel();
                Control p = this.Parent;
                if (p != null)
                {
                    p.Controls.Remove(this);
                }
                MethodViewer.Changed = true;
            }
        }