// Methods
 public ASPxCriteriaPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
     this.disposablePropertyEditors = new List <IDisposable>();
     this.testableControls          = new List <ITestable>();
     this.valueParsers = new List <ICustomValueParser>();
 }
예제 #2
0
        public WebFilterableEnumPropertyEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model) {
            PropertyInfo propertyInfo = ObjectType.GetProperty(PropertyName);
            if (propertyInfo != null) {
                _propertyType = propertyInfo.PropertyType;
                foreach (object item in propertyInfo.GetCustomAttributes(false)) {
                    var propAttr = item as DataSourcePropertyAttribute;
                    if (propAttr != null && !string.IsNullOrEmpty(propAttr.DataSourceProperty)) {
                        PropertyInfo dataSourceProperty = ObjectType.GetProperty(propAttr.DataSourceProperty);
                        _isNullMode = propAttr.DataSourcePropertyIsNullMode;
                        _isNullCriteria = propAttr.DataSourcePropertyIsNullCriteria;
                        if (dataSourceProperty != null) {
                            if (typeof(IEnumerable).IsAssignableFrom(dataSourceProperty.PropertyType) &&
                                dataSourceProperty.PropertyType.IsGenericType &&
                                dataSourceProperty.PropertyType.GetGenericArguments()[0].IsAssignableFrom(
                                    propertyInfo.PropertyType))
                                _dataSourceProperty = dataSourceProperty;
                        }
                    }

                    var criteriaAttr = item as DataSourceCriteriaAttribute;
                    if (criteriaAttr != null)
                        _isNullCriteria = criteriaAttr.DataSourceCriteria;
                }
            }
        }
 public SerializableObjectPropertyEditor(Type objectType, IModelMemberViewItem modelMemberViewItem)
     : base(objectType, modelMemberViewItem) {
     SerializableObjectPropertyEditorBuilder.Create()
         .WithApplication(() => _application)
         .WithPropertyEditor(this).
         Build(editor => editor.Control);
 }
 public SerializableObjectPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     SerializableObjectPropertyEditorBuilder.Create()
         .WithPropertyEditor(this)
         .WithApplication(() => _application)
         .Build(propertyEditor => ((TableEx) propertyEditor.Control).Rows[0].Cells[1].Controls[0]);
 }
예제 #5
0
파일: EnumEdit.cs 프로젝트: xwagner2/eXpand
        public void Setup(XafApplication application, IObjectSpace objectSpace, IModelMemberViewItem model)
        {
            _application          = application;
            _objectSpace          = objectSpace;
            _model                = model;
            _propertyMemberInfo   = null;
            _dataSourceMemberInfo = null;
            ITypeInfo typeInfo = GetObjectTypeInfo(model);

            if (typeInfo == null)
            {
                return;
            }
            _propertyMemberInfo = typeInfo.FindMember(model.PropertyName);
            if (!String.IsNullOrEmpty(model.DataSourceProperty))
            {
                var builder = new StringBuilder(model.DataSourceProperty);
                IList <IMemberInfo> path = _propertyMemberInfo.GetPath();
                for (int index = path.Count - 2; index >= 0; index--)
                {
                    builder.Insert(0, ".").Insert(0, path[index].Name);
                }
                _dataSourceMemberInfo = typeInfo.FindMember(builder.ToString());
            }
            Init(_propertyMemberInfo.MemberType);
        }
 public SerializableObjectPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
     SerializableObjectPropertyEditorBuilder.Create()
     .WithPropertyEditor(this)
     .WithApplication(() => _application)
     .Build(propertyEditor => ((TableEx)propertyEditor.Control).Rows[0].Cells[1].Controls[0]);
 }
예제 #7
0
 public SerializableObjectPropertyEditor(Type objectType, IModelMemberViewItem modelMemberViewItem)
     : base(objectType, modelMemberViewItem)
 {
     SerializableObjectPropertyEditorBuilder.Create()
     .WithApplication(() => _application)
     .WithPropertyEditor(this).
     Build(editor => editor.Control);
 }
예제 #8
0
 string GetToolTipCore(IModelMemberViewItem model, object editValue) {
     string name = Enum.GetName(model.ModelMember.Type, editValue);
     if (!(string.IsNullOrEmpty(name))) {
         var tooltipAttribute = XafTypesInfo.Instance.FindTypeInfo(model.ModelMember.Type).FindMember(name).FindAttribute<TooltipAttribute>();
         return tooltipAttribute != null ? Environment.NewLine + tooltipAttribute.Value : null;
     }
     return null;
 }
예제 #9
0
 string GetToolTipCore(IModelMemberViewItem model, object editValue) {
     string name = Enum.GetName(model.ModelMember.Type, editValue);
     if (!(string.IsNullOrEmpty(name))) {
         var memInfo = model.ModelMember.Type.GetMember(name);
         var tooltipAttribute = memInfo[0].GetCustomAttributes(typeof(TooltipAttribute), false).OfType<TooltipAttribute>().FirstOrDefault();
         return tooltipAttribute != null ? Environment.NewLine + tooltipAttribute.Value : null;
     }
     return null;
 }
        protected virtual FilterControlColumn CreateFilterControlColumn(DataColumnInfo columnInfo, CriteriaEditorHelper editorHelper, List <ITestable> testableControls)
        {
            FilterControlColumn column = null;
            ITypeInfo           info2;
            IMemberInfo         memberInfo = editorHelper.FilteredTypeInfo.FindMember(columnInfo.Name);

            if ((memberInfo == null) || !memberInfo.IsVisible)
            {
                return(null);
            }
            IModelMemberViewItem modelDetailViewItem = this.CreatePropertyEditorModel(memberInfo, out info2);
            ASPxPropertyEditor   testable            = this.CreatePropertyEditor(false, modelDetailViewItem, info2, editorHelper.Application, editorHelper.ObjectSpace);

            if (testable != null)
            {
                testable.ViewEditMode = ViewEditMode.Edit;
                testable.CreateControl();
                if (((testable.TestControl != null) && !(testable is ASPxLookupPropertyEditor)) && !SimpleTypes.IsClass(columnInfo.Type))
                {
                    testableControls.Add(new TestableUnknownClientIdWrapper(testable));
                }
            }
            if (testable is ICustomValueParser)
            {
                this.valueParsers.Add((ICustomValueParser)testable);
            }
            if (testable != null)
            {
                this.disposablePropertyEditors.Add(testable);
                if ((testable is ASPxLookupPropertyEditor) || SimpleTypes.IsClass(columnInfo.Type))
                {
                    FilterControlLookupEditColumn column2 = new FilterControlLookupEditColumn
                    {
                        PropertiesLookupEdit = { ObjectSpace = editorHelper.ObjectSpace, ObjectTypeInfo = editorHelper.FilteredTypeInfo, MemberInfo = memberInfo, Model = modelDetailViewItem }
                    };
                    column2.PropertiesLookupEdit.Model.LookupEditorMode = LookupEditorMode.AllItems;
                    column2.TestCaption = testable.TestCaption;
                    testableControls.Add(new TestableUnknownClientIdWrapper(column2));
                    column = column2;
                }
                else
                {
                    column = new FilterControlPropertyEditorColumn(memberInfo.MemberType)
                    {
                        PropertiesASPxPropertyEditor = { ASPxPropertyEditor = testable }
                    };
                }
            }
            if (column == null)
            {
                column = this.CreateFilterControlColumnByType(columnInfo.Type);
            }
            column.PropertyName = columnInfo.Name.Replace("!", "");
            column.DisplayName  = CaptionHelper.GetMemberCaption(editorHelper.FilteredTypeInfo, column.PropertyName);
            return(column);
        }
예제 #11
0
 public RichEditWinPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
     if (model is IModelColumn)
     {
         return;
     }
     _modelRichEditEx       = model.GetNode(ViewItemService.PropertyEditorControlMapName).Nodes().OfType <IModelRichEditEx>().First();
     ControlBindingProperty = _modelRichEditEx.ControlBindingProperty;
 }
예제 #12
0
 public FolderBrowseEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     var propertyType = model.ModelMember.Type;
     var validTypes = new List<Type>{
         typeof(string) 
     };
     if (!validTypes.Contains(propertyType))
         throw new Exception("Can't use FolderBrowseEditor with property type " + propertyType.FullName);
     ControlBindingProperty = "Value";
 }
예제 #13
0
        public FlowChartPropertyEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model)
        {
            this._actions = new List <ActionBase>();

            this.DoCommandAction             = new SimpleAction(null, base.PropertyName + "_NavigateToObject_" + Guid.NewGuid(), base.PropertyName + "_Edit");
            this.DoCommandAction.Application = application;
            this.DoCommandAction.Execute    += DoCommandAction_Execute;

            this.Actions.Add(this.DoCommandAction);
        }
예제 #14
0
        string GetToolTipCore(IModelMemberViewItem model, object editValue)
        {
            string name = Enum.GetName(model.ModelMember.Type, editValue);

            if (!(string.IsNullOrEmpty(name)))
            {
                var tooltipAttribute = XafTypesInfo.Instance.FindTypeInfo(model.ModelMember.Type).FindMember(name).FindAttribute <TooltipAttribute>();
                return(tooltipAttribute != null ? Environment.NewLine + tooltipAttribute.Value : null);
            }
            return(null);
        }
예제 #15
0
        string GetToolTipCore(IModelMemberViewItem model, object editValue)
        {
            string name = Enum.GetName(model.ModelMember.Type, editValue);

            if (!(string.IsNullOrEmpty(name)))
            {
                var memInfo          = model.ModelMember.Type.GetMember(name);
                var tooltipAttribute = memInfo[0].GetCustomAttributes(typeof(TooltipAttribute), false).OfType <TooltipAttribute>().FirstOrDefault();
                return(tooltipAttribute != null ? Environment.NewLine + tooltipAttribute.Value : null);
            }
            return(null);
        }
예제 #16
0
        public AddressPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
        {
            var propertyType = model.ModelMember.Type;
            var validTypes   = new List <Type> {
                typeof(Address)
            };

            if (!validTypes.Contains(propertyType))
            {
                throw new Exception("Can't use AddressPropertyEditor with property type " + propertyType.FullName);
            }
            this.ControlBindingProperty = "TestAddress";
        }
예제 #17
0
        public FolderBrowseEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model)
        {
            var propertyType = model.ModelMember.Type;
            var validTypes   = new List <Type> {
                typeof(string)
            };

            if (!validTypes.Contains(propertyType))
            {
                throw new Exception("Can't use FolderBrowseEditor with property type " + propertyType.FullName);
            }
            ControlBindingProperty = "Value";
        }
예제 #18
0
파일: EnumEdit.cs 프로젝트: xwagner2/eXpand
        public override void Assign(RepositoryItem item)
        {
            var source = item as RepositoryItemXafEnumEdit;

            if (source != null)
            {
                _application          = source._application;
                _objectSpace          = source._objectSpace;
                _model                = source._model;
                _propertyMemberInfo   = source._propertyMemberInfo;
                _dataSourceMemberInfo = source._dataSourceMemberInfo;
            }
            base.Assign(item);
        }
        protected ASPxPropertyEditor CreatePropertyEditor(bool needProtectedContent, IModelMemberViewItem modelDetailViewItem, ITypeInfo objectType, XafApplication application, IObjectSpace objectSpace)
        {
            CustomCreatePropertyEditorEventArgs e = new CustomCreatePropertyEditorEventArgs();

            if (this.CustomCreatePropertyEditor != null)
            {
                this.CustomCreatePropertyEditor(this, e);
            }
            if (((e.PropertyEditor == null) && (modelDetailViewItem != null)) && (modelDetailViewItem.PropertyEditorType != null))
            {
                e.PropertyEditor = this.editorHelper.Application.EditorFactory.CreateDetailViewEditor(needProtectedContent, modelDetailViewItem, objectType.Type, application, objectSpace) as ASPxPropertyEditor;
            }
            if (e.PropertyEditor != null)
            {
                e.PropertyEditor.ImmediatePostData = false;
            }
            return(e.PropertyEditor);
        }
예제 #20
0
        internal static void MapModelMemberViewItem(
            IModelMemberViewItem modelColumn,
            Column column
            )
        {
            modelColumn.PropertyName
                = column.PropertyName ?? modelColumn.PropertyName;

            if (column.DataSourceProperty is not null)
            {
                modelColumn.DataSourceProperty
                    = column.DataSourceProperty;
            }
            if (column.DataSourceCriteriaProperty is not null)
            {
                modelColumn.DataSourceCriteriaProperty
                    = column.DataSourceCriteriaProperty;
            }
            if (column.MaxLength.HasValue)
            {
                modelColumn.MaxLength
                    = column.MaxLength ?? modelColumn.MaxLength;
            }
            if (column.ImageEditorCustomHeight.HasValue)
            {
                modelColumn.ImageEditorCustomHeight
                    = column.ImageEditorCustomHeight ?? modelColumn.ImageEditorCustomHeight;
            }
            if (column.ImageEditorMode.HasValue)
            {
                modelColumn.ImageEditorMode
                    = column.ImageEditorMode ?? modelColumn.ImageEditorMode;
            }
            if (column.ImageEditorFixedWidth.HasValue)
            {
                modelColumn.ImageEditorFixedWidth
                    = column.ImageEditorFixedWidth ?? modelColumn.ImageEditorFixedWidth;
            }
            if (column.ImageEditorFixedHeight.HasValue)
            {
                modelColumn.ImageEditorFixedHeight
                    = column.ImageEditorFixedHeight ?? modelColumn.ImageEditorFixedHeight;
            }
        }
        private Control CreateDocumentItemEditor(DocumentItemBase item)
        {
            IModelMemberViewItem modelViewItem = (IModelMemberViewItem)application.FindModelClass(item.GetType()).DefaultDetailView.Items["Value"];

            if (modelViewItem != null)
            {
                WinPropertyEditor propertyEditor = (WinPropertyEditor)application.EditorFactory.CreatePropertyEditorByType(modelViewItem.PropertyEditorType, modelViewItem, item.GetType(), application, objectSpace);
                propertyEditor.CurrentObject = item;
                propertyEditor.CreateControl();
                propertyEditor.Control.Name = GetId("Editor", item);
                if (propertyEditor.Control is CheckEdit)
                {
                    ((CheckEdit)propertyEditor.Control).Text = String.Empty;
                }
                propertyEditor.ControlValueChanged += new EventHandler(propertyEditor_ControlValueChanged);
                return(propertyEditor.Control);
            }
            return(null);
        }
예제 #22
0
        public WebFilterableEnumPropertyEditor(Type objectType, IModelMemberViewItem model)
            : base(objectType, model)
        {
            PropertyInfo propertyInfo = ObjectType.GetProperty(PropertyName);

            if (propertyInfo != null)
            {
                _propertyType = propertyInfo.PropertyType;
                foreach (object item in propertyInfo.GetCustomAttributes(false))
                {
                    var propAttr = item as DataSourcePropertyAttribute;
                    if (propAttr != null && !string.IsNullOrEmpty(propAttr.DataSourceProperty))
                    {
                        PropertyInfo dataSourceProperty = ObjectType.GetProperty(propAttr.DataSourceProperty);
                        _isNullMode     = propAttr.DataSourcePropertyIsNullMode;
                        _isNullCriteria = propAttr.DataSourcePropertyIsNullCriteria;
                        if (dataSourceProperty != null)
                        {
                            if (typeof(IEnumerable).IsAssignableFrom(dataSourceProperty.PropertyType) &&
                                dataSourceProperty.PropertyType.IsGenericType &&
                                dataSourceProperty.PropertyType.GetGenericArguments()[0].IsAssignableFrom(
                                    propertyInfo.PropertyType))
                            {
                                _dataSourceProperty = dataSourceProperty;
                            }
                        }
                    }

                    var criteriaAttr = item as DataSourceCriteriaAttribute;
                    if (criteriaAttr != null)
                    {
                        _isNullCriteria = criteriaAttr.DataSourceCriteria;
                    }
                }
            }
        }
예제 #23
0
 protected override void SetDetailViewToolTips()
 {
     foreach (PropertyEditor editor in ((DetailView)View).GetItems <PropertyEditor>())
     {
         var edit = editor.Control as BaseEdit;
         if (edit != null)
         {
             IModelMemberViewItem modelMemberViewItem = editor.Model;
             if (modelMemberViewItem.ModelMember.MemberInfo.MemberType.IsEnum)
             {
                 edit.EditValueChanged += (sender, args) => {
                     if (TooltipCalculator.HasToolTip(modelMemberViewItem))
                     {
                         edit.ToolTip = TooltipCalculator.GetToolTip(modelMemberViewItem, edit.EditValue);
                     }
                 };
             }
             if (TooltipCalculator.HasToolTip(modelMemberViewItem))
             {
                 edit.ToolTip = TooltipCalculator.GetToolTip(modelMemberViewItem);
             }
         }
     }
 }
예제 #24
0
 public DurationAsTextPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
 }
예제 #25
0
 public TralusDateEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
 }
예제 #26
0
 public DashboardViewEditorWeb(Type objectType, IModelMemberViewItem model) : base(objectType, model) { }
예제 #27
0
 ITypeInfo GetObjectTypeInfo(IModelMemberViewItem model) {
     var objectView = model.ParentView as IModelObjectView;
     return objectView != null ? objectView.ModelClass.TypeInfo : null;
 }
예제 #28
0
 public DisplayTextPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
 {
 }
예제 #29
0
 public RadialMenuPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
 }
예제 #30
0
 public ASPxDateTimePropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model) {
 }
예제 #31
0
 public XpandDatePropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
 }
예제 #32
0
 public XpandBooleanPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     ControlBindingProperty = "EditValue";
 }
 public IntelligVariantPropertyEditor(Type type, IModelMemberViewItem viewItem)
     : base(type, viewItem)
 {
 }
예제 #34
0
 public override void Assign(RepositoryItem item) {
     var source = item as RepositoryItemXafEnumEdit;
     if (source != null) {
         _application = source._application;
         _objectSpace = source._objectSpace;
         _model = source._model;
         _propertyMemberInfo = source._propertyMemberInfo;
         _dataSourceMemberInfo = source._dataSourceMemberInfo;
     }
     base.Assign(item);
 }
 public ExtLookupPropertyEditor(Type objectType, IModelMemberViewItem info)
     : base(objectType, info)
 {
 }
 public LookupPropertyEditorEx(Type objectType, IModelMemberViewItem item)
     : base(objectType, item)
 {
 }
예제 #37
0
 public XpandBooleanPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
     ControlBindingProperty = "EditValue";
 }
예제 #38
0
 public EnumPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     ImmediatePostData = model.ImmediatePostData;
 }
 public XafBootstrapPopupCriteriaPropertyEditor(Type objectType, IModelMemberViewItem info)
     : base(objectType, info)
 {
 }
예제 #40
0
 public SearchLookUpEditPropertyEditor(Type objectType, IModelMemberViewItem item)
     : base(objectType, item)
 {
 }
예제 #41
0
 public CSCodePropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
 }
 public XafBootstrapStringPropertyEditor(Type objectType, IModelMemberViewItem info)
     : base(objectType, info)
 {
 }
 public NavigationActionContainerPropertyEditor(Type objectType, IModelMemberViewItem info) : base(objectType, info)
 {
 }
예제 #44
0
 public RichEditWinPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     ControlBindingProperty = "Text";
 }
예제 #45
0
 public AnalysisEditorWeb(Type objectType, IModelMemberViewItem info)
     : base(objectType, info)
 {
 }
예제 #46
0
 public HyperLinkPropertyEditor(Type objectType, IModelMemberViewItem info)
     : base(objectType, info) {
 }
예제 #47
0
 public static bool IsLayout(this IModelMemberViewItem modelPropertyEditor)
 => ((IModelViewItem)modelPropertyEditor).IsLayout();
예제 #48
0
 public TimeZoneEditPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model) {
 }
예제 #49
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WebViewUriPropertyEditor"/> class.
 /// </summary>
 /// <param name="objectType">Type of the object.</param>
 /// <param name="model">The model.</param>
 /// <autogeneratedoc />
 public WebViewUriPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
 {
     ControlBindingProperty = nameof(Control.Source);
     ControlCreated        -= WebViewUriPropertyEditor_ControlCreated;
     ControlCreated        += WebViewUriPropertyEditor_ControlCreated;
 }
 public ReleasedSequencePropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
 }
 public CharPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
 }
예제 #52
0
 public ASPxSearchLookupPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model) {
     skipEditModeDataBind = true;
 }
예제 #53
0
 public DashboardXMLEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
 {
 }
        public ChooseFromListCollectionEditor(Type objectType, IModelMemberViewItem info)
            : base(objectType, info) {

        }
예제 #55
0
 public MultiFileUploadEditor(Type objectType, IModelMemberViewItem info) : base(objectType, info)
 {
 }
예제 #56
0
 public StringLookupPropertyEditor(Type objectType, IModelMemberViewItem model)
     : base(objectType, model)
 {
 }
예제 #57
0
 public DashboardTypesEditor(Type objectType, IModelMemberViewItem info)
     : base(objectType, info)
 {
 }
예제 #58
0
 public WebCheckedListBoxPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
 {
 }
예제 #59
0
 public ASPxDateTimePropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model)
 {
 }
예제 #60
0
 public void Setup(XafApplication application, IObjectSpace objectSpace, IModelMemberViewItem model) {
     _application = application;
     _objectSpace = objectSpace;
     _model = model;
     _propertyMemberInfo = null;
     _dataSourceMemberInfo = null;
     ITypeInfo typeInfo = GetObjectTypeInfo(model);
     if (typeInfo == null) return;
     _propertyMemberInfo = typeInfo.FindMember(model.PropertyName);
     if (!String.IsNullOrEmpty(model.DataSourceProperty)) {
         var builder = new StringBuilder(model.DataSourceProperty);
         IList<IMemberInfo> path = _propertyMemberInfo.GetPath();
         for (int index = path.Count - 2; index >= 0; index--)
             builder.Insert(0, ".").Insert(0, path[index].Name);
         _dataSourceMemberInfo = typeInfo.FindMember(builder.ToString());
     }
     Init(_propertyMemberInfo.MemberType);
 }