예제 #1
0
        private void OkBTN_Click(object sender, EventArgs e)
        {
            try
            {
                EventFilter filter = new EventFilter();

                filter.SelectClauses.AddRange(SelectClauseCTRL.GetSelectClauses());
                filter.WhereClause = ContentFilterCTRL.GetFilter();

                EventFilter.Result result = filter.Validate(new FilterContext(m_session.NamespaceUris, m_session.TypeTree));

                if (ServiceResult.IsBad(result.Status))
                {
                    throw ServiceResultException.Create(StatusCodes.BadEventFilterInvalid, result.GetLongString());
                }

                m_filter = filter;

                DialogResult = DialogResult.OK;
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }
예제 #2
0
        /// <summary>
        /// Displays the dialog.
        /// </summary>
        public EventFilter ShowDialog(Session session, EventFilter filter, bool editWhereClause)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            if (filter == null)
            {
                throw new ArgumentNullException("filter");
            }

            m_session = session;
            m_filter  = filter;

            BrowseCTRL.SetView(m_session, BrowseViewType.EventTypes, null);
            SelectClauseCTRL.Initialize(session, filter.SelectClauses);
            ContentFilterCTRL.Initialize(session, filter.WhereClause);
            FilterOperandsCTRL.Initialize(session, null, -1);

            MoveBTN_Click((editWhereClause)?NextBTN:BackBTN, null);

            if (ShowDialog() != DialogResult.OK)
            {
                return(null);
            }

            return(m_filter);
        }
예제 #3
0
        private void ContentFilterCTRL_ItemsSelected(object sender, ListItemActionEventArgs e)
        {
            try
            {
                if (e.Items.Count > 0)
                {
                    foreach (object item in e.Items)
                    {
                        List <ContentFilterElement> elements = ContentFilterCTRL.GetElements();

                        for (int ii = 0; ii < elements.Count; ii++)
                        {
                            if (Object.ReferenceEquals(elements[ii], item))
                            {
                                FilterOperandsCTRL.Initialize(m_session, elements, ii);
                            }
                        }

                        break;
                    }
                }
                else
                {
                    FilterOperandsCTRL.Initialize(m_session, null, -1);
                }
            }
            catch (Exception exception)
            {
                GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
            }
        }