/// <summary> /// Get the replication key member. /// </summary> /// <param name="node">The node.</param> /// <returns>Replication key member</returns> public static IModelMember Get_ReplicationKeyMember(IReplicationKeyNode node) { IModelMember result = null; if (node is IModelClass) { var modelClass = node as IModelClass; foreach (var member in modelClass.OwnMembers.Where(x => !x.MemberInfo.IsKey && !x.MemberInfo.IsList)) { if (member.MemberInfo.FindAttribute <ReplicationKeyAttribute>() != null) { result = member; break; } } if (result == null) { string keyMemberName; if (predefinedKeys.TryGetValue(modelClass.Name, out keyMemberName)) { result = modelClass.AllMembers[keyMemberName]; } } } return(result); }
/// <summary> /// 检查一个非集合类型的属性是否需要导入 /// </summary> /// <param name="modelClass"></param> /// <param name="item"></param> /// <returns></returns> public static bool IsPropertyVisible(this IModelMember item) { //如果是非集合,并且有设置,则以设置的为准 var att = item.MemberInfo.FindAttribute <ImportOptionsAttribute>(); if (att != null) { return(att.NeedImport); } if (!item.MemberInfo.IsPublic) { return(false); } if (!item.MemberInfo.IsVisible) { return(false); } //只读属性,不需要导入 if (!item.MemberInfo.IsList && (item.MemberInfo.IsReadOnly || !item.AllowEdit)) { return(false); } if (!item.AllowEdit) { return(false); } return(true); }
protected override string GetPredefinedValues(IModelMember wrapper) { string ret = Application.Model.Views.Aggregate("", (current, view) => current + (view.Id + ";")); ret = ret.TrimEnd(';'); return(ret); }
protected override string GetPredefinedValues(IModelMember wrapper) { IQueryable <string> queryable = new XPQuery <ModelDifferenceObject>(((XPObjectSpace)ObjectSpace).Session).Select(o => o.Name); string ret = Enumerable.Aggregate(queryable, "", (current, s) => current + (s + ";")); return(ret.TrimEnd(';')); }
public MasterDetailRuleInfo(IModelListView childListView, IModelMember collectionMember, ITypeInfo typeInfo, CriteriaOperator criteria, bool synchronizeActions) { ChildListView = childListView; CollectionMember = collectionMember; TypeInfo = typeInfo; _criteria = criteria; _synchronizeActions = synchronizeActions; }
public MasterDetailRuleInfo(IModelListView childListView, IModelMember collectionMember, ITypeInfo typeInfo, CriteriaOperator criteria) { ChildListView = childListView; CollectionMember = collectionMember; TypeInfo = typeInfo; _criteria = criteria; }
protected override string GetPredefinedValues(IModelMember wrapper) { var members = ((IContextMasterDetailRule)View.CurrentObject).TypeInfo.Members.Where(info => info.IsList && info.ListElementTypeInfo.IsDomainComponent).Select(info => info.Name); return(string.Join(";", members)); }
public override void ApplySettings() { try{ Owner.BeginUpdate(); IAnalysisInfo analysisInfo = GetAnalysisInfo(); if (analysisInfo != null){ ITypeInfo objectTypeInfo = XafTypesInfo.Instance.FindTypeInfo(analysisInfo.DataType); foreach (string propertyName in analysisInfo.DimensionProperties){ IMemberInfo memberInfo = objectTypeInfo.FindMember(propertyName); _propertyModel = GetPropertyModel(memberInfo); if (memberInfo != null){ PivotGridFieldBase field = FindPivotGridField(GetBindingName(memberInfo)); if (field != null){ SetupPivotGridField(field, memberInfo.MemberType, GetMemberDisplayFormat(memberInfo)); field.Caption = CaptionHelper.GetFullMemberCaption(objectTypeInfo, propertyName); } } } } } finally{ Owner.EndUpdate(); } }
private static string GetIcon(LayoutItemTemplateContainer templateContainer) { // LayoutItem ItemIcon var modelLayoutItemIcon = templateContainer.Model as IModelLayoutItemIcon; if (modelLayoutItemIcon != null && !string.IsNullOrEmpty(modelLayoutItemIcon.ItemIcon)) { return(modelLayoutItemIcon.ItemIcon); } // Member ItemIcon IModelMember modelMember = (templateContainer.Model.ViewItem as IModelPropertyEditor).ModelMember; IModelIcon modelIcon = modelMember as IModelIcon; if (modelIcon != null && !string.IsNullOrEmpty(modelIcon.ItemIcon)) { return(((IModelIcon)modelMember).ItemIcon); } // RuleRequiredField var attr = modelMember.MemberInfo.FindAttribute <RuleRequiredFieldAttribute>(); if (attr != null) { return("<span style=\"color:#FF0000\">*</span>"); } return(""); }
public override void ApplySettings() { try { Owner.BeginUpdate(); IAnalysisInfo analysisInfo = GetAnalysisInfo(); if (analysisInfo != null) { ITypeInfo objectTypeInfo = XafTypesInfo.Instance.FindTypeInfo(analysisInfo.DataType); foreach (string propertyName in analysisInfo.DimensionProperties) { IMemberInfo memberInfo = objectTypeInfo.FindMember(propertyName); _propertyModel = GetPropertyModel(memberInfo); if (memberInfo != null) { PivotGridFieldBase field = FindPivotGridField(GetBindingName(memberInfo)); if (field != null) { SetupPivotGridField(field, memberInfo.MemberType, GetMemberDisplayFormat(memberInfo)); field.Caption = CaptionHelper.GetFullMemberCaption(objectTypeInfo, propertyName); } } } } } finally { Owner.EndUpdate(); } }
protected override string GetPredefinedValues(IModelMember wrapper) { IMemberInfo memberInfo = View.ObjectTypeInfo.FindMember(GetPropertyName(workflow => workflow.TargetObjectType)); var value = memberInfo.GetValue(View.CurrentObject) as Type; return(value != null?string.Join(";", Application.TypesInfo.FindTypeInfo(value).Members.Select(info => info.Name)) : string.Join(";", "")); }
public JToken Serialize( IModelMember dataSource, ISerializerProvider provider, IElementSerializer elementSerializer) { var attrDataSource = dataSource as IModelAttributeMember; return new JProperty(attrDataSource.Name, attrDataSource.Value); }
private void FillEditorValues(object currentSelectedObject, ASPxComboBox control, WebLookupEditorHelper helper, object currentObject, IModelMember member) { control.Items.Clear(); control.Items.Add(WebPropertyEditor.EmptyValue, null); control.SelectedIndex = 0; if (currentObject != null) { CollectionSourceBase dataSource = helper.CreateCollectionSource(currentObject); if (dataSource != null) { helper.ReloadCollectionSource(dataSource, currentObject); } else { throw new NullReferenceException("currentSelectedObject"); } var list = new ArrayList(); if (dataSource.List != null) { foreach (object t in dataSource.List) { list.Add(t); } } else { if (currentSelectedObject != null) { control.Items.Add( helper.GetEscapedDisplayText(currentSelectedObject, WebPropertyEditor.EmptyValue, member.DisplayFormat), -1); control.SelectedIndex = 1; } return; } if (currentSelectedObject != null && (list.IndexOf(currentSelectedObject) == -1)) { list.Add(currentSelectedObject); } list.Sort(new DisplayValueComparer(helper, WebPropertyEditor.EmptyValue)); foreach (object obj in list) { control.Items.Add( helper.GetEscapedDisplayText(obj, WebPropertyEditor.EmptyValue, member.DisplayFormat), ((XPBaseObject)obj).GetMemberValue(helper.LookupObjectTypeInfo.KeyMember.Name)); // helper.GetObjectKey(obj)); if (currentSelectedObject == obj) { if (obj != null) { control.SelectedIndex = list.IndexOf(obj) + 1; } } } } }
private void PopulateCore(Func <IModelMember, string> collect, string propertyName) { IModelMember modelMember = View.Model.ModelClass.AllMembers.FirstOrDefault(member => member.Name == propertyName); if (modelMember != null) { modelMember.PredefinedValues = collect.Invoke(modelMember); } }
private T GetMemberValue <T>(object obj, IModelMember modelMember) { if (modelMember == null) { return(default(T)); } var value = modelMember.MemberInfo.GetValue(obj); return(value != null ? (T)value : default(T)); }
public static string Get_Tooltip(IModelMember modelMember) { if (modelMember != null && modelMember.MemberInfo != null) { TooltipAttribute attribute = modelMember.MemberInfo.FindAttribute<TooltipAttribute>(); if (attribute != null) return attribute.Tooltip; } return null; }
public IModelMemberSerializer GetSerializer(IModelMember modelMember) { var serializer = this.serializers.FirstOrDefault(s => s.CanProcess(modelMember)); if (serializer == null) { throw new InvalidOperationException("No model member serializer has been registered for a " + modelMember.GetType().Name); } return serializer; }
protected override string GetPredefinedValues(IModelMember wrapper) { var typeInfo = ((IContextEmailRule)View.CurrentObject).TypeInfo; var values = new[] { " " }; if (typeInfo != null) { values = typeInfo.Members.Select(member => member.Name).ToArray(); } return(string.Join(";", values)); }
/// <summary> /// Gets the token drop down show mode. /// </summary> /// <param name="modelMember">The model member.</param> /// <returns>DevExpress.Persistent.Base.TokenDropDownShowMode?.</returns> /// <autogeneratedoc /> public static TokenDropDownShowMode?Get_XenialTokenStringDropDownShowMode(IModelMember modelMember) { _ = modelMember ?? throw new ArgumentNullException(nameof(modelMember)); var attribute = modelMember.MemberInfo.FindAttribute <TokenStringEditorAttribute>(); if (attribute is not null) { return(attribute.DropDownShowMode); } return(null); }
/// <summary> /// Gets the token popup filter mode. /// </summary> /// <param name="modelMember">The model member.</param> /// <returns>DevExpress.Persistent.Base.TokenPopupFilterMode?.</returns> /// <autogeneratedoc /> public static TokenPopupFilterMode?Get_XenialTokenObjectsPopupFilterMode(IModelMember modelMember) { _ = modelMember ?? throw new ArgumentNullException(nameof(modelMember)); var attribute = modelMember.MemberInfo.FindAttribute <TokenObjectsEditorAttribute>(); if (attribute is not null) { return(attribute.PopupFilterMode); } return(null); }
/// <summary> /// Gets the xenial token string allow user defined tokens. /// </summary> /// <param name="modelMember">The model member.</param> /// <returns>bool?.</returns> /// <autogeneratedoc /> public static bool?Get_XenialTokenStringAllowUserDefinedTokens(IModelMember modelMember) { _ = modelMember ?? throw new ArgumentNullException(nameof(modelMember)); var attribute = modelMember.MemberInfo.FindAttribute <TokenStringEditorAttribute>(); if (attribute is not null) { return(attribute.AllowUserDefinedTokens); } return(null); }
public JToken Serialize( IModelMember dataSource, ISerializerProvider provider, IElementSerializer elementSerializer) { var elDataSource = dataSource as IModelElementMember; var res = new JProperty(elDataSource.Name); res.Value = elementSerializer.Serialize(elDataSource.Element, provider); return res; }
protected override string GetPredefinedValues(IModelMember wrapper) { var typeInfo = ((IContextLogicRule)View.CurrentObject).TypeInfo; if (typeInfo != null) { var objectViews = Application.Model.Views.OfType <IModelObjectView>().Where(modelView => modelView.ModelClass.TypeInfo == typeInfo); return(objectViews.Aggregate("", (current, view) => current + (view.Id + ";")).TrimEnd(';')); } return(";"); }
public static string Get_Tooltip(IModelMember modelMember) { if (modelMember != null && modelMember.MemberInfo != null) { TooltipAttribute attribute = modelMember.MemberInfo.FindAttribute <TooltipAttribute>(); if (attribute != null) { return(attribute.Tooltip); } } return(null); }
public static string Get_ItemIcon(IModelMember modelMember) { if (modelMember != null && modelMember.MemberInfo != null) { ItemIconAttribute attribute = modelMember.MemberInfo.FindAttribute <ItemIconAttribute>(); if (attribute != null) { return(attribute.ItemIcon); } } return(null); }
private string GetFileTypesFilterValue(string className, string propertyName) { IModelClass modelClass = View.Model.Application.BOModel[className]; IModelMember member = modelClass.FindMember(propertyName); IModelCommonFileTypeFilters commonFileTypeFilters = member == null || !member.MemberInfo.Owner.IsAssignableFrom(modelClass.TypeInfo) ? modelClass as IModelCommonFileTypeFilters : member as IModelCommonFileTypeFilters; if (commonFileTypeFilters != null) { return(commonFileTypeFilters.FileTypeFilters.FileTypesFilter); } return(string.Empty); }
public static string Get_NullText(IModelMember modelMember) { if (modelMember != null && modelMember.MemberInfo != null) { var attribute = modelMember.MemberInfo.FindAttribute <NullTextAttribute>(); if (attribute != null) { return(attribute.NullText); } } return(null); }
public void Deserialize( JToken dataSource, IModelMember destination, ISerializerProvider provider, IElementSerializer elementSerializer) { var current = destination as IModelElementMember; var jObjDataSource = dataSource as JObject; if (jObjDataSource == null) return; elementSerializer.Deserialize(jObjDataSource, current.Element, provider); }
public void Deserialize( JToken dataSource, IModelMember destination, ISerializerProvider provider, IElementSerializer elementSerializer) { var jValue = dataSource as JValue; if (jValue == null) return; var current = destination as IModelAttributeMember; current.Value = jValue.ToObject(current.Type); }
protected override string GetPredefinedValues(IModelMember wrapper) { var contextMasterDetailRule = ((IContextMasterDetailRule)View.CurrentObject); if (contextMasterDetailRule.CollectionMember != null) { var listElementType = contextMasterDetailRule.CollectionMember.MemberInfo.ListElementType; var modelClass = Application.Model.BOModel.GetClass(listElementType); var modelListViews = Application.Model.Views.OfType <IModelListView>().Where(listView => listView.ModelClass == modelClass).Select(listView => listView.Id); return(string.Join(";", modelListViews)); } return(null); }
IModelMember GetPropertyModel(IMemberInfo memberInfo) { IModelMember result = null; if (_modelApplication != null && memberInfo != null) { var modelClass = _modelApplication.BOModel.GetClass(memberInfo.Owner.Type); if (modelClass != null) { result = modelClass.FindOwnMember(memberInfo.Name); } } return(result); }
public static IModelList <IModelListView> Get_ChildListViews(IModelMasterDetailRule masterDetailRule) { var calculatedModelNodeList = new CalculatedModelNodeList <IModelListView>(); IModelMember collectionMember = masterDetailRule.CollectionMember; if (collectionMember == null) { return(calculatedModelNodeList); } Type listType = masterDetailRule.CollectionMember.MemberInfo.ListElementTypeInfo.Type; calculatedModelNodeList.AddRange(masterDetailRule.Application.Views.OfType <IModelListView>().Where(view => view.ModelClass.TypeInfo.Type == listType)); return(calculatedModelNodeList); }
public void Deserialize( JToken dataSource, IModelMember destination, ISerializerProvider provider, IElementSerializer elementSerializer) { var current = destination as IModelCollectionMember; var jArrayDataSource = dataSource as JArray; if (jArrayDataSource == null) return; foreach (var childJObject in jArrayDataSource.Children().OfType<JObject>()) { var newEl = current.Elements.Create(); elementSerializer.Deserialize(childJObject, newEl, provider); } }
public JToken Serialize( IModelMember dataSource, ISerializerProvider provider, IElementSerializer elementSerializer) { var colDataSource = dataSource as IModelCollectionMember; var arr = new JArray(); var res = new JProperty(colDataSource.Name, arr); foreach (var element in colDataSource.Elements) { var newEl = elementSerializer.Serialize(element, provider); arr.Add(newEl); } return res; }
public JToken Serialize( IModelMember dataSource, ISerializerProvider provider, IElementSerializer elementSerializer) { var dictDataSource = dataSource as IModelDictionaryMember; var dict = new JObject(); var res = new JProperty(dictDataSource.Name, dict); foreach (var key in dictDataSource.Elements.Keys) { var newEl = new JProperty(key); newEl.Value = elementSerializer.Serialize(dictDataSource.Elements[key], provider); dict.Add(newEl); } return res; }
private string GetMemberDisplayFormat(IMemberInfo memberInfo) { string result = ""; IModelMember modelMember = GetPropertyModel(memberInfo); if (modelMember != null) { result = modelMember.DisplayFormat; } else { CustomAttribute displayFormatAttribute = memberInfo.FindAttributes <CustomAttribute>().FirstOrDefault(attribute => attribute.Name == "DisplayFormat"); if (displayFormatAttribute != null) { result = displayFormatAttribute.Value; } } return(result); }
/// <summary> /// Gets the replication key member for <paramref name="typeInfo"/>. /// </summary> /// <param name="typeInfo">The type info.</param> /// <returns>Replication key member</returns> public static IModelMember GetReplicationKeyMember(ITypeInfo typeInfo) { IModelMember result = null; var model = XafDeltaModule.XafApp.Model; if (model != null && typeInfo != null) { var modelClas = model.BOModel.GetClass(typeInfo.Type); if (modelClas != null) { result = modelClas.ReplicationKeyMember(); if (result == null && typeInfo.Base != null) { result = GetReplicationKeyMember(typeInfo.Base); } } } return(result); }
/// <summary> /// Gets the replication key member for object. /// </summary> /// <param name="source">The source.</param> /// <returns>Replication key member</returns> public static IModelMember GetReplicationKeyMember(object source) { IModelMember result = null; if (source != null) { var obs = ObjectSpace.FindObjectSpaceByObject(source); if (obs != null) { var ti = obs.TypesInfo.FindTypeInfo(source.GetType()); result = GetReplicationKeyMember(ti); } else { var ti = XafDeltaModule.XafApp.Model.BOModel.GetClass(source.GetType()).TypeInfo; result = GetReplicationKeyMember(ti); } } return(result); }
public void Deserialize( JToken dataSource, IModelMember destination, ISerializerProvider provider, IElementSerializer elementSerializer) { var current = destination as IModelDictionaryMember; var jObjDataSource = dataSource as JObject; if (jObjDataSource == null) return; foreach (var childJProp in jObjDataSource.Children().OfType<JProperty>()) { var childJObj = childJProp.Value as JObject; if (childJObj == null) return; var newEl = current.Elements.Create(childJProp.Name); elementSerializer.Deserialize(childJObj, newEl, provider); } }
protected override string GetPredefinedValues(IModelMember wrapper) { var currentObject = (IPersistentModelDefaultAttribute)View.CurrentObject; if (currentObject == null) { return(null); } IPersistentTypeInfo owner = currentObject.Owner; if (owner is IExtendedMemberInfo || owner is IPersistentMemberInfo) { return(GetModelProperties <IModelMember>()); } if (owner is IPersistentClassInfo) { return(GetModelProperties <IModelClass>()); } return(null); }
private static string GetTooltip(LayoutItemTemplateContainer templateContainer) { // tooltip from model (if anything was defined in the designer - that value has a priority) IModelLayoutItemTooltip modelLayoutItemTooltip = templateContainer.Model as IModelLayoutItemTooltip; if (modelLayoutItemTooltip != null && !string.IsNullOrEmpty(modelLayoutItemTooltip.Tooltip)) { return(modelLayoutItemTooltip.Tooltip); } // tooltip from attribute if ((templateContainer.Model as IModelLayoutItem).ViewItem is IModelPropertyEditor) { IModelMember modelMember = ((templateContainer.Model as IModelLayoutItem).ViewItem as IModelPropertyEditor).ModelMember; if (modelMember is IModelMemberTooltip) { return(((IModelMemberTooltip)modelMember).Tooltip); } } return(""); }
string GetFilterString(IModelMember member) { //自动 从 属性的 类型 进行推导出一个查询条件来 var propertyBO = this.WorkBook.Application.Model.BOModel.GetClass(member.MemberInfo.MemberType); if (propertyBO == null) { throw new Exception("错误,这个类型不是BO,无法进行自动匹配!"); } else { //实例: //将要导入主从关系表,Master,Child两个表。 //Child->"导入到"属性 //Master->propertyBO //如果 要导入的属性上面配置了如何查找的过滤字符串,则直接使用. var filterAttribute = member.MemberInfo.FindAttribute <ImportDefaultFilterCriteria>(); if (filterAttribute != null) { return(filterAttribute.Criteria); } else { //查找到第一个字符型、有唯一约束的字段 var criteriaProperty = member.MemberInfo.MemberTypeInfo.Members.FirstOrDefault(p => p.FindAttribute <ImportDataDefaultPropertyAttribute>(false) != null); if (criteriaProperty == null) { criteriaProperty = member.MemberInfo.MemberTypeInfo.Members.FirstOrDefault(p => p.MemberType == typeof(string) && p.FindAttribute <RuleUniqueValueAttribute>(false) != null); } if (criteriaProperty == null) { criteriaProperty = member.MemberInfo.MemberTypeInfo.KeyMember; } return(string.Format("{0}=?", criteriaProperty.Name)); } } }
private void FillEditorValues(object currentSelectedObject, ASPxComboBox control, WebLookupEditorHelper helper, object currentObject, IModelMember member){ control.Items.Clear(); control.Items.Add(WebPropertyEditor.EmptyValue, null); control.SelectedIndex = 0; if (currentObject != null){ CollectionSourceBase dataSource = helper.CreateCollectionSource(currentObject); if (dataSource != null){ helper.ReloadCollectionSource(dataSource, currentObject); } else{ throw new NullReferenceException("currentSelectedObject"); } var list = new ArrayList(); if (dataSource.List != null){ foreach (object t in dataSource.List){ list.Add(t); } } else{ if (currentSelectedObject != null){ control.Items.Add( helper.GetEscapedDisplayText(currentSelectedObject, WebPropertyEditor.EmptyValue, member.DisplayFormat), -1); control.SelectedIndex = 1; } return; } if (currentSelectedObject != null && (list.IndexOf(currentSelectedObject) == -1)){ list.Add(currentSelectedObject); } list.Sort(new DisplayValueComparer(helper, WebPropertyEditor.EmptyValue)); foreach (object obj in list){ control.Items.Add( helper.GetEscapedDisplayText(obj, WebPropertyEditor.EmptyValue, member.DisplayFormat), ((XPBaseObject) obj).GetMemberValue(helper.LookupObjectTypeInfo.KeyMember.Name)); // helper.GetObjectKey(obj)); if (currentSelectedObject == obj){ if (obj != null) control.SelectedIndex = list.IndexOf(obj) + 1; } } } }
public override void SetupPivotGridField(IMemberInfo memberInfo) { _propertyModel = GetPropertyModel(memberInfo); base.SetupPivotGridField(memberInfo); }
public bool CanProcess(IModelMember member) { return member is IModelCollectionMember; }
DevExpress.ExpressApp.ListView CreateListView(IModelListView childModelListView, IModelMember relationModelMember) { var propertyCollectionSource = XpandModuleBase.Application.CreatePropertyCollectionSource(_objectSpace, childModelListView.ModelClass.TypeInfo.Type, null, relationModelMember.MemberInfo, childModelListView.Id); return XpandModuleBase.Application.CreateListView(childModelListView, propertyCollectionSource, false); }
public bool CanProcess(IModelMember member) { return member is IModelDictionaryMember; }
public bool CanProcess(IModelMember member) { return member is IModelElementMember; }
ListView CreateListView(IModelListView childModelListView, IModelMember relationModelMember, XafApplication application) { var propertyCollectionSource = application.CreatePropertyCollectionSource(_objectSpace, childModelListView.ModelClass.TypeInfo.Type, null, relationModelMember.MemberInfo, childModelListView.Id); return application.CreateListView(childModelListView, propertyCollectionSource, false); }
public bool CanProcess(IModelMember member) { return member is IModelAttributeMember; }