Example #1
0
        /// <summary>
        /// Executes the filter options.
        /// </summary>
        /// <param name="o">The o.</param>
        private void ExecuteFilterOptions(SimpleFilterViewModel o)
        {
            if (o.SelectedMember == null)
            {
                return;
            }

            var propertyDefinition = (FieldPathPropertyDefinition)o.SelectedMember.ItemPropertyDefinition;
            var filteringProcessSystemName = propertyDefinition.DeclaringProcessSystemName;

            FilterOptionsVM.Value.CleanUp();
            FilterOptionsVM.Value.ShowUdPs = true;
            FilterOptionsVM.Value.ShowSystemParameters = o.MemberType != typeof(ApprovalStates)
                                                         && (propertyDefinition.SystemName != Constants.CurrentStateColumnName);
            FilterOptionsVM.Value.Filter = o;
            FilterOptionsVM.Value.FilteringProcessSystemName = filteringProcessSystemName;
            FilterOptionsVM.Value.SetupCrossRefOptions(o, ProcessSystemName);
            FilterOptionsVM.Value.SetupReverseCrossRefOptions(o, ProcessSystemName);
            FilterOptionsVM.Value.SetupTreeViewOptions(o, ProcessSystemName);

            ThePopupFactory.Value.Popup()
                .SetCustomViewModel(FilterOptionsVM.Value)
                .SetIsModal(true)
                .SetIsChild(true)
                .SetCaption("Filter Options")
                .SetPosition(PopupPosition.Center)
                .Show(() =>
                {
                    if (FilterOptionsVM.Value.IsStaticValue)
                    {
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, null);
                        o.TriggerChange();
                    }
                    else if (FilterOptionsVM.Value.IsUdp)
                    {
                        var val = FilterValue.CreateUdp(FilterOptionsVM.Value.UserDefinedCaption, o.Member, FilterOptionsVM.Value.DefaultValue);
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, val);
                        o.TriggerChange();
                    }
                    else if (FilterOptionsVM.Value.IsSystemVariable)
                    {
                        var val = FilterValue.CreateSystemVariable(FilterOptionsVM.Value.SelectedSystemVariable.Caption, FilterOptionsVM.Value.SelectedSystemVariable.Value);
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, val);
                        o.TriggerChange();
                        
                        //o.Value = val.ToString();
                        //if (!(o.MemberType == typeof(IInfoClass) && !(val is IInfoClass)))
                        //{
                        //    o.Value = val.ToString();
                        //}
                    }
                });
        }