Exemple #1
0
 public FilterItem(FilterDeclarationField declaration)
 {
     DisplayInList = declaration.DisplayInList;
     FilterEnabled = declaration.FilterEnabled;
     FilterOperator = declaration.FilterOperator;
     FilterValue = declaration.FilterValue;
     Declaration = declaration;
 }
Exemple #2
0
 public FilterItem(FilterDeclarationField declaration)
 {
     DisplayInList  = declaration.DisplayInList;
     FilterEnabled  = declaration.FilterEnabled;
     FilterOperator = declaration.FilterOperator;
     FilterValue    = declaration.FilterValue;
     Declaration    = declaration;
 }
 private void AddDefaultFilter(List<FilterDeclarationField> fields, string browsePath, bool displayInList)
 {
     FilterDeclarationField field = new FilterDeclarationField();
     field.InstanceDeclaration = new InstanceDeclaration();
     field.InstanceDeclaration.BrowsePathDisplayText = browsePath;
     field.DisplayInList = displayInList;
     fields.Add(field);
 }
        /// <summary>
        /// Updates the filter from the controls.
        /// </summary>
        private void UpdateFilter()
        {
            // get selected declarations.
            List<InstanceDeclaration> declarations = new List<InstanceDeclaration>();
            NodeId eventTypeId = CollectInstanceDeclarations(declarations);

            if (m_filter == null)
            {
                m_filter = new FilterDeclaration();
            }

            if (m_filter.Fields == null || m_filter.Fields.Count == 0)
            {
                m_filter.Fields = new List<FilterDeclarationField>();

                // select some default values to display in the list.
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.EventType, true);
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.SourceName, true);
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.SourceNode, true);
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.Time, true);
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.Severity, true);
                AddDefaultFilter(m_filter.Fields, Opc.Ua.BrowseNames.Message, true);
            }

            // copy settings from existing filter.
            List<FilterDeclarationField> fields = new List<FilterDeclarationField>();

            foreach (InstanceDeclaration declaration in declarations)
            {
                if (declaration.NodeClass != NodeClass.Variable)
                {
                    continue;
                }

                FilterDeclarationField field = new FilterDeclarationField(declaration);

                foreach (FilterDeclarationField field2 in m_filter.Fields)
                {
                    if (field2.InstanceDeclaration.BrowsePathDisplayText == field.InstanceDeclaration.BrowsePathDisplayText)
                    {
                        field.DisplayInList = field2.DisplayInList;
                        field.FilterEnabled = field2.FilterEnabled;
                        field.FilterOperator = field2.FilterOperator;
                        field.FilterValue = field2.FilterValue;
                        break;
                    }
                }

                fields.Add(field);
            }
            
            // update filter.
            m_filter.EventTypeId = eventTypeId;
            m_filter.Fields = fields;
        }
        /// <summary>
        /// Updates the row.
        /// </summary>
        public void UpdateRow(DataRow row, FilterDeclarationField field)
        {
            row[0] = field;
            row[1] = ImageList.Images[ClientUtils.GetImageIndex(m_session, field.InstanceDeclaration.NodeClass, field.InstanceDeclaration.RootTypeId, false)];
            row[2] = field.InstanceDeclaration.BrowsePathDisplayText;
            row[3] = field.Selected;
            row[4] = field.DisplayInList;
            row[5] = field.FilterEnabled;

            if (field.FilterEnabled)
            {
                row[6] = field.FilterOperator;
                row[7] = field.FilterValue;
            }

            row[8] = m_counter++;
        }