/// ------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void LoadFilters()
        {
            PaFiltersList filterList = PaFiltersList.Load();
            ListViewItem  currItem   = null;

            foreach (PaFilter filter in filterList)
            {
                ListViewItem item = new ListViewItem(filter.Name);
                item.ImageIndex = (filter.ShowInToolbarList ? 0 : 1);
                item.Tag        = filter;
                lvFilters.Items.Add(item);
                if (FilterHelper.CurrentFilter != null && filter.Name == FilterHelper.CurrentFilter.Name)
                {
                    currItem = item;
                }
            }

            lvFilters.ItemSelectionChanged += lvFilters_ItemSelectionChanged;

            if (currItem != null)
            {
                lvFilters.FocusedItem = currItem;
                currItem.Selected     = true;
            }
            else if (lvFilters.Items.Count > 0)
            {
                lvFilters.FocusedItem       = lvFilters.Items[0];
                lvFilters.Items[0].Selected = true;
            }

            btnCopy.Enabled = btnRemove.Enabled = (lvFilters.Items.Count > 0);
        }
        /// ------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public void RefreshFilterList()
        {
            m_filterButton.DropDown.Items.Clear();

            m_filterButton.DropDown.Items.Add(Properties.Resources.kstidFiltersMenuText,
                                              Properties.Resources.kimidDefineFilters);

            PaFiltersList filterList = FilterHelper.FilterList;

            if (filterList == null || filterList.Count == 0)
            {
                return;
            }

            m_filterButton.DropDown.Items.Insert(0, new ToolStripSeparator());

            for (int i = filterList.Count - 1; i >= 0; i--)
            {
                if (filterList[i].ShowInToolbarList)
                {
                    ToolStripMenuItem item = new ToolStripMenuItem(filterList[i].Name);
                    item.Tag = filterList[i];
                    m_filterButton.DropDown.Items.Insert(0, item);
                }
            }

            m_filterButton.DropDown.Items.Insert(0, new ToolStripSeparator());
            m_filterButton.DropDown.Items.Insert(0,
                                                 new ToolStripMenuItem(Properties.Resources.kstidNoFilterText));
        }
Exemple #3
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Loads the list of filters for the specified project. If the project is
        /// null, then an empty list is returned.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public static PaFiltersList Load(PaProject project)
        {
            string filename = (project != null ?
                               project.ProjectPathFilePrefix + kFiltersFilePrefix : null);

            PaFiltersList filtersList = null;

            if (File.Exists(filename))
            {
                filtersList = SilUtils.Utils.DeserializeData(filename,
                                                             typeof(PaFiltersList)) as PaFiltersList;
            }

            return(filtersList ?? new PaFiltersList());
        }
        /// ------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// ------------------------------------------------------------------------------------
        protected override bool SaveChanges()
        {
            PaFiltersList filterList = new PaFiltersList();

            foreach (ListViewItem item in lvFilters.Items)
            {
                PaFilter filter = item.Tag as PaFilter;
                if (filter != null)
                {
                    filterList.Add(filter);
                }
            }

            // TODO: Validate expressions with search queries.

            filterList.Save();
            FilterHelper.UpdateDisplayedFilterLists(filterList, true);
            m_dirty        = false;
            m_grid.IsDirty = false;
            return(true);
        }
Exemple #5
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Updates each of the filter drop-downs created for the PA main window and all the
        /// undocked windows. When restorePrevFilter is true, if there is currently a filter
        /// applied, it will be reapplied after the lists are updated.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public static void UpdateDisplayedFilterLists(PaFiltersList filterList,
                                                      bool restorePrevFilter)
        {
            PaFilter prevFilter = s_currFilter;

            s_filters = (filterList != null ? filterList : PaFiltersList.Load());

            foreach (FilterGUIComponent fgc in s_guiComponents.Values)
            {
                fgc.RefreshFilterList();
            }

            if (prevFilter != null)
            {
                // Because the filter list has been recreated, the previous filter was
                // orphaned by the recreation of the filter list, we need to find the
                // new instance of the filter with the same name. If that filter no
                // longer exists, then we must turn off filtering (i.e. Restore).
                ApplyFilter(s_filters[prevFilter.Name]);
            }
        }
Exemple #6
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// ------------------------------------------------------------------------------------
        protected void AfterDataSourcesLoaded(object args)
        {
            PaProject project = args as PaProject;

            if (project != null)
            {
                FilterHelper.UpdateDisplayedFilterLists(PaFiltersList.Load(project), false);

                // The first time we read the data sources, check if there was a filter
                // applied when the user closed down PA the last time. If so, then apply
                // it now. (m_startupFilterName will only be non null the first time the
                // data sources are read after startup.
                if (!string.IsNullOrEmpty(m_startupFilterName))
                {
                    PaFilter filter = FilterHelper.FilterList[m_startupFilterName];
                    if (filter != null)
                    {
                        FilterHelper.ApplyFilter(filter);
                    }
                    m_startupFilterName = null;
                }
            }
        }