Esempio n. 1
0
        protected override Type GetDefaultEditorTypeFromModel(IAliasRegistration aliasRegistration, IModelNode modelNode)
        {
            var memberEditorInfoCalculator = new MemberEditorInfoCalculator();
            var parameterTypes             = new[] { typeof(IEditorTypeRegistration), typeof(IAliasRegistration), typeof(IModelNode) };
            var callMethod = memberEditorInfoCalculator.CallMethod("GetDefaultEditorTypeFromModel", parameterTypes, Flags.NonPublic | Flags.Instance, aliasRegistration, aliasRegistration, modelNode);

            return((Type)callMethod);
        }
Esempio n. 2
0
 protected override ColumnWrapper AddColumnCore(IModelColumn columnInfo) {
     var column = CreateGridColumn();
     GridView.Columns.Add((GridColumn)column);
     IMemberInfo memberInfo = FindMemberInfoForColumn(columnInfo);
     if (memberInfo != null) {
         column.FieldName = memberInfo.BindingName;
         if (memberInfo.MemberType.IsEnum) {
             column.SortMode = ColumnSortMode.Value;
         } else if (!SimpleTypes.IsSimpleType(memberInfo.MemberType)) {
             column.SortMode = ColumnSortMode.DisplayText;
             column.OptionsColumn.AllowSort = DefaultBoolean.True;
             column.OptionsColumn.AllowGroup = DefaultBoolean.True;
         }
         if (SimpleTypes.IsClass(memberInfo.MemberType) || memberInfo.MemberType.IsInterface) {
             column.FilterMode = ColumnFilterMode.DisplayText;
         } else {
             column.FilterMode = ColumnFilterMode.Value;
         }
     } else {
         column.FieldName = columnInfo.PropertyName;
     }
     ApplyModel(column, columnInfo);
     if (memberInfo != null) {
         if (repositoryFactory != null) {
             RepositoryItem repositoryItem = null;
             if (IsReplacedColumnByAsyncServerMode(columnInfo.PropertyName)) {
                 MemberEditorInfoCalculator calculator = new MemberEditorInfoCalculator();
                 Type editorType = calculator.GetEditorType(Model.ModelClass.FindMember(memberInfo.Name));
                 IInplaceEditSupport propertyEditor = Activator.CreateInstance(editorType, ObjectType, columnInfo) as IInplaceEditSupport;
                 repositoryItem = propertyEditor != null ? ((IInplaceEditSupport)propertyEditor).CreateRepositoryItem() : null;
             } else {
                 repositoryItem = repositoryFactory.CreateRepositoryItem(false, columnInfo, ObjectType);
             }
             if (repositoryItem != null) {
                 grid.RepositoryItems.Add(repositoryItem);
                 repositoryItem.EditValueChanging += new ChangingEventHandler(repositoryItem_EditValueChanging);
                 column.ColumnEdit = repositoryItem;
                 column.OptionsColumn.AllowEdit = IsDataShownOnDropDownWindow(repositoryItem) ? true : AllowEdit;
                 column.AppearanceCell.Options.UseTextOptions = true;
                 column.AppearanceCell.TextOptions.HAlignment = WinAlignmentProvider.GetAlignment(memberInfo.MemberType);
                 repositoryItem.ReadOnly |= !AllowEdit || ReadOnlyEditors;
                 if (Model.UseServerMode || (columnInfo.ModelMember.Type.IsInterface && !typeof(IComparable).IsAssignableFrom(memberInfo.MemberType))) {
                     column.FieldNameSortGroup = new ObjectEditorHelperBase(XafTypesInfo.Instance.FindTypeInfo(columnInfo.ModelMember.Type), columnInfo).GetFullDisplayMemberName(columnInfo.PropertyName);
                 }
                 if (repositoryItem is ILookupEditRepositoryItem) {
                     column.FilterMode = LookupColumnFilterMode;
                     if (LookupColumnFilterMode == ColumnFilterMode.Value) {
                         column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Equals;
                         column.OptionsFilter.FilterBySortField = DefaultBoolean.False;
                     } else {
                         column.OptionsFilter.FilterBySortField = DefaultBoolean.True;
                     }
                 }
                 if (repositoryItem is RepositoryItemMemoExEdit) {
                     column.OptionsColumn.AllowGroup = column.OptionsColumn.AllowSort = DefaultBoolean.True;
                 }
                 if ((repositoryItem is RepositoryItemPictureEdit) && (((RepositoryItemPictureEdit)repositoryItem).CustomHeight > 0)) {
                     GridView.OptionsView.RowAutoHeight = true;
                 }
                 if (repositoryItem is RepositoryItemRtfEditEx) {
                     column.FilterMode = ColumnFilterMode.DisplayText;
                 }
                 if (!repositoryItem.DisplayFormat.IsEmpty) {
                     column.DisplayFormat.FormatType = repositoryItem.DisplayFormat.FormatType;
                     column.DisplayFormat.Format = repositoryItem.DisplayFormat.Format;
                     column.DisplayFormat.FormatString = repositoryItem.DisplayFormat.FormatString;
                 }
             }
         }
         if ((column.ColumnEdit == null) && !typeof(IList).IsAssignableFrom(memberInfo.MemberType)) {
             column.OptionsColumn.AllowEdit = false;
             column.FieldName = GetDisplayablePropertyName(columnInfo.PropertyName);
         }
     }
     OnColumnCreated((GridColumn)column, columnInfo);
     if (!grid.IsLoading && gridView.DataController.Columns.GetColumnIndex(column.FieldName) == -1) {
         gridView.DataController.RePopulateColumns();
     }
     return CreateGridColumnWrapper(column);
 }