public static void ShowProjectDescription( string projNodeName) { StreamWriter sw; string html, htmlFileName, flowScheme = "", flowSchemeFileName = ""; ProjectDescriptionDialog form = new ProjectDescriptionDialog(); MetaTreeNode mtn = MetaTree.GetNode(projNodeName); string title = (mtn != null ? mtn.Label : projNodeName); html = GetProjectHtmlDescription(projNodeName); if (Lex.IsNullOrEmpty(html)) { html = "Unable to retrieve project description"; } string[] sa = html.Split('\v'); if (sa.Length >= 2) // write flowscheme if exists { html = sa[0]; flowScheme = sa[1]; flowSchemeFileName = ClientDirs.TempDir + @"\FlowScheme" + UIMisc.PopupCount + ".xml"; sw = new StreamWriter(flowSchemeFileName); sw.Write(flowScheme); sw.Close(); } htmlFileName = ClientDirs.TempDir + @"\PopupHtml" + UIMisc.PopupCount + ".htm"; sw = new StreamWriter(htmlFileName); sw.Write(html); sw.Close(); UIMisc.PositionPopupForm(form); form.Text = title; form.Show(); form.WebBrowser.Navigate(htmlFileName); if (flowSchemeFileName != "") { form.OpenFlowSchemeDiagram(flowSchemeFileName); } form.Tabs.SelectedTabPageIndex = 0; UsageDao.LogEvent("ShowProject", projNodeName); return; }
/// <summary> /// Show the specified query in a new PopupResults form /// </summary> /// <param name="qm"></param> /// <param name="html"></param> /// <param name="title"></param> public static void ShowHtml( // navigate browser to a document QueryManager qm, string html, string title) { string uri; int pi; Progress.Hide(); // hide any progress so popup gets focus uri = ClientDirs.TempDir + @"\PopupResults" + "1" + ".htm"; StreamWriter sw = new StreamWriter(uri); sw.Write(html); sw.Close(); PopupResults pr = new PopupResults(); UIMisc.PositionPopupForm(pr); pr.Text = title; QueryResultsControl qrc = pr.QueryResultsControl; qm.LinkMember(qrc); Query q = qm.Query; qrc.BuildResultsPagesTabs(q); for (pi = 0; pi < q.ResultsPages.Pages.Count; pi++) { ResultsPage page = q.ResultsPages.Pages[pi]; for (int vi = 0; vi < page.Views.Count; vi++) { ResultsViewProps view = page.Views[vi]; if (view.ViewType == ResultsViewType.HtmlTable) { view.Title = title; view.ContentUri = uri; // plug in file name for uri } } } pr.Show(); qrc.ConfigureResultsPage(0); // render the first page UIMisc.BringFormToFront(pr); return; }
/// <summary> /// Show popup results in a results window /// </summary> /// <param name="qm"></param> /// <param name="title"></param> public static void Show( QueryManager qm) { string uri; int pi, posDelta = 20; Progress.Hide(); // hide any progress so popup gets focus string title = qm.Query.UserObject.Name; PopupResults pr = new PopupResults(); UIMisc.PositionPopupForm(pr); pr.Text = title; QueryResultsControl qrc = pr.QueryResultsControl; qm.LinkMember(qrc); Query q = qm.Query; qrc.BuildResultsPagesTabs(q); if (q.ResultsPages.Pages.Count <= 1) // hide tabs if only one { qrc.ResultsLabel.Visible = qrc.Tabs.Visible = false; } //qrc.ToolPanel.Visible = false; // hide tools for now (e.g. Edit Query) //if (q.ResultsPages.Pages.Count <= 1) // hide tabs if only one //{ // PanelControl pc = qrc.ResultsPagePanelContainer; // int delta = pc.Top; // pc.Top = 0; // pc.Height += delta; //} pr.Show(); //qrc.ConfigureResultsPage(0); // render the first page qrc.SelectPage(q.InitialBrowsePage); // show the initial browse page UIMisc.BringFormToFront(pr); return; }
/// <summary> /// Open a spotfire link or webplayer url /// Example: https://[server]/SpotfireWeb/ViewAnalysis.aspx?file=/Mobius/Visualizations/MdbAssay_MOBIUS&configurationBlock=CorpId_LIST={1,3,5}; /// Example: https://[server]/SpotfireWeb/ViewAnalysis.aspx?file=/Mobius/Visualizations/SELECT_MOBIUS_DATA_Test&configurationBlock=SQLPARMS="1,3,5,7,9"; /// </summary> /// <param name="link">Open a spotfire link or Webplayer URL </param> /// <param name="browserControl"></param> public static void OpenLink( string link, string title, WebBrowser browserControl) { SpotfireViewProps sl = null; UserObject uo = null; UserObjectType uoType; string url; PopupHtml form; int uoId; if (Lex.IsUndefined(title)) { title = link; } if (Lex.IsUndefined(link)) // prompt for the link to open { string prompt = "Open Spotfire Link "; uo = UserObjectOpenDialog.ShowDialog(UserObjectType.SpotfireLink, prompt); if (uo == null) { return; } link = uo.InternalName; } if (Lex.StartsWith(link, "SPOTFIRELINK_")) // get the link user object { string internalName = link; bool parseOk = UserObject.ParseObjectTypeAndIdFromInternalName(link, out uoType, out uoId); uo = UserObjectDao.Read(uoId); if (uo == null) { throw new Exception("User object not found " + internalName); } sl = SpotfireViewProps.Deserialize(uo.Content); title = uo.Name; url = BuildUrl(sl); if (Lex.IsUndefined(url)) { return; // cancelled } } else { url = link; // assume link is a complete url } if (browserControl == null) // Open the link within a WebBrowser control { form = new PopupHtml(); UIMisc.PositionPopupForm(form); form.Text = title; form.Show(); browserControl = form.WebBrowser; } browserControl.Navigate(url); return; }
/// <summary> /// Format grid and show the data /// </summary> /// <param name="qm"></param> /// <param name="container">Either a QueryResultsControl or a PopupGrid</param> public static void ConfigureAndShow( QueryManager qm, Control container) { QueryResultsControl qrc = null; PopupGrid pug = null; MoleculeGridPageControl page; MoleculeGridPanel panel; MoleculeGridControl grid; Query q = qm.Query; ResultsFormat rf = qm.ResultsFormat; //qm.QueryResultsControl = null; page = new MoleculeGridPageControl(); // Create a new, clean page, panel and grids panel = page.MoleculeGridPanel; grid = panel.SelectBaseGridViewGrid(qm); qm.LinkMember(grid); // link grid into qm grid.ShowCheckMarkCol = q.ShowGridCheckBoxes; DataTableMx dt = qm.DataTable; // save ref to data table grid.DataSource = null; // clear source for header build qm.DataTable = dt; // restore data table grid.FormatGridHeaders(qm.ResultsFormat); // qm.MoleculeGrid.V.Columns.Count should be set for proper cols if (container is QueryResultsControl && rf.NotPopupOutputFormContext) // normal query results { qrc = container as QueryResultsControl; qrc.RemoveExistingControlsFromResultsPageControlContainer(); // properly dispose of any existing DevExpress controls qrc.MoleculeGridPageControl = page; // link query results to this page qrc.ResultsPageControlContainer.Controls.Add(page); page.Dock = DockStyle.Fill; //qm.QueryResultsControl = qrc; // link view set into query manager (used for filtering) if (q.Parent == null) // switch display to browse mode if root query { QbUtil.SetMode(QueryMode.Browse, q); } if (rf.Query.LogicType == QueryLogicType.And) // log grid query by logic type { UsageDao.LogEvent("QueryGridAnd", ""); } else if (rf.Query.LogicType == QueryLogicType.Or) { UsageDao.LogEvent("QueryGridOr", ""); } else if (rf.Query.LogicType == QueryLogicType.Complex) { UsageDao.LogEvent("QueryGridComplex", ""); } } else if (container is PopupGrid || rf.PopupOutputFormContext) // popup results { if (container is PopupGrid) { pug = container as PopupGrid; } else // create a popup { pug = new PopupGrid(qm); pug.Text = q.UserObject.Name; } if (pug.Controls.ContainsKey(panel.Name)) // remove any existing panel control { pug.Controls.RemoveByKey(panel.Name); } pug.Controls.Add(panel); pug.MoleculeGridPanel = panel; // restore direct link as well grid.ScaleView(q.ViewScale); UIMisc.PositionPopupForm(pug); pug.Text = q.UserObject.Name; pug.Show(); } else { throw new Exception("Invalid container type: " + container.GetType()); } // Set the DataSource to the real DataTable panel.SetDataSource(qm, dt); return; }