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++; }