コード例 #1
0
ファイル: FilterMng.cs プロジェクト: anastasiaramos/CslaEx
        public static FilterItem BuildFilterItem(object value,
                                                 string propertyName,
                                                 IFilterProperty filterProperty,
                                                 Operation operation,
                                                 Type entityType, String propLabel)
        {
            FilterItem fItem = new FilterItem();

            fItem.Column         = propertyName;
            fItem.Property       = propertyName;
            fItem.FilterProperty = filterProperty;
            fItem.Operation      = operation;
            fItem.EntityType     = entityType;
            try
            {
                fItem.TableColumn = (filterProperty == IFilterProperty.ByParamenter) ? nHManager.Instance.GetTableColumn(entityType, propertyName) : null;
            }
            catch { }
            fItem.ColumnTitle = propLabel;

            if (filterProperty == IFilterProperty.ByParamenter)
            {
                if ((fItem.TableColumn.Type is NHibernate.Type.DateTimeType) ||
                    (fItem.TableColumn.Type is NHibernate.Type.DateType))
                {
                    if (fItem.Operation == Operation.Contains)
                    {
                        fItem.Operation = Operation.Equal;
                    }

                    switch (fItem.Operation)
                    {
                    case Operation.Equal:
                    case Operation.Distinct:
                        fItem.Value = ((DateTime)value).ToShortDateString() + " 0:00:00";
                        break;

                    case Operation.Greater:
                    case Operation.LessOrEqual:
                        fItem.Value = ((DateTime)value).ToShortDateString() + " 23:59:59";
                        break;

                    case Operation.Less:
                    case Operation.GreaterOrEqual:
                        fItem.Value = ((DateTime)value).ToShortDateString() + " 0:00:00";
                        break;
                    }
                }
                else
                {
                    fItem.Value = value;
                }
            }
            else
            {
                fItem.Value = value;
            }

            return(fItem);
        }
コード例 #2
0
 public void NewFilter(object value,
                       string propertyName,
                       IFilterProperty filterProperty,
                       Operation operation,
                       Type entityType, String propLabel)
 {
     this.Add(FilterMng.BuildFilterItem(value,
                                        propertyName,
                                        filterProperty,
                                        operation,
                                        entityType, propLabel));
 }
コード例 #3
0
        public static void SetSelectAll <T1, T2>(T1 sender, ObservableCollection <T2> list)
        {
            IFilterProperty changedFilter = (IFilterProperty)sender;
            bool            selectedValue = changedFilter.IsSelected;

            //Set select/unselect all
            if (string.IsNullOrEmpty(changedFilter.Value))
            {
                bool allValue = changedFilter.IsSelected;
                if (allValue)
                {
                    for (int i = 1; i < list.Count; i++)
                    {
                        IFilterProperty filter = (IFilterProperty)list[i];
                        if (filter.IsSelected != true)
                        {
                            filter.IsSelected = true;
                        }
                    }
                }
            }
            else
            {
                IFilterProperty allFilter  = (IFilterProperty)list[0];
                int             matchCount = 0;
                for (int i = 1; i < list.Count; i++)
                {
                    IFilterProperty filter = (IFilterProperty)list[i];
                    if (filter.IsSelected == selectedValue)
                    {
                        matchCount++;
                    }
                }

                if (matchCount == list.Count - 1)
                {
                    if (allFilter.IsSelected != true)
                    {
                        allFilter.IsSelected = true;
                    }
                }
                else
                {
                    if (allFilter.IsSelected)
                    {
                        allFilter.IsSelected = false;
                    }
                }
            }
        }
コード例 #4
0
        public static FilterItem BuildFilterItem(object value,
                                                 string propertyName,
                                                 Type propertytype,
                                                 IFilterProperty filterProperty,
                                                 Operation operation)
        {
            FilterItem fItem = new FilterItem();

            fItem.Column         = propertyName;
            fItem.Property       = propertyName;
            fItem.FilterProperty = filterProperty;
            fItem.Operation      = operation;

            if (propertytype == typeof(DateTime))
            {
                if (fItem.Operation == Operation.Contains)
                {
                    fItem.Operation = Operation.Equal;
                }

                switch (fItem.Operation)
                {
                case Operation.Equal:
                case Operation.Distinct:
                    fItem.Value = ((DateTime)value).ToShortDateString() + " 0:00:00";
                    break;

                case Operation.Greater:
                case Operation.LessOrEqual:
                    fItem.Value = ((DateTime)value).ToShortDateString() + " 23:59:59";
                    break;

                case Operation.Less:
                case Operation.GreaterOrEqual:
                    fItem.Value = ((DateTime)value).ToShortDateString() + " 0:00:00";
                    break;
                }
            }
            else
            {
                fItem.Value = value;
            }

            return(fItem);
        }
コード例 #5
0
        private IEnumerable <XNode> GetFilterPropertyNodes(IFilterProperty filterProperty)
        {
            var filterPropertyNode = new XElement(FileFormat.Node_FilterProperty);

            filterPropertyNode.Add(new XAttribute(FileFormat.Node_FilterProperty_Name, filterProperty.Name));

            object propertyValue = filterProperty.Value;

            if (propertyValue != null)
            {
                FilterPropertyType propertyType = filterProperty.Type;
                if (IsSerializableAsString(propertyType))
                {
                    string valueAsStr = SerializeAsString(propertyType, propertyValue);
                    filterPropertyNode.Add(new XAttribute(FileFormat.Node_FilterProperty_Value, valueAsStr));
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            yield return(filterPropertyNode);
        }
コード例 #6
0
        public static FilterItem BuildFilterItem(object value,
                                                 string propertyName,
                                                 IFilterProperty filterProperty,
                                                 Operation operation,
                                                 Type entityType, String propLabel)
        {
            FilterItem fItem = new FilterItem();

            fItem.Column         = propertyName;
            fItem.Property       = propertyName;
            fItem.FilterProperty = filterProperty;
            fItem.Operation      = operation;
            fItem.EntityType     = entityType;

            Type entityRecordType = AppControllerBase.AppControler.RecordEntities[fItem.EntityType];

            try
            {
                fItem.TableColumn = (filterProperty == IFilterProperty.ByParamenter) ? nHManager.Instance.GetTableColumn(entityRecordType, propertyName) : null;
            }
            catch { /* no existe la propiedad en esta tabla por lo que es de un join */ }
            fItem.ColumnTitle = propLabel;

            if ((filterProperty == IFilterProperty.ByParamenter) && (fItem.TableColumn != null))
            {
                if (fItem.TableColumn.Value.Type is NHibernate.Type.DateTimeType)
                {
                    if (fItem.Operation == Operation.Contains)
                    {
                        fItem.Operation = Operation.Equal;
                    }

                    switch (fItem.Operation)
                    {
                    case Operation.Equal:
                    case Operation.Distinct:
                        fItem.Value = (value is DateTime)
                                                                                        ? DateTime.Parse(((DateTime)value).ToShortDateString() + " 0:00:00")
                                                                                        : DateTime.Parse(DateTime.Parse((string)value).ToShortDateString() + " 0:00:00");
                        break;

                    case Operation.Greater:
                    case Operation.LessOrEqual:
                        fItem.Value = (value is DateTime)
                                                                                        ? DateTime.Parse(((DateTime)value).ToShortDateString() + " 23:59:59")
                                                                                        : DateTime.Parse(DateTime.Parse((string)value).ToShortDateString() + " 23:59:59");

                        break;

                    case Operation.Less:
                    case Operation.GreaterOrEqual:
                        fItem.Value = (value is DateTime)
                                                                                        ? DateTime.Parse(((DateTime)value).ToShortDateString() + " 0:00:00")
                                                                                        : DateTime.Parse(DateTime.Parse((string)value).ToShortDateString() + " 0:00:00");
                        break;
                    }
                }
                else
                {
                    fItem.Value = value;
                }
            }
            else
            {
                fItem.Value = value;
            }

            return(fItem);
        }
コード例 #7
0
        public GraphNode(IFilter filter)
        {
            InitializeComponent();

            _filter = filter;
            _filter.OnPinsChanged += OnPinsChanged;
            _filter.OnProcessingProgressChanged += OnProcessingProgressChanged;
            _filter.OnProcessingStateChanged    += OnProcessingStateChanged;

            UpdateSize(_filter);

            var table = new TableLayoutPanel
            {
                Size     = new Size(Width - 2, _filter.Properties.Count * PropertyHeight),
                Location = new Point(1, HeaderHeight + 2)
            };

            table.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100));

            for (int i = 0; i < _filter.Properties.Count; i++)
            {
                IFilterProperty    property = _filter.Properties.Skip(i).First().Value;
                BasePropertyEditor editor;
                switch (property.Type)
                {
                case FilterPropertyType.String:
                    editor = new PathEditor {
                        Value = property.Value
                    };
                    break;

                case FilterPropertyType.Float:
                case FilterPropertyType.Integer:
                    editor = new NumericEditor((INumericProperty)property)
                    {
                        Value = Convert.ToDecimal(property.Value)
                    };
                    break;

                case FilterPropertyType.Size:
                case FilterPropertyType.Point:
                    editor = new PointEditor((IPointProperty)property)
                    {
                        Value = property.Value
                    };
                    break;

                case FilterPropertyType.Enum:
                    editor = new EnumEditor((IEnumProperty)property)
                    {
                        Value = property.Value
                    };
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                editor.Dock            = DockStyle.Fill;
                editor.Margin          = new Padding(0);
                editor.OnValueChanged += newValue => { property.Value = newValue; };

                table.RowStyles.Add(new RowStyle(SizeType.AutoSize));
                table.SetRow(editor, i);
                table.SetColumn(editor, 1);

                var label = new Label
                {
                    Text     = property.Name,
                    Margin   = new Padding(0),
                    Dock     = DockStyle.Right,
                    AutoSize = true,
                    Anchor   = AnchorStyles.Right
                };
                table.SetRow(label, i);
                table.SetColumn(label, 0);
                table.Controls.Add(label);
                table.Controls.Add(editor);
            }
            Controls.Add(table);
        }
コード例 #8
0
ファイル: Filter.cs プロジェクト: kholodovitch/opencv-graph
 protected void AddProperty(IFilterProperty property)
 {
     lock (_properties)
         _properties.Add(property.Name, property);
 }