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; } }
private async void LoadPage(DockPage page) { if (page == null || document == null) { return; } if (page.Widget is IReadOnly) { ((IReadOnly)page.Widget).ReadOnly = state == DocumentEditorState.Readonly || !document.Access.GetFlag(AccessType.Update, GuiEnvironment.User); } else { page.Widget.Sensitive = state == DocumentEditorState.Edit && document.Access.GetFlag(AccessType.Update, GuiEnvironment.User); } if (page.Widget is IDocument) { ((IDocument)page.Widget).Document = document; } if (page.Widget is IExecutable) { await((IExecutable)page.Widget).Execute(new ExecuteArgs(document)); } if (page.Widget is TableEditor) { ((TableEditor)page.Widget).OwnerRow = document; } if (document.Attached) { if (page.Widget is ILoader) { ((ILoader)page.Widget).Loader.LoadAsync(); } else if (page.Widget is ISync) { await((ISync)page.Widget).SyncAsync(); } } }
public Result OnStartup(UIControlledApplication application) { var container = CommandContainer.Instance(); if (container.Valid) { container.BuildRibbon(application); } var dPid = new DockablePaneId(DockConstants.Id); if (!DockablePane.PaneIsRegistered(dPid)) { var state = new DockablePaneState { DockPosition = DockPosition.Right }; var element = new DockPage(); application.RegisterDockablePane(DockConstants.Id, DockConstants.Name, element, state); } return(Result.Succeeded); }