Esempio n. 1
0
        public void InitProcedure(DBItem owner, StageProcedure param)
        {
            if (!(param.Procedure is DBProcedure proc) || param.ProcedureType != StageParamProcudureType.Manual)
            {
                return;
            }

            string name = "procedure" + proc.Name;

            if (proc.ProcedureType == ProcedureTypes.Query)
            {
                DockPage page = dock.GetPage(name);
                if (page == null)
                {
                    page = dock.Put(new PQueryView
                    {
                        Name      = name,
                        Text      = param.Name == null || param.Name.Length == 0 ? proc.ToString() : param.Name,
                        Document  = document,
                        Procedure = proc
                    }, DockType.Content);
                }
                page.Tag = owner;
            }
            Type t = proc.ProcedureType == ProcedureTypes.Assembly || proc.ProcedureType == ProcedureTypes.Source ? proc.GetObjectType() : null;

            if (t != null && !TypeHelper.IsBaseType(t, typeof(Window)) && TypeHelper.IsBaseType(t, typeof(Widget)))
            {
                DockPage page = dock.GetPage(name);
                if (page == null)
                {
                    var control = (Widget)EmitInvoker.CreateObject(t, true);
                    control.Name = name;
                    if (control is IText)
                    {
                        ((IText)control).Text = param.Name == null || param.Name.Length == 0 ? proc.ToString() : param.Name;
                    }
                    page = dock.Put(control, DockType.Content);
                }
                page.Tag = owner;
            }
            else
            {
                if (!(toolProcedures.DropDown?.Items[name] is MenuItemProcedure item))
                {
                    item = new MenuItemProcedure(proc)
                    {
                        Name = name
                    };
                    item.Click += ProcedureItemClick;
                    toolProcedures.DropDown.Items.Add(item);
                }
                item.Tag = owner;
            }
        }
Esempio n. 2
0
        private void ContextAddItemClicked(object sender, ToolItemEventArgs e)
        {
            var item = e.Item;

            DBItem row = null;
            object tag = tree.SelectedDBItem;

            if (item.Name == "Work")
            {
                row = new Work();
            }
            else if (item.Name == "Work Stage")
            {
                row = new Stage();
                if (tag is Work)
                {
                    ((Stage)row).Work = (Work)tag;
                }
            }
            else if (item.Name == "Stage Parameter")
            {
                row = new StageParam();
                if (tag is Stage)
                {
                    ((StageParam)row).Stage = (Stage)tag;
                }
            }
            else if (item.Name == "Stage Procedure")
            {
                row = new StageProcedure();
                if (tag is Stage)
                {
                    ((StageParam)row).Stage = (Stage)tag;
                }
            }
            else if (item.Name == "Stage Reference")
            {
                row = new StageReference();
                if (tag is Stage)
                {
                    ((StageParam)row).Stage = (Stage)tag;
                }
            }
            else if (item.Name == "Group")
            {
                row = new UserGroup();
            }
            else if (item.Name == "Template")
            {
                row = new Template();
                if (tag is Template)
                {
                    ((Template)row).Parent = (Template)tag;
                }
            }
            else if (item.Name == "Template Data")
            {
                row = new TemplateData();
                if (tag is Template)
                {
                    ((TemplateData)row).Template = (Template)tag;
                }
            }
            else if (item.Name == "User")
            {
                row = new User();
                if (tag is Department)
                {
                    ((User)row).Department = (Department)tag;
                }
                else if (tag is Position)
                {
                    ((User)row).Position = (Position)tag;
                }
                //row.Access.Create
                foreach (var access in row.Access.Items.ToList())
                {
                    row.Access.Add(access.Group, access.Access & ~AccessType.Create);
                }
            }
            else if (item.Name == "Scheduler")
            {
                row = new Scheduler();
                if (tag is DBProcedure)
                {
                    ((Scheduler)row).Procedure = (DBProcedure)tag;
                }
            }
            ShowItem(row);
        }