예제 #1
0
        private FilterDescriptor GetFilterDescriptor(CompositeFilterDescriptor composite)
        {
            CompositeFilterDescriptor filterDescriptor = new CompositeFilterDescriptor();
            DataFilterGroupNode       node1            = this.radDataFilter1.DataFilterElement.Nodes[0] as DataFilterGroupNode;

            filterDescriptor.LogicalOperator = node1.LogicalOperator;
            foreach (RadTreeNode node2 in (Collection <RadTreeNode>)node1.Nodes)
            {
                DataFilterGroupNode dataFilterGroupNode = node2 as DataFilterGroupNode;
                if (dataFilterGroupNode != null && dataFilterGroupNode.CompositeDescriptor.FilterDescriptors.Count > 0)
                {
                    filterDescriptor.FilterDescriptors.Add((FilterDescriptor)dataFilterGroupNode.CompositeDescriptor);
                }
                DataFilterCriteriaNode filterCriteriaNode = node2 as DataFilterCriteriaNode;
                if (filterCriteriaNode != null && filterCriteriaNode.FilterOperator != FilterOperator.None)
                {
                    filterDescriptor.FilterDescriptors.Add(filterCriteriaNode.Descriptor);
                }
            }
            if (filterDescriptor.FilterDescriptors.Count == 0)
            {
                filterDescriptor = (CompositeFilterDescriptor)null;
            }
            else if (filterDescriptor.FilterDescriptors.Count == 1)
            {
                return(filterDescriptor.FilterDescriptors[0]);
            }
            return((FilterDescriptor)filterDescriptor);
        }
예제 #2
0
        private void AddNewNode(FilterDescriptor descriptor)
        {
            DataFilterGroupNode groupNode = this.FindGroupNode();

            if (groupNode == null)
            {
                return;
            }
            RadDataFilterElement treeViewElement = this.TreeViewElement as RadDataFilterElement;

            if (!treeViewElement.ValidateAddNewNode())
            {
                return;
            }
            treeViewElement.AddChildNodes(descriptor, (RadTreeNode)groupNode);
        }
예제 #3
0
        public override void Synchronize()
        {
            base.Synchronize();
            if (!this.IsInValidState(true))
            {
                return;
            }
            DataFilterGroupNode groupNode1 = this.GroupNode;
            DataFilterRootNode  groupNode2 = this.GroupNode as DataFilterRootNode;

            if ((groupNode1 == null || groupNode1.CompositeDescriptor == null) && (groupNode2 == null || groupNode2.Filters == null))
            {
                return;
            }
            this.logicalOperatorElement.Text = this.GetOperatorText(groupNode1.LogicalOperator);
            int num = (int)this.SetValue(DataFilterGroupElement.LogicalOperatorProperty, (object)groupNode1.LogicalOperator);
        }
예제 #4
0
        private void PopulateEditorItems()
        {
            BaseDropDownListEditor editor = this.logicalOperatorElement.Editor as BaseDropDownListEditor;

            if (editor == null)
            {
                return;
            }
            RadDropDownListElement editorElement = editor.EditorElement as RadDropDownListElement;
            DataFilterGroupNode    groupNode     = this.GroupNode;

            if (editorElement == null || groupNode == null)
            {
                return;
            }
            editorElement.BeginUpdate();
            editorElement.Items.Clear();
            int num1 = 0;
            int num2 = -1;

            foreach (FilterLogicalOperator logicalOperator in Enum.GetValues(typeof(FilterLogicalOperator)))
            {
                RadListDataItem radListDataItem = new RadListDataItem(this.GetOperatorText(logicalOperator), (object)logicalOperator);
                editorElement.Items.Add(radListDataItem);
                if (object.Equals((object)logicalOperator, (object)groupNode.LogicalOperator))
                {
                    num2 = num1;
                }
                ++num1;
            }
            editorElement.DropDownWidth = 110;
            editorElement.SelectedIndex = num2;
            editorElement.EndUpdate();
            editorElement.SelectedValue = (object)groupNode.LogicalOperator;
            editorElement.Visibility    = ElementVisibility.Hidden;
        }