Exemple #1
0
        /// <summary>
        /// Add conditional formatting summary view to list of views if one doesn't exist & query contains conditional formatting
        /// </summary>
        /// <param name="q"></param>

        public static void AddCfViewAsNeeded(Query query)
        {
            ResultsPages     pages;
            ResultsPage      page;
            ResultsViewProps view;
            CfSummaryView    cfView;

            if (!query.ContainsSelectedCondFormatting)
            {
                return;
            }

            pages = query.Root.ResultsPages;
            if (pages == null || pages.Pages == null)
            {
                return;
            }
            for (int ci = 0; ci < pages.Pages.Count; ci++)
            {
                view = pages[ci].FirstView;
                if (view == null)
                {
                    continue;
                }
                if (view.ViewType == ResultsViewType.SecondaryQuery)
                {
                    return;
                }
            }

            ResultsPages.AddNewPageAndView(query, ResultsViewType.SecondaryQuery, null, out page, out view);
            cfView = page.FirstView as CfSummaryView;

            return;
        }
Exemple #2
0
/// <summary>
/// Add new page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>

        private void NewPageMenuItem_Click(object sender, EventArgs e)
        {
            ResultsPage page = ResultsPages.AddNewPage(BaseQuery);

            AddResultsPageTabPage(page);            // add tab for page
            ConfigureResultsPage(page);             // render the empty page
            return;
        }
Exemple #3
0
/// <summary>
/// Remove a subquery from its parent and optionally any associated views
/// </summary>
/// <param name="sq"></param>
/// <param name="removeResultsViews"></param>
/// <param name="removeResultsPagesIfEmpty"></param>

        public static void RemoveSubQuery(
            Query sq,
            bool removeResultsViews,
            bool removeResultsPagesIfEmpty)
        {
            if (sq == null)
            {
                throw new Exception("Null subquery");
            }
            Query pq = sq.Parent;

            if (pq == null || !pq.Subqueries.Contains(sq))
            {
                throw new Exception("Subquery not contained in query");
            }
            sq.Parent = null;

            pq.Subqueries.Remove(sq);             // remove subquery from query

            if (!removeResultsViews)
            {
                return;
            }

            ResultsPages rPages = pq.ResultsPages;             // overall results pages

            sq.ResultsPages = null;

            List <ResultsViewProps> rViews = sq.GetResultsViews();

            if (rViews != null)             // any views for subquery?
            {
                for (int vi = 0; vi < rViews.Count; vi++)
                {                 // remove any views from overall query ResultsPages
                    ResultsViewProps rv = rViews[vi];
                    if (rv == null || rv.ResultsPage == null)
                    {
                        continue;
                    }
                    ResultsPage rp = rv.ResultsPage;
                    if (rp == null || !rp.Views.Contains(rv))
                    {
                        continue;
                    }
                    rp.Views.Remove(rv);

                    if (removeResultsPagesIfEmpty && rp.Views.Count == 0 &&                     // remove page if empty & requested
                        rPages != null && rPages.Pages != null && rPages.Pages.Contains(rp))
                    {
                        rPages.Remove(rp);
                    }
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Add a new empty results page
        /// </summary>

        void AddPage()
        {
            DialogResult = DialogResult.OK;             // close the selection menu
            Hide();
            SessionManager.ActivateShell();

            ResultsPage page = ResultsPages.AddNewPage(Qm.Query);

            Qrc.AddResultsPageTabPage(page);            // add tab for page
            Qrc.ConfigureResultsPage(page);             // render the empty page

            return;
        }
Exemple #5
0
/// <summary>
/// SetCurrentPageTabTitleAndImage
/// </summary>

        internal void SetCurrentPageTabTitleAndImage()
        {
            ResultsPages pages = BaseQuery.ResultsPages;

            if (pages == null || pages.Pages.Count < Tabs.SelectedTabPageIndex)
            {
                return;
            }
            ResultsPage page = pages[Tabs.SelectedTabPageIndex];

            SetCurrentTabTitle(page.ActiveTitle);
            SetCurrentTabImage(page.PageHeaderImage);
            return;
        }
Exemple #6
0
        /// <summary>
        /// Remove specified tab and page
        /// </summary>
        /// <param name="qti"></param>

        public void RemoveTabAndPage(int qti)
        {
            int newTab = qti - 1;             // carefully remove the tab page

            if (newTab < 0)
            {
                newTab = qti + 1;
            }
            Tabs.SelectedTabPageIndex = newTab;      // move to another tab
            Tabs.TabPages.RemoveAt(qti);             // remove this one

            ResultsPages pages = RootQuery.ResultsPages;

            pages.RemoveAt(qti);             // remove the page from the query (must do 2nd)

            return;
        }
Exemple #7
0
/// <summary>
/// Configure the results page, creating first if necessary
/// </summary>
/// <param name="ti"></param>

        internal void ConfigureResultsPage(int pi)
        {
            Query q = RootQuery;

            if (q == null)
            {
                return;
            }
            if (q.PresearchDerivedQuery != null)             // get any derived browse query
            {
                q = q.PresearchDerivedQuery;
            }

            QueryManager qm = q.QueryManager as QueryManager;

            if (qm == null)
            {
                return;
            }

            if (pi < 0)
            {
                return;
            }

            SS.I.UISetupLevel++;
            ResultsPages pages = RootQuery.ResultsPages;             // get any additional pages for query
            ResultsPage  page  = pages[pi];

            SessionManager.Instance.StatusBarManager.ZoomControlVisible = false;          // hide zoom controls initially
            ConfigureResultsPage(page);
            Tabs.ClosePageButtonShowMode = ClosePageButtonShowMode.InActiveTabPageHeader; // show close button in active tab

            q.InitialBrowsePage = pi;                                                     // set current tab page
            SS.I.UISetupLevel--;

            return;
        }
Exemple #8
0
        /// <summary>
        /// Tentatively add a new view of the specified type to the current page
        /// </summary>
        /// <param name="viewType"></param>
        /// <param name="query"></param>
        /// <param name="qrc"></param>
        /// <returns></returns>

        private static ResultsViewProps AddTentativeNewView(
            ResultsViewModel rvm)
        {
            ResultsPage  rp;
            DialogResult dr;
            int          intVal, max;

            ResultsViewType     viewType    = rvm.ViewType;
            string              viewSubtype = rvm.ViewSubtype;
            string              viewTitle   = rvm.Title;
            Query               query       = rvm.Query;
            QueryResultsControl qrc         = rvm.QueryResultsControl as QueryResultsControl;

            LastAddedViewType = viewType;

            int pi = qrc.CurrentPageIndex;

            if (pi < 0 ||                                          // add a page if no pages
                query.Root.ResultsPages.Pages[pi].Views.Count > 0) // or (for now) already a view on the current page
            {
                rp = ResultsPages.AddNewPage(query);
                pi = query.Root.ResultsPages.Pages.Count - 1;
                qrc.AddResultsPageTabPage(rp);
            }

            ResultsPage      page = query.ResultsPages[pi];
            ResultsViewProps view = page.AddNewView(rvm);

            if (view == null)
            {
                throw new Exception("Failed to add new view: " + viewType);
            }

            //view.CustomViewTypeImageName = rvm.CustomViewTypeImageName; // (should already be set)

            if (Lex.IsDefined(viewTitle) && Lex.Ne(viewTitle, viewType.ToString()))
            {
                view.Title = page.AddSequentialSuffixToTitle(viewTitle, query.ResultsPages);                 // set custom title (sequentially-numbered) if defined
            }
            qrc.SetCurrentPageTabTitleAndImage();

            dr = view.ShowInitialViewSetupDialog();

            if (dr != DialogResult.OK)
            {
                RemoveTentativeView(view, qrc);
                return(null);                // not added
            }

            qrc.ConfigureResultsPage(page);             // render the default view in the current page

            dr = view.ShowInitialViewPropertiesDialog();
            if (dr == DialogResult.OK)
            {
                //view.ConfigureRenderingControl(); // be sure it's configured (not a good idea, adds overhead)

                qrc.SetCurrentPageTabTitleAndImage();                 // update tab title & image accordingly

                return(view);
            }

            else             // cancelled, remove view
            {
                RemoveTentativeView(view, qrc);
                return(null);                // not added
            }
        }