コード例 #1
0
        void IFlow.ShowNodesView(ShowNodesEventParameter p)
        {
            CIIPXpoState obj;
            if (p.Shape == null)
            {

                obj = (CIIPXpoState)(this as IFlow).CreateNode((int)p.MouseClickPoint.X, (int)p.MouseClickPoint.Y, 64, 64, "", "");
            }
            else
            {
                obj = p.SelectedNode as CIIPXpoState;
            }

            if (obj == null)
                throw new Exception("û��״̬����");

            var view = p.Application.CreateDetailView(p.ObjectSpace, obj, false);
            p.ViewParameter.CreatedView = view;
            p.ViewParameter.TargetWindow = TargetWindow.NewModalWindow;

            var dc = new DialogController();
            dc.Accepting += (s, p1) =>
            {
                var sp = p.Shape;
                if (p.Shape == null)
                {
                    sp = p.CreateShape(obj);
                }

                p.UpdateShape(obj, sp);
                Flow.States.Add(obj);
                obj.Save();
                if (Flow.StartState == null)
                {
                    Flow.StartState = obj;
                }
            };

            dc.Cancelling += (s, p1) =>
            {
                obj.Delete();
                p.DeletSelectedNode();
                //_diagram.DeleteSelectedItems();
            };
            dc.SaveOnAccept = false;
            p.ViewParameter.Controllers.Add(dc);
        }
コード例 #2
0
ファイル: Flow.cs プロジェクト: ZixiangBoy/CIIP
        public void ShowNodesView(ShowNodesEventParameter para)
        {
            var listViewId = para.Application.FindListViewId(typeof(FormInfo));

            NonPersistentCollectionSource cs = CreateCollectionSource(para);
            var p = para;
            p.ViewParameter.CreatedView = para.Application.CreateListView(listViewId, cs, false);

            p.ViewParameter.CreatedView.Caption = "选择单据";

            p.ViewParameter.NewWindowTarget = NewWindowTarget.Separate;
            p.ViewParameter.TargetWindow = TargetWindow.NewModalWindow;
            var dc = new DialogController();

            dc.SaveOnAccept = false;

            dc.AcceptAction.SelectionDependencyType = para.SingleSelect
                ? SelectionDependencyType.RequireSingleObject
                : SelectionDependencyType.RequireMultipleObjects;

            dc.Accepting += (s, e1) =>
            {
                var x = 20;
                var y = 20;
                if (e1.AcceptActionArgs.SelectedObjects.Count == 1)
                {
                    x = (int)para.MouseClickPoint.X;
                    y = (int)para.MouseClickPoint.Y;
                }

                var i = 0;
                foreach (var item in e1.AcceptActionArgs.SelectedObjects)
                {
                    var selected = (item as FormInfo);
                    if (selected != null)
                    {
                        //创建一个结点
                        var node = (this as IFlow).CreateNode(x, y, 64, 64, selected.FullName, selected.Caption);
                        object single = null;
                        if (para.Shape == null)
                        {
                            single = para.CreateShape(node);
                            //new DiagramShapeEx(SDLDiagramShapes.Procedure, node.X, node.Y, node.Width,
                            //    node.Height);
                            //single.Image = node.GetImage();
                            //_diagram.Items.Add(single);
                            //_diagram.SelectItem(single);
                        }
                        else
                        {
                            single = para.Shape;
                        }
                        para.UpdateShape(node, single);

                        //single.Content = node.Caption;

                        //single.Tag = node;
                    }
                    x += 200;
                    i++;
                    if (i % 5 == 0)
                    {
                        x = 20;
                        y += 200;
                    }
                }
            };
            para.ViewParameter.Controllers.Add(dc);
        }
コード例 #3
0
ファイル: NavigationMenu.cs プロジェクト: ZixiangBoy/CIIP
        public void ShowNodesView(ShowNodesEventParameter p)
        {
            if (!IsDesignMode)
            {
                var mi = (p.SelectedNode as NavigationMenuItem);
                if (mi != null)
                    p.DoShowNavigationItem(mi.NavigationItemPath.Path);
                return;
            }
            NavigationMenuItem obj;
            if (p.Shape == null)
            {
                obj =
                    (NavigationMenuItem)
                        (this as IFlow).CreateNode((int) p.MouseClickPoint.X, (int) p.MouseClickPoint.Y, 64, 64, "", "");
                //û�ж���ѡ�񣬵��������б��ѡ��ڵ㡣����ڵ������Ӽ��ģ����Ӽ���ʾ����������Ӽ���û���ӽ��ģ�ֱ����ʾ
                //����������view�趨�ġ�
            }
            else
            {
                obj = p.SelectedNode as NavigationMenuItem;
                //���б༭������
            }

            if (obj == null)
                throw new Exception("û��״̬����");

            var view = p.Application.CreateDetailView(p.ObjectSpace, obj, false);
            p.ViewParameter.CreatedView = view;
            p.ViewParameter.TargetWindow = TargetWindow.NewModalWindow;

            var dc = new DialogController();
            dc.Accepting += (s, p1) =>
            {
                var sp = p.Shape;
                if (p.Shape == null)
                {
                    sp = p.CreateShape(obj);
                }
                this.Nodes.Add(obj);
                p.UpdateShape(obj, sp);

                obj.Save();
            };

            dc.Cancelling += (s, p1) =>
            {
                if (p.Shape == null)
                {
                    obj.Delete();
                    p.DeletSelectedNode();
                }
                //_diagram.DeleteSelectedItems();
            };
            dc.SaveOnAccept = false;
            p.ViewParameter.Controllers.Add(dc);
        }