예제 #1
0
        /// <summary>
        /// Adds a TextBox filter in which users can specify text that
        /// a string-value column will be filtered on.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyName">The business object property on which to filter</param>
        /// <param name="filterClauseOperator">The operator to use for the filter clause</param>
        /// <returns>Returns the new TextBox added</returns>
        public ITextBox AddStringFilterTextBox(string labelText, string propertyName,
                                               FilterClauseOperator filterClauseOperator)
        {
            ICustomFilter filter =  _filterControlManager.AddStringFilterTextBox(labelText, propertyName, filterClauseOperator);
						filter.ValueChanged += (sender, e) => { if (this.FilterMode == FilterModes.Filter) FireFilterEvent(); };
            return (ITextBox)filter.Control;
        }
 /// <summary>
 /// Creates a new filter clause that filters integer values
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to be compared to</param>
 /// <returns>Returns the new filter clause object</returns>
 public IFilterClause CreateDateFilterClause(string filterColumn, FilterClauseOperator clauseOperator,
                                             DateTime filterValue)
 {
     //BusinessObject b = new BusinessObject();
     //b.Props["test"].PropertyValueString
     return(new DataViewDateFilterClause(filterColumn, clauseOperator, filterValue));
 }
 /// <summary>
 /// Creates a new filter clause that filters integer values
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to be compared to</param>
 /// <returns>Returns the new filter clause object</returns>
 public IFilterClause CreateDateFilterClause(string filterColumn, FilterClauseOperator clauseOperator,
                                             DateTime filterValue)
 {
     //BusinessObject b = new BusinessObject();
     //b.Props["test"].PropertyValueString
     return new DataViewDateFilterClause(filterColumn, clauseOperator, filterValue);
 }
예제 #4
0
        /// <summary>
        /// Adds a TextBox filter in which users can specify text that
        /// a string-value column will be filtered on.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyName">The business object property on which to filter</param>
        /// <param name="filterClauseOperator">The operator to use for the filter clause</param>
        /// <returns>Returns the new TextBox added</returns>
        public ITextBox AddStringFilterTextBox(string labelText, string propertyName,
                                               FilterClauseOperator filterClauseOperator)
        {
            ICustomFilter filter = _filterControlManager.AddStringFilterTextBox(labelText, propertyName, filterClauseOperator);

            return((ITextBox)filter.Control);
        }
예제 #5
0
 ///<summary>
 /// An overridden constructor for controlFactory, propertyName and filterClauseOperator.
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public DateTimePickerFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory               = controlFactory;
     _propertyName                 = propertyName;
     _filterClauseOperator         = filterClauseOperator;
     _dateTimePicker               = _controlFactory.CreateDateTimePicker();
     _dateTimePicker.ValueChanged += (sender, e) => FireValueChanged();
 }
예제 #6
0
 ///<summary>
 /// Constructor for <see cref="StringTextBoxFilter"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public StringTextBoxFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory       = controlFactory;
     _propertyName         = propertyName;
     _filterClauseOperator = filterClauseOperator;
     _textBox              = _controlFactory.CreateTextBox();
     _textBox.TextChanged += (sender, e) => FireValueChanged();
 }
		///<summary>
		/// Constructor with controlFactory, propertyName and filterClauseOperator
		///</summary>
		///<param name="controlFactory"></param>
		///<param name="propertyName"></param>
		///<param name="filterClauseOperator"></param>
		///<param name="enumType"></param>
		public EnumComboBoxFilter(IControlFactory controlFactory, string propertyName
				, FilterClauseOperator filterClauseOperator, Type enumType)
			:this(controlFactory, propertyName, filterClauseOperator)
		{
			EnumType = enumType;
			if (enumType == null) throw new ArgumentNullException("enumType");
			EnumType = enumType;
		}
예제 #8
0
 /// <summary>
 /// Constructor to create a new filter clause
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to compare to</param>
 internal DataViewIntegerFilterClause(string filterColumn, FilterClauseOperator clauseOperator, int filterValue)
     : base(filterColumn, clauseOperator, filterValue)
 {
     if (_clauseOperator == FilterClauseOperator.OpLike)
     {
         throw new HabaneroArgumentException("clauseOperator",
                                             "Operator Like is not supported for non string operands");
     }
 }
예제 #9
0
 ///<summary>
 /// Constructor with controlFactory, propertyName and filterClauseOperator
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public DateRangeComboBoxFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory       = controlFactory;
     _propertyName         = propertyName;
     _filterClauseOperator = filterClauseOperator;
     _dateRangeComboBox    = _controlFactory.CreateDateRangeComboBox();
     _dateRangeComboBox.SelectedIndexChanged += (sender, e) => FireValueChanged();
     _dateRangeComboBox.TextChanged          += (sender, e) => FireValueChanged();
 }
 /// <summary>
 /// Constructor to create a new filter clause
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to compare to</param>
 internal DataViewEnumFilterClause(string filterColumn, FilterClauseOperator clauseOperator, object filterValue)
     : base(filterColumn, clauseOperator, filterValue)
 {
     if (_clauseOperator == FilterClauseOperator.OpLike)
     {
         throw new HabaneroArgumentException("clauseOperator",
                                             "Operator Like is not supported for non string operands");
     }
 }
예제 #11
0
 ///<summary>
 /// A Constructor for the BoolCheckBoxFilter
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public BoolCheckBoxFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory           = controlFactory;
     _propertyName             = propertyName;
     _filterClauseOperator     = filterClauseOperator;
     _checkBox                 = _controlFactory.CreateCheckBox();
     _checkBox.Width           = 10;
     _checkBox.Text            = "";
     _checkBox.CheckedChanged += (sender, e) => FireValueChanged();
 }
예제 #12
0
        /// <summary>
        /// Adds a date-time picker that filters a date column on the date
        /// chosen by the user.  The given operator compares the chosen date
        /// with the date shown in the given column name.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyName">The business object property on which to filter</param>
        /// <param name="defaultValue">The default date or null</param>
        /// <param name="filterClauseOperator">The operator used to compare
        /// with the date chosen by the user.  The chosen date is on the
        /// right side of the equation.</param>
        /// <param name="nullable">Whether the datetime picker allows null values</param>
        /// <returns>Returns the new DateTimePicker added</returns>
        public IDateTimePicker AddDateFilterDateTimePicker(string labelText, string propertyName, DateTime? defaultValue,
                                                           FilterClauseOperator filterClauseOperator, bool nullable)
        {

            ICustomFilter filter =
                _filterControlManager.AddDateFilterDateTimePicker(labelText, propertyName, filterClauseOperator, defaultValue);
            
            filter.ValueChanged += delegate { if (this.FilterMode == FilterModes.Filter) FireFilterEvent(); };
            return (IDateTimePicker)filter.Control;
        }
예제 #13
0
 ///<summary>
 /// Constructor for <see cref="MultiplePropStringTextBoxFilter"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyNames"></param>
 ///<param name="filterClauseOperator"></param>
 public MultiplePropStringTextBoxFilter(IControlFactory controlFactory, List <string> propertyNames,
                                        FilterClauseOperator filterClauseOperator)
 {
     _controlFactory = controlFactory;
     _propertyNames  = propertyNames;
     _propertyNames.Sort((s, s1) => s1.CompareTo(s));
     _filterClauseOperator = filterClauseOperator;
     _textBox              = _controlFactory.CreateTextBox();
     _textBox.TextChanged += (sender, e) => FireValueChanged();
 }
 	///<summary>
     /// Constructor with controlFactory, propertyName and filterClauseOperator
     ///</summary>
     ///<param name="controlFactory"></param>
     ///<param name="propertyName"></param>
     ///<param name="filterClauseOperator"></param>
     ///<param name="enumType"></param>
     public EnumComboBoxFilter(IControlFactory controlFactory, string propertyName
             , FilterClauseOperator filterClauseOperator)
     {
         _controlFactory = controlFactory;
         _propertyName = propertyName;
         _filterClauseOperator = filterClauseOperator;
         _comboBox = _controlFactory.CreateComboBox();
         _comboBox.SelectedIndexChanged += (sender, e) => FireValueChanged();
         _comboBox.TextChanged += (sender,e) => FireValueChanged();
     }
 ///<summary>
 /// Constructor for <see cref="MultiplePropStringTextBoxFilter"/>
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyNames"></param>
 ///<param name="filterClauseOperator"></param>
 public MultiplePropStringTextBoxFilter(IControlFactory controlFactory, List<string> propertyNames,
                                        FilterClauseOperator filterClauseOperator)
 {
     _controlFactory = controlFactory;
     _propertyNames = propertyNames;
     _propertyNames.Sort((s, s1) => s1.CompareTo(s));
     _filterClauseOperator = filterClauseOperator;
     _textBox = _controlFactory.CreateTextBox();
     _textBox.TextChanged += (sender, e) => FireValueChanged();
 }
예제 #16
0
        /// <summary>
        /// Adds a date-time picker that filters a date column on the date
        /// chosen by the user.  The given operator compares the chosen date
        /// with the date shown in the given column name.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyName">The business object property on which to filter</param>
        /// <param name="defaultValue">The default date or null</param>
        /// <param name="filterClauseOperator">The operator used to compare
        /// with the date chosen by the user.  The chosen date is on the
        /// right side of the equation.</param>
        /// <param name="nullable">Whether the datetime picker allows null values</param>
        /// <returns>Returns the new DateTimePicker added</returns>
        public IDateTimePicker AddDateFilterDateTimePicker(string labelText, string propertyName, DateTime?defaultValue,
                                                           FilterClauseOperator filterClauseOperator, bool nullable)
        {
            //IDateTimePicker dtPicker =
            //    _filterControlManager.AddDateFilterDateTimePicker(labelText, propertyName, filterClauseOperator, nullable,
            //                                                      defaultValue);
            ICustomFilter customFilter =
                _filterControlManager.AddDateFilterDateTimePicker(labelText, propertyName, filterClauseOperator, defaultValue);

            return((IDateTimePicker)customFilter.Control);
        }
예제 #17
0
 ///<summary>
 /// Constructor with controlFactory, propertyName and filterClauseOperator
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 ///<param name="enumType"></param>
 public EnumComboBoxFilter(IControlFactory controlFactory, string propertyName
                           , FilterClauseOperator filterClauseOperator, Type enumType)
     : this(controlFactory, propertyName, filterClauseOperator)
 {
     EnumType = enumType;
     if (enumType == null)
     {
         throw new ArgumentNullException("enumType");
     }
     EnumType = enumType;
 }
예제 #18
0
 /// <summary>
 /// Standard constructor
 /// </summary>
 /// <param name="propertyName">See <see cref="PropertyName"/></param>
 /// <param name="label">See <see cref="Label"/></param>
 /// <param name="filterType">See <see cref="FilterType"/></param>
 /// <param name="filterTypeAssembly">See <see cref="FilterTypeAssembly"/></param>
 /// <param name="filterClauseOperator">See <see cref="FilterClauseOperator"/></param>
 /// <param name="parameters">See <see cref="Parameters"/></param>
 public FilterPropertyDef(string propertyName, string label, string filterType, 
                         string filterTypeAssembly, FilterClauseOperator filterClauseOperator,
                         Dictionary<string, string> parameters)
 {
     PropertyName = propertyName;
     Label = label;
     FilterType = filterType;
     FilterTypeAssembly = filterTypeAssembly;
     FilterClauseOperator = filterClauseOperator;
     Parameters = parameters;
     if (string.IsNullOrEmpty(FilterTypeAssembly)) FilterTypeAssembly = "Habanero.Faces.Base";
 }
예제 #19
0
        public void Test_GetFilterClause()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            const string       filterValue = "constantValue";
            StringStaticFilter filter      = new StringStaticFilter(propertyName, filterClauseOperator, filterValue);
            //---------------Execute Test ----------------------
            IFilterClause filterClause = filter.GetFilterClause(new DataViewFilterClauseFactory());

            //---------------Test Result -----------------------
            Assert.AreEqual(string.Format("{0} > '{1}'", propertyName, filterValue), filterClause.GetFilterClauseString());
        }
예제 #20
0
        public void Test_GetFilterClause_WhenOpIs_ShouldNotSetValueDelimiters()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.Is;
            const string       filterValue = "NULL";
            StringStaticFilter filter      = new StringStaticFilter(propertyName, filterClauseOperator, filterValue);
            //---------------Execute Test ----------------------
            IFilterClause filterClause = filter.GetFilterClause(new DataViewFilterClauseFactory());

            //---------------Test Result -----------------------
            Assert.AreEqual(string.Format("{0} Is {1}", propertyName, filterValue), filterClause.GetFilterClauseString());
        }
예제 #21
0
 /// <summary>
 /// Constructor that creates a FilterPropertyDef class with a specified Filter control type using a type parameter.
 /// </summary>
 /// <param name="propertyName">See <see cref="PropertyName"/></param>
 /// <param name="label">See <see cref="Label"/></param>
 /// <param name="filterType"> The <see cref="Type"/> object that will determine the values of the <see cref="FilterType"/> and the <see cref="FilterTypeAssembly"/> properties.</param>
 /// <param name="filterClauseOperator">See <see cref="FilterClauseOperator"/></param>
 /// <param name="parameters">See <see cref="Parameters"/></param>
 public FilterPropertyDef(string propertyName, string label, Type filterType,
                         FilterClauseOperator filterClauseOperator,
                         Dictionary<string, string> parameters)
 {
     PropertyName = propertyName;
     Label = label;
     string assemblyName;
     string classNameFull;
     TypeLoader.ClassTypeInfo(filterType, out assemblyName, out classNameFull);
     FilterType = classNameFull;
     FilterTypeAssembly = assemblyName;
     FilterClauseOperator = filterClauseOperator;
     Parameters = parameters;
 }
        public void Test_BuildCustomFilter_FilterClauseOperator()
        {
            //---------------Set up test pack-------------------
            FilterControlBuilder builder = new FilterControlBuilder(GetControlFactory());

            const FilterClauseOperator op = FilterClauseOperator.OpLessThanOrEqualTo;
            FilterPropertyDef          filterPropertyDef1 = CreateFilterPropertyDef(op);

            //---------------Execute Test ----------------------
            ICustomFilter customFilter = builder.BuildCustomFilter(filterPropertyDef1);

            //---------------Test Result -----------------------
            Assert.AreEqual(op, customFilter.FilterClauseOperator);
        }
예제 #23
0
        public void TestConstructor_WhenFilterValueNull_ShouldReturnNullFilterClause()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            //---------------Execute Test ----------------------
            StringStaticFilter filter = new StringStaticFilter(propertyName, filterClauseOperator, null);

            //---------------Test Result -----------------------
            Assert.IsNull(filter.Control);
            Assert.AreEqual(propertyName, filter.PropertyName);
            Assert.AreEqual(filterClauseOperator, filter.FilterClauseOperator);
            Assert.IsInstanceOf(typeof(DataViewNullFilterClause), filter.GetFilterClause(new DataViewFilterClauseFactory()));
        }
예제 #24
0
        /// <summary>
        /// Loads all the data out of the reader, assuming the document is
        /// well-formed, otherwise the error must be caught and thrown.
        /// By the end of this method the reader must be finished reading.
        /// This method needs to be implemented by the sub-class.
        /// </summary>
        protected override void LoadFromReader()
        {
            if (_reader.Name == "filter")
            {
                _reader.Read();
                string filterModeStr = _reader.GetAttribute("filterMode");
                _filterMode = (FilterModes)Enum.Parse(typeof(FilterModes), filterModeStr);
                _columns    = Convert.ToInt32(_reader.GetAttribute("columns"));
            }
            _reader.Read();

            while (_reader.Name == "filterProperty")
            {
                string propertyName            = _reader.GetAttribute("name");
                string label                   = _reader.GetAttribute("label");
                string filterType              = _reader.GetAttribute("filterType");
                string filterTypeAssembly      = _reader.GetAttribute("filterTypeAssembly");
                string filterClauseOperatorStr = _reader.GetAttribute("operator");
                FilterClauseOperator filterClauseOperator
                    = (FilterClauseOperator)Enum.Parse(typeof(FilterClauseOperator), filterClauseOperatorStr);
                Dictionary <string, string> parameters        = new Dictionary <string, string>();
                IFilterPropertyDef          filterPropertyDef =
                    _defClassFactory.CreateFilterPropertyDef(propertyName, label, filterType, filterTypeAssembly, filterClauseOperator, parameters);

                _reader.Read();

                if (_reader.Name == "parameter")
                {
                    while (_reader.Name == "parameter")
                    {
                        string name  = _reader.GetAttribute("name");
                        string value = _reader.GetAttribute("value");
                        parameters.Add(name, value);
                        _reader.Read();
                    }
                    _reader.Read();
                }
                _propertyDefs.Add(filterPropertyDef);
                if (!_reader.IsStartElement())
                {
                    _reader.ReadEndElement();
                }
                filterPropertyDef.Parameters = parameters;
            }
            while (_reader.Name == "filter")
            {
                _reader.Read();
            }
        }
예제 #25
0
        /// <summary>
        /// Constructor that creates a FilterPropertyDef class with a specified Filter control type using a type parameter.
        /// </summary>
        /// <param name="propertyName">See <see cref="PropertyName"/></param>
        /// <param name="label">See <see cref="Label"/></param>
        /// <param name="filterType"> The <see cref="Type"/> object that will determine the values of the <see cref="FilterType"/> and the <see cref="FilterTypeAssembly"/> properties.</param>
        /// <param name="filterClauseOperator">See <see cref="FilterClauseOperator"/></param>
        /// <param name="parameters">See <see cref="Parameters"/></param>
        public FilterPropertyDef(string propertyName, string label, Type filterType,
                                 FilterClauseOperator filterClauseOperator,
                                 Dictionary <string, string> parameters)
        {
            PropertyName = propertyName;
            Label        = label;
            string assemblyName;
            string classNameFull;

            TypeLoader.ClassTypeInfo(filterType, out assemblyName, out classNameFull);
            FilterType           = classNameFull;
            FilterTypeAssembly   = assemblyName;
            FilterClauseOperator = filterClauseOperator;
            Parameters           = parameters;
        }
예제 #26
0
 /// <summary>
 /// Standard constructor
 /// </summary>
 /// <param name="propertyName">See <see cref="PropertyName"/></param>
 /// <param name="label">See <see cref="Label"/></param>
 /// <param name="filterType">See <see cref="FilterType"/></param>
 /// <param name="filterTypeAssembly">See <see cref="FilterTypeAssembly"/></param>
 /// <param name="filterClauseOperator">See <see cref="FilterClauseOperator"/></param>
 /// <param name="parameters">See <see cref="Parameters"/></param>
 public FilterPropertyDef(string propertyName, string label, string filterType,
                          string filterTypeAssembly, FilterClauseOperator filterClauseOperator,
                          Dictionary <string, string> parameters)
 {
     PropertyName         = propertyName;
     Label                = label;
     FilterType           = filterType;
     FilterTypeAssembly   = filterTypeAssembly;
     FilterClauseOperator = filterClauseOperator;
     Parameters           = parameters;
     if (string.IsNullOrEmpty(FilterTypeAssembly))
     {
         FilterTypeAssembly = "Habanero.Faces.Base";
     }
 }
예제 #27
0
        public void TestConstructor()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;

            //---------------Execute Test ----------------------
            StringTextBoxFilter filter = new StringTextBoxFilter(GetControlFactory(), propertyName, filterClauseOperator);

            //---------------Test Result -----------------------
            Assert.IsInstanceOf(typeof(ITextBox), filter.Control);
            Assert.AreEqual(propertyName, filter.PropertyName);
            Assert.AreEqual(filterClauseOperator, filter.FilterClauseOperator);
            Assert.IsInstanceOf(typeof(DataViewNullFilterClause), filter.GetFilterClause(new DataViewFilterClauseFactory()));
        }
예제 #28
0
        ///<summary>
        /// Returns the filter clause for this control
        ///</summary>
        ///<param name="filterClauseFactory"></param>
        ///<returns></returns>
        public IFilterClause GetFilterClause(IFilterClauseFactory filterClauseFactory)
        {
            if (_dateRangeComboBox.SelectedIndex > 0)
            {
                FilterClauseOperator op          = _includeStartDate ? FilterClauseOperator.OpGreaterThanOrEqualTo : FilterClauseOperator.OpGreaterThan;
                IFilterClause        startClause = filterClauseFactory.CreateDateFilterClause(_propertyName, op, _dateRangeComboBox.StartDate);
                op = _includeEndDate
                    ? FilterClauseOperator.OpLessThanOrEqualTo
                    : FilterClauseOperator.OpLessThan;
                IFilterClause endClause = filterClauseFactory.CreateDateFilterClause(_propertyName, op, _dateRangeComboBox.EndDate);

                return
                    (filterClauseFactory.CreateCompositeFilterClause(startClause, FilterClauseCompositeOperator.OpAnd,
                                                                     endClause));
            }
            return(filterClauseFactory.CreateNullFilterClause());
        }
예제 #29
0
        public void Test_Construct_WhenFilterValueSet_ShouldReturnStringFilterClause()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            const string filterValue = "constantValue";
            //---------------Execute Test ----------------------
            StringStaticFilter filter = new StringStaticFilter(propertyName, filterClauseOperator, filterValue);

            //---------------Test Result -----------------------
            Assert.IsNull(filter.Control);
            Assert.AreEqual(propertyName, filter.PropertyName);
            Assert.AreEqual(filterClauseOperator, filter.FilterClauseOperator);

            IFilterClause filterClause = filter.GetFilterClause(new DataViewFilterClauseFactory());

            Assert.IsInstanceOf <DataViewStringFilterClause>(filterClause);
        }
예제 #30
0
        public void TestFilterClause()
        {
            //---------------Set up test pack-------------------
            string propertyName = TestUtil.GetRandomString();
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            StringTextBoxFilter        filter = new StringTextBoxFilter(GetControlFactory(), propertyName, filterClauseOperator);
            ITextBox textBox = (ITextBox)filter.Control;
            string   text    = TestUtil.GetRandomString();

            textBox.Text = text;

            //---------------Execute Test ----------------------

            IFilterClause filterClause = filter.GetFilterClause(new DataViewFilterClauseFactory());

            //---------------Test Result -----------------------

            Assert.AreEqual(string.Format("{0} > '{1}'", propertyName, text), filterClause.GetFilterClauseString());
            //---------------Tear Down -------------------------
        }
예제 #31
0
        /// <summary>
        /// Converts the <see cref="FilterClauseOperator"/> enum to
        /// a string.
        /// </summary>
        /// <param name="clauseOperator"></param>
        /// <returns></returns>
        public string ConvertToString(FilterClauseOperator clauseOperator)
        {
            string opClause;

            switch (clauseOperator)
            {
            case FilterClauseOperator.OpEquals:
                opClause = " = ";
                break;

            case FilterClauseOperator.OpLike:
                opClause = " like ";
                break;

            case FilterClauseOperator.OpGreaterThanOrEqualTo:
                opClause = " >= ";
                break;

            case FilterClauseOperator.OpLessThanOrEqualTo:
                opClause = " <= ";
                break;

            case FilterClauseOperator.OpGreaterThan:
                opClause = " > ";
                break;

            case FilterClauseOperator.OpLessThan:
                opClause = " < ";
                break;

            case FilterClauseOperator.OpNotEqual:
                opClause = " <> ";
                break;

            default:
                opClause = " " + clauseOperator + " ";
                //opClause = " <unsupported operator> ";
                break;
            }
            return(opClause);
        }
예제 #32
0
        public void TestConstructor()
        {
            //---------------Set up test pack-------------------
            string propertyName = "";
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            List <string> props = new List <string> {
                "prop1", "prop2", "prop3"
            };
            string name = propertyName;

            //---------------Execute Test ----------------------
            MultiplePropStringTextBoxFilter filter = new MultiplePropStringTextBoxFilter(GetControlFactory(), props, filterClauseOperator);

            props.ForEach(s => name = s + "/" + name);
            propertyName            = name.Remove(name.Length - 1);
            //---------------Test Result -----------------------
            Assert.IsInstanceOf(typeof(ITextBox), filter.Control);
            Assert.AreEqual(propertyName, filter.PropertyName);
            Assert.AreEqual(filterClauseOperator, filter.FilterClauseOperator);
            Assert.IsInstanceOf(typeof(DataViewNullFilterClause), filter.GetFilterClause(new DataViewFilterClauseFactory()));
        }
예제 #33
0
        public void Test_Constructor_WithStringParameters()
        {
            //---------------Set up test pack-------------------
            string propName           = TestUtil.GetRandomString();
            string label              = TestUtil.GetRandomString();
            string filterType         = TestUtil.GetRandomString();
            string filterTypeAssembly = TestUtil.GetRandomString();
            FilterClauseOperator        filterClauseOperator = TestUtil.GetRandomEnum <FilterClauseOperator>();
            Dictionary <string, string> parameters           = new Dictionary <string, string>();
            //---------------Assert PreConditions---------------
            //---------------Execute Test ----------------------
            FilterPropertyDef def = new FilterPropertyDef(propName, label, filterType, filterTypeAssembly, filterClauseOperator, parameters);

            //---------------Test Result -----------------------
            Assert.AreEqual(propName, def.PropertyName);
            Assert.AreEqual(label, def.Label);
            Assert.AreEqual(filterType, def.FilterType);
            Assert.AreEqual(filterTypeAssembly, def.FilterTypeAssembly);
            Assert.AreSame(parameters, def.Parameters);
            Assert.AreEqual(filterClauseOperator, def.FilterClauseOperator);
        }
예제 #34
0
        public void TestFilterClause_2Prop()
        {
            //---------------Set up test pack-------------------
            const FilterClauseOperator filterClauseOperator = FilterClauseOperator.OpGreaterThan;
            List <string> props = new List <string> {
                "prop1", "prop2"
            };
            MultiplePropStringTextBoxFilter filter = new MultiplePropStringTextBoxFilter(GetControlFactory(), props, filterClauseOperator);
            ITextBox textBox = (ITextBox)filter.Control;
            string   text    = TestUtil.GetRandomString();

            textBox.Text = text;

            //---------------Execute Test ----------------------

            IFilterClause filterClause = filter.GetFilterClause(new DataViewFilterClauseFactory());

            //---------------Test Result -----------------------

            Assert.AreEqual(string.Format("({0} > '{2}') or ({1} > '{2}')", props[0], props[1], text), filterClause.GetFilterClauseString());
            //---------------Tear Down -------------------------
        }
예제 #35
0
        public void Test_Constructor_WithTypeParameters()
        {
            //---------------Set up test pack-------------------
            string propName = TestUtil.GetRandomString();
            string label    = TestUtil.GetRandomString();
            Dictionary <string, string> parameters           = new Dictionary <string, string>();
            FilterClauseOperator        filterClauseOperator = TestUtil.GetRandomEnum <FilterClauseOperator>();
            Type filterType = typeof(MyFilterType);
            //---------------Assert PreConditions---------------
            //---------------Execute Test ----------------------
            FilterPropertyDef def = new FilterPropertyDef(propName, label, filterType, filterClauseOperator, parameters);

            //---------------Test Result -----------------------
            Assert.AreEqual(propName, def.PropertyName);
            Assert.AreEqual(label, def.Label);
            string assemblyName;
            string classNameFull;

            TypeLoader.ClassTypeInfo(filterType, out assemblyName, out classNameFull);
            Assert.AreEqual(classNameFull, def.FilterType);
            Assert.AreEqual(assemblyName, def.FilterTypeAssembly);
            Assert.AreSame(parameters, def.Parameters);
            Assert.AreEqual(filterClauseOperator, def.FilterClauseOperator);
        }
 private static FilterPropertyDef CreateFilterPropertyDef
     (string propName, FilterClauseOperator filterClauseOperator)
 {
     return CreateFilterPropertyDef(propName, "StringTextBoxFilter", "", filterClauseOperator);
 }
예제 #37
0
        /// <summary>
        /// Adds a TextBox filter in which users can specify text that
        /// multiple string-value columns will be filtered on.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyNames">The business object propertys on which to filter</param>
        /// <param name="filterClauseOperator">The operator to use for the filter clause</param>
        /// <returns>Returns the new TextBox added</returns>
        public ITextBox AddMultiplePropStringTextBox(string labelText, List<string> propertyNames, FilterClauseOperator filterClauseOperator)
        {
            ICustomFilter filter = _filterControlManager.AddMultiplePropStringTextBox(labelText, propertyNames,filterClauseOperator);
						filter.ValueChanged += (sender, e) => { if (this.FilterMode == FilterModes.Filter) FireFilterEvent(); };
            return (ITextBox)filter.Control;
        }
 ///<summary>
 /// A Constructor for the BoolCheckBoxFilter
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public BoolCheckBoxFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory = controlFactory;
     _propertyName = propertyName;
     _filterClauseOperator = filterClauseOperator;
     _checkBox = _controlFactory.CreateCheckBox();
     _checkBox.Width = 10;
     _checkBox.Text = "";
     _checkBox.CheckedChanged += (sender, e) => FireValueChanged();
 }
예제 #39
0
		///<summary>
		/// Creates an individual <see cref="FilterPropertyDef"/> that will be used on the <see cref="FilterDef"/>
		///</summary>
		///<param name="propertyName">The Property Name that this <see cref="FilterPropertyDef"/> is mapped to</param>
		///<param name="label">The Label Text that is displayed for this <see cref="FilterPropertyDef"/></param>
		///<param name="filterType">The FilterType e.g. StringComboBoxFilter that is  to use for this <see cref="FilterPropertyDef"/></param>
		///<param name="filterTypeAssembly">The FilterType Assembly that is  to use for this <see cref="FilterPropertyDef"/></param>
		///<param name="filterClauseOperator">The <see cref="FilterClauseOperator"/> that is  to use for this <see cref="FilterPropertyDef"/></param>
		///<param name="parameters"></param>
		///<returns></returns>
		public IFilterPropertyDef CreateFilterPropertyDef(string propertyName, string label, string filterType, string filterTypeAssembly, FilterClauseOperator filterClauseOperator, Dictionary<string, string> parameters)
		{
			return new FilterPropertyDef(propertyName, label, filterType, filterTypeAssembly, filterClauseOperator, parameters);
		}
 /// <summary>
 /// Constructor to create a new filter clause
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to compare to</param>
 internal DataViewStringFilterClause(string filterColumn, FilterClauseOperator clauseOperator, string filterValue)
     : base(filterColumn, clauseOperator, filterValue)
 {
 }
 private static FilterPropertyDef CreateFilterPropertyDef(FilterClauseOperator op)
 {
     return CreateFilterPropertyDef(TestUtil.GetRandomString(), op);
 }
예제 #42
0
        /// <summary>
        /// Adds a date-time picker that filters a date column on the date
        /// chosen by the user.  The given operator compares the chosen date
        /// with the date shown in the given column name.
        /// </summary>
        /// <param name="labelText">The label to appear before the control</param>
        /// <param name="propertyName">The business object property on which to filter</param>
        /// <param name="defaultValue">The default date or null</param>
        /// <param name="filterClauseOperator">The operator used to compare
        /// with the date chosen by the user.  The chosen date is on the
        /// right side of the equation.</param>
        /// <param name="nullable">Whether the datetime picker allows null values</param>
        /// <returns>Returns the new DateTimePicker added</returns>
        public IDateTimePicker AddDateFilterDateTimePicker(string labelText, string propertyName, DateTime? defaultValue,
                                                           FilterClauseOperator filterClauseOperator, bool nullable)
        {
            //IDateTimePicker dtPicker =
            //    _filterControlManager.AddDateFilterDateTimePicker(labelText, propertyName, filterClauseOperator, nullable,
            //                                                      defaultValue);
            ICustomFilter customFilter = 
                _filterControlManager.AddDateFilterDateTimePicker(labelText, propertyName, filterClauseOperator, defaultValue);

            return (IDateTimePicker) customFilter.Control;
        }
#pragma warning disable 168
        public SimpleFilterStub
            (IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
#pragma warning restore 168
        {
            _textBox = controlFactory.CreateTextBox();
        }
#pragma warning disable 168
        public SimpleFilterStub
            (IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
#pragma warning restore 168
        {
            _textBox = controlFactory.CreateTextBox();
        }
 private static FilterPropertyDef CreateFilterPropertyDef
     (string propName, string filterType, string filterTypeAssembly, FilterClauseOperator filterClauseOperator)
 {
     return(new FilterPropertyDef
                (propName, TestUtil.GetRandomString(), filterType, filterTypeAssembly, filterClauseOperator, new Dictionary <string, string>()));
 }
 ///<summary>
 /// An overridden constructor for controlFactory, propertyName and filterClauseOperator.
 ///</summary>
 ///<param name="controlFactory"></param>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 public DateTimePickerFilter(IControlFactory controlFactory, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     _controlFactory = controlFactory;
     _propertyName = propertyName;
     _filterClauseOperator = filterClauseOperator;
     _dateTimePicker = _controlFactory.CreateDateTimePicker();
     _dateTimePicker.ValueChanged += (sender, e) => FireValueChanged();     
 }
예제 #47
0
 /// <summary>
 /// Adds a TextBox filter in which users can specify text that
 /// a string-value column will be filtered on.
 /// </summary>
 /// <param name="labelText">The label to appear before the control</param>
 /// <param name="propertyName">The business object property on which to filter</param>
 /// <param name="filterClauseOperator">The operator to use for the filter clause</param>
 /// <returns>Returns the new TextBox added</returns>
 public ITextBox AddStringFilterTextBox(string labelText, string propertyName,
                                        FilterClauseOperator filterClauseOperator)
 {
     ICustomFilter filter = _filterControlManager.AddStringFilterTextBox(labelText, propertyName, filterClauseOperator);
     return (ITextBox) filter.Control;
 }
예제 #48
0
 /// <summary>
 /// Adds a TextBox filter in which users can specify text that
 /// multiple string-value columns will be filtered on.
 /// </summary>
 /// <param name="labelText">The label to appear before the control</param>
 /// <param name="propertyNames">The business object propertys on which to filter</param>
 /// <param name="filterClauseOperator">The operator to use for the filter clause</param>
 /// <returns>Returns the new TextBox added</returns>
 public ITextBox AddMultiplePropStringTextBox(string labelText, List<string> propertyNames, FilterClauseOperator filterClauseOperator)
 {
     ICustomFilter filter = _filterControlManager.AddMultiplePropStringTextBox(labelText, propertyNames, filterClauseOperator);
     return (ITextBox)filter.Control;
 }
 /// <summary>
 /// Constructor to create a new filter clause
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to compare to</param>
 protected DataViewFilterClause(string filterColumn, FilterClauseOperator clauseOperator, object filterValue)
 {
     _filterColumn = filterColumn;
     _clauseOperator = clauseOperator;
     _filterValue = filterValue;
 }
예제 #50
0
 ///<summary>
 /// Adds a static string filter <see cref="StringStaticFilter"/> to the Filter Control.
 /// This allows the developer to set a filter that is always applied and is not modifiable by or visible to the end user.
 ///</summary>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 ///<param name="filterValue"></param>
 public void AddStaticStringFilterClause(string propertyName, FilterClauseOperator filterClauseOperator, string filterValue)
 {
     _filterControlManager.AddStaticStringFilterClause(propertyName, filterClauseOperator, filterValue);
 }
 /// <summary>
 /// See <see cref="IFilterControl.AddStringFilterTextBox(string,string,FilterClauseOperator)"/>
 /// </summary>
 public ICustomFilter AddMultiplePropStringTextBox(string labelText, List<string> propertyNames, FilterClauseOperator filterClauseOperator)
 {
     MultiplePropStringTextBoxFilter filter = new MultiplePropStringTextBoxFilter(_controlFactory, propertyNames, filterClauseOperator);
     AddCustomFilter(labelText,  filter);
     return filter;
 }
 /// <summary>
 /// Creates a new filter clause that filters string values
 /// </summary>
 /// <param name="filterColumn">The column of data on which to do the
 /// filtering</param>
 /// <param name="clauseOperator">The clause operator</param>
 /// <param name="filterValue">The filter value to be compared to</param>
 /// <returns>Returns the new filter clause object</returns>
 public IFilterClause CreateStringFilterClause(string filterColumn, FilterClauseOperator clauseOperator,
                                               string filterValue)
 {
     return new DataViewStringFilterClause(filterColumn, clauseOperator, filterValue);
 }
 ///<summary>
 /// Constructor for <see cref="StringStaticFilter"/>
 ///</summary>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 ///<param name="constantvalue">The Constant Value that is being used in this filter</param>
 public StringStaticFilter(string propertyName, FilterClauseOperator filterClauseOperator, string constantvalue)
 {
     _propertyName = propertyName;
     _filterClauseOperator = filterClauseOperator;
     _constantvalue = constantvalue;
 }
 /// <summary>
 /// Creates an Filter Clause for an enum data Type.
 /// </summary>
 /// <param name="columnName"/><param name="clauseOperator"/><param name="enumValue"/>
 /// <returns/>
 public IFilterClause CreateEnumFilterClause(string columnName, FilterClauseOperator clauseOperator, object enumValue)
 {
     return new DataViewEnumFilterClause(columnName, clauseOperator, enumValue);
 }
 private static FilterPropertyDef CreateFilterPropertyDef
     (string propName, string filterType, string filterTypeAssembly, FilterClauseOperator filterClauseOperator)
 {
     return new FilterPropertyDef
         (propName, TestUtil.GetRandomString(), filterType, filterTypeAssembly, filterClauseOperator, new Dictionary<string, string>());
 }
 /// <summary>
 /// See <see cref="IFilterControl.AddStringFilterTextBox(string,string,FilterClauseOperator)"/>
 /// </summary>
 public ICustomFilter AddStringFilterTextBox(string labelText, string propertyName, FilterClauseOperator filterClauseOperator)
 {
     StringTextBoxFilter filter = new StringTextBoxFilter(_controlFactory, propertyName, filterClauseOperator);
     AddCustomFilter(labelText,  filter);
     return filter;
 }
 ///<summary>
 /// Adds a static string filter <see cref="StringStaticFilter"/> to the Filter Control.
 /// This allows the developer to set a filter that is always applied and is not editable by or visible to the End user.
 ///</summary>
 ///<param name="propertyName"></param>
 ///<param name="filterClauseOperator"></param>
 ///<param name="filterValue"></param>
 public void AddStaticStringFilterClause(string propertyName, FilterClauseOperator filterClauseOperator, string filterValue)
 {
     StringStaticFilter filter = new StringStaticFilter(propertyName, filterClauseOperator, filterValue);
     _filterControls.Add(filter);
 }
        /// <summary>
        /// See <see cref="IFilterControl.AddDateFilterDateTimePicker"/>
        /// </summary>
        public ICustomFilter AddDateFilterDateTimePicker(string labelText, string propertyName, FilterClauseOperator filterClauseOperator, DateTime? defaultDate)
        {
            DateTimePickerFilter filter = new DateTimePickerFilter(_controlFactory, propertyName, filterClauseOperator);
            AddCustomFilter(labelText, filter);
            if (defaultDate != null)
            {
                filter.DefaultDate = defaultDate.Value;
            }
            

            return filter;
        }
        /// <summary>
        /// Converts the <see cref="FilterClauseOperator"/> enum to
        /// a string.
        /// </summary>
        /// <param name="clauseOperator"></param>
        /// <returns></returns>
        public string ConvertToString(FilterClauseOperator clauseOperator)
        {
            string opClause;
            switch (clauseOperator)
            {
                case FilterClauseOperator.OpEquals:
                    opClause = " = ";
                    break;
                case FilterClauseOperator.OpLike:
                    opClause = " like ";
                    break;
                case FilterClauseOperator.OpGreaterThanOrEqualTo:
                    opClause = " >= ";
                    break;
                case FilterClauseOperator.OpLessThanOrEqualTo:
                    opClause = " <= ";
                    break;
                case FilterClauseOperator.OpGreaterThan:
                    opClause = " > ";
                    break;
                case FilterClauseOperator.OpLessThan:
                    opClause = " < ";
                    break;

                case FilterClauseOperator.OpNotEqual:
                    opClause = " <> ";
                    break;
                default:
                    opClause = " " + clauseOperator + " ";
                    //opClause = " <unsupported operator> ";
                    break;
            }
            return opClause; 
        }