コード例 #1
0
ファイル: LibraryNode.cs プロジェクト: laszlo-kiss/Dataphor
        private void UpgradesClicked(object sender, EventArgs args)
        {
            IWindowsFormInterface form =
                Dataphoria.FrontendSession.LoadForm
                (
                    null,
                    @".Frontend.Form('Frontend', 'UpgradeBrowse')",
                    null
                );

            try
            {
                form.HostNode.Open();
                Frontend.Client.ISource source = (Frontend.Client.ISource)form.FindNode("Libraries");
                using (DAE.Runtime.Data.Row row = new DAE.Runtime.Data.Row(source.DataView.Process.ValueManager, source.DataView.TableType.RowType))
                {
                    row["Name"] = LibraryName;
                    source.DataView.FindKey(row);
                }
                form.ShowModal(Frontend.Client.FormMode.None);
            }
            finally
            {
                form.HostNode.Dispose();
            }
        }
コード例 #2
0
 public override void DragDrop(DragEventArgs args)
 {
     Frontend.Client.Windows.IWindowsFormInterface form = Dataphoria.FrontendSession.LoadForm(null, AddDocument(), new Frontend.Client.FormInterfaceHandler(SetInsertOpenState));
     try
     {
         DocumentData            document        = args.Data as DocumentData;
         Frontend.Client.ISource librariesSource = ((Frontend.Client.IFrame)form.FindNode("Frontend.ApplicationLibraries_ApplicationsFrame")).FrameInterfaceNode.MainSource;
         if (document != null)
         {
             form.MainSource["Main.ID"].AsString            = document.Node.DocumentName;
             form.MainSource["Main.Description"].AsString   = document.Node.DocumentName;
             form.MainSource["Main.StartDocument"].AsString = String.Format(".Frontend.Form('{0}', '{1}')", document.Node.LibraryName.Replace("'", "''"), document.Node.DocumentName.Replace("'", "''"));
             librariesSource.Insert();
             librariesSource["Main.Library_Name"].AsString = document.Node.LibraryName;
             librariesSource.Post();
         }
         else
         {
             TableData table = args.Data as TableData;
             if (table != null)
             {
                 form.MainSource["Main.ID"].AsString            = table.Node.ObjectName;
                 form.MainSource["Main.Description"].AsString   = table.Node.ObjectName;
                 form.MainSource["Main.StartDocument"].AsString = String.Format(".Frontend.Derive('{0}')", table.Node.ObjectName.Replace("'", "''"));
                 librariesSource.Insert();
                 librariesSource["Main.Library_Name"].AsString = ((SchemaListNode)table.Node.Parent).LibraryName;
                 librariesSource.Post();
             }
         }
         if (form.ShowModal(Frontend.Client.FormMode.Insert) != DialogResult.OK)
         {
             throw new AbortException();
         }
         BaseNode node = CreateChildNode(form.MainSource.DataView.ActiveRow);
         AddNode(node);
         TreeView.SelectedNode = node;
     }
     finally
     {
         form.HostNode.Dispose();
     }
 }
コード例 #3
0
ファイル: Node.cs プロジェクト: laszlo-kiss/Dataphor
        protected virtual void Drop()
        {
            // Confirm the deletion
            Frontend.Client.Windows.IWindowsFormInterface form =
                Dataphoria.FrontendSession.LoadForm
                (
                    null,
                    ".Frontend.Form('Frontend', 'DropDependents')"
                );
            try
            {
                Frontend.Client.ISource source = (Frontend.Client.ISource)form.FindNode("Dependents");
                source.Expression =
                    String.Format
                    (
                        @"	
							DependentObjects('{0}')
								over {{ Level, Sequence, Object_Description }}
								rename {{ Object_Description Description }}
								order by {{ Level desc, Sequence }}
						"                        ,
                        ObjectName
                    );
                source.Enabled = true;
                if (form.ShowModal(Frontend.Client.FormMode.Query) != DialogResult.OK)
                {
                    throw new AbortException();
                }
            }
            finally
            {
                form.HostNode.Dispose();
            }

            // Emit and execute the drop script
            using (DAE.Runtime.Data.Scalar script = (DAE.Runtime.Data.Scalar)Dataphoria.EvaluateQuery(GetScriptDropExpression()))
                Dataphoria.ExecuteScript(script.AsString);

            ParentList.Refresh();
        }
コード例 #4
0
        public static string Execute(DocumentExpression documentExpression)
        {
            IDataphoria dataphoria = Program.DataphoriaInstance;

            Frontend.Client.Windows.IWindowsFormInterface form = dataphoria.FrontendSession.LoadForm(null, ".Frontend.Form('Frontend', 'DocumentExpressionEditor')", new Frontend.Client.FormInterfaceHandler(SetEditOpenState));
            try
            {
                Frontend.Client.INotebook notebook = (Frontend.Client.INotebook)form.FindNode("Notebook");
                Frontend.Client.ISource   source   = form.MainSource;
                switch (documentExpression.Type)
                {
                case DocumentType.Document:
                    notebook.ActivePage = (Frontend.Client.INotebookPage)form.FindNode("nbpLoad");
                    source.DataView.Fields["Library_Name"].AsString  = documentExpression.DocumentArgs.LibraryName;
                    source.DataView.Fields["Document_Name"].AsString = documentExpression.DocumentArgs.DocumentName;
                    break;

                case DocumentType.Derive:
                    notebook.ActivePage = (Frontend.Client.INotebookPage)form.FindNode("nbpDerive");
                    form.MainSource.DataView["Query"].AsString      = documentExpression.DeriveArgs.Query;
                    form.MainSource.DataView["PageType"].AsString   = documentExpression.DeriveArgs.PageType;
                    form.MainSource.DataView["MKN"].AsString        = documentExpression.DeriveArgs.MasterKeyNames;
                    form.MainSource.DataView["DKN"].AsString        = documentExpression.DeriveArgs.DetailKeyNames;
                    form.MainSource.DataView["Elaborate"].AsBoolean = documentExpression.DeriveArgs.Elaborate;
                    break;

                default:
                    notebook.ActivePage = (Frontend.Client.INotebookPage)form.FindNode("nbpOther");
                    form.MainSource.DataView["Expression"].AsString = documentExpression.Expression;
                    break;
                }
                if (form.ShowModal(Frontend.Client.FormMode.Edit) != DialogResult.OK)
                {
                    throw new AbortException();
                }
                if ((notebook.ActivePage.Name) == "nbpLoad")
                {
                    documentExpression.Type = DocumentType.Document;
                    documentExpression.DocumentArgs.LibraryName  = form.MainSource.DataView["Library_Name"].AsString;
                    documentExpression.DocumentArgs.DocumentName = form.MainSource.DataView["Document_Name"].AsString;
                }
                else if ((notebook.ActivePage.Name) == "nbpDerive")
                {
                    documentExpression.Type                      = DocumentType.Derive;
                    documentExpression.DeriveArgs.Query          = form.MainSource.DataView["Query"].AsString;
                    documentExpression.DeriveArgs.PageType       = form.MainSource.DataView["PageType"].AsString;
                    documentExpression.DeriveArgs.MasterKeyNames = form.MainSource.DataView["MKN"].AsString;
                    documentExpression.DeriveArgs.DetailKeyNames = form.MainSource.DataView["DKN"].AsString;
                    documentExpression.DeriveArgs.Elaborate      = form.MainSource.DataView["Elaborate"].AsBoolean;
                }
                else if ((notebook.ActivePage.Name) == "nbpOther")
                {
                    documentExpression.Type       = DocumentType.Other;
                    documentExpression.Expression = form.MainSource.DataView["Expression"].AsString;
                }
                return(documentExpression.Expression);
            }
            finally
            {
                form.Dispose();
            }
        }