void GetProperties(SearchMemberMode searchMemberMode, Action<string> action) { var enumerable = new ListViewInfoNodeWrapper(View.Info).Columns.Items.Where( wrapper =>wrapper.Node.GetAttributeEnumValue(SearchModeAttributeName, SearchMemberMode.Unknown) ==searchMemberMode).Select(nodeWrapper => nodeWrapper.PropertyName); foreach (var s in enumerable) { action.Invoke(s); } }
protected override void OnActivated() { base.OnActivated(); View.ControlsCreated += View_OnControlsCreated; model = new ListViewInfoNodeWrapper(View.Info); }
private void EditViewActionOnExecute(object sender, SimpleActionExecuteEventArgs args) { var listViewInfoNodeWrapper = new ListViewInfoNodeWrapper(View.Info); var newCaption = ((ViewCloner)args.CurrentObject).Caption; var changeVariantController = Frame.GetController<ChangeVariantController>(); var changeVariantAction = changeVariantController.ChangeVariantAction; setCurrentVariant(changeVariantAction.SelectedItem.Caption,newCaption); listViewInfoNodeWrapper.Id=newCaption; listViewInfoNodeWrapper.Caption = listViewInfoNodeWrapper.Id; changeVariantAction.SelectedItem.Caption =listViewInfoNodeWrapper.Caption; changeVariantAction.SelectedItem.Data = listViewInfoNodeWrapper.Id; View.SetInfo(View.Info); View.Refresh(); var showNavigationItemController=Frame.GetController<ShowNavigationItemController>(); ((ViewShortcut) showNavigationItemController.ShowNavigationItemAction.SelectedItem.Data).ViewId =listViewInfoNodeWrapper.Id; }
IFrameCreationHandler IViewCreationHandler.CreateListView(bool isRoot, Action <ListView> created) { ListViewInfoNodeWrapper listViewInfoNodeWrapper = _applicationNodeWrapper.Views.GetListViews(typeof(TObject))[0]; var listEditor = Isolate.Fake.Instance <ListEditor>(); Isolate.WhenCalled(() => listEditor.RequiredProperties).WillReturn(new string[0]); Isolate.WhenCalled(() => listEditor.Model).WillReturn(listViewInfoNodeWrapper); _view = new ListView(new CollectionSource(_objectSpace, typeof(TObject)), listEditor, isRoot, _xafApplication); Isolate.WhenCalled(() => _view.SynchronizeWithInfo()).IgnoreCall(); _view.SetInfo(listViewInfoNodeWrapper.Node); if (created != null) { created.Invoke((ListView)_view); } return(this); }
protected override CollectionSourceBase CreateCollectionSourceCore(ObjectSpace objectSpace, Type objectType, string listViewID) { CollectionSourceBase result = null; if(Model != null) { if(!String.IsNullOrEmpty(listViewID)) { DictionaryNode listViewNode = FindViewInfo(listViewID); if(listViewNode != null) { var listViewInfo = new ListViewInfoNodeWrapper(listViewNode); if(listViewInfo.UseServerMode && (!listViewInfo.AllowEdit)) { result = new LinqServerCollectionSource(objectSpace, objectType); } } } } return result ?? (new LinqCollectionSource(objectSpace, objectType)); }
public GridColumn AddColumn(ColumnInfoNodeWrapper columnInfo, Type objectType, ListViewInfoNodeWrapper model) { ColumnInfoNodeWrapper frameColumn = model.Columns.FindColumnInfo(columnInfo.PropertyName); if (frameColumn == null) { model.Columns.Node.AddChildNode(columnInfo.Node); } var column = new GridColumn(); GridView.Columns.Add(column); var customArgs = new CustomCreateColumnEventArgs(column, columnInfo, repositoryFactory); if (!customArgs.Handled) { IMemberInfo memberInfo = XafTypesInfo.Instance.FindTypeInfo(objectType).FindMember(columnInfo.PropertyName); 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.FilterMode = SimpleTypes.IsClass(memberInfo.MemberType) ? ColumnFilterMode.DisplayText : ColumnFilterMode.Value; } else { column.FieldName = columnInfo.PropertyName; } RefreshColumn(columnInfo, column); if (memberInfo != null) { if (repositoryFactory != null) { bool isGranted = DataManipulationRight.CanRead(objectType, columnInfo.PropertyName, null, ((ListView)View).CollectionSource); RepositoryItem repositoryItem = repositoryFactory.CreateRepositoryItem(!isGranted, new DetailViewItemInfoNodeWrapper(columnInfo.Node), objectType); if (repositoryItem != null) { gridControl.RepositoryItems.Add(repositoryItem); column.ColumnEdit = repositoryItem; column.OptionsColumn.AllowEdit = IsDataShownOnDropDownWindow(repositoryItem) ? true : model.AllowEdit; column.AppearanceCell.Options.UseTextOptions = true; column.AppearanceCell.TextOptions.HAlignment = WinAlignmentProvider.GetAlignment(memberInfo.MemberType); repositoryItem.ReadOnly |= !model.AllowEdit; if ((repositoryItem is ILookupEditRepositoryItem) && ((ILookupEditRepositoryItem)repositoryItem).IsFilterByValueSupported) { column.FilterMode = ColumnFilterMode.Value; } if ((repositoryItem is RepositoryItemPictureEdit) && (((RepositoryItemPictureEdit)repositoryItem).CustomHeight > 0)) { GridView.OptionsView.RowAutoHeight = true; } } } if ((column.ColumnEdit == null) && !typeof(IList).IsAssignableFrom(memberInfo.MemberType)) { column.OptionsColumn.AllowEdit = false; column.FieldName = GetDisplayablePropertyName(columnInfo.PropertyName, XafTypesInfo.Instance.FindTypeInfo(objectType)); } } } if (!gridControl.IsLoading && gridView.DataController.Columns.GetColumnIndex(column.FieldName) == -1) { gridView.DataController.RePopulateColumns(); } return column; }
protected override void OnActivated() { base.OnActivated(); string attributeValue = View.Info.GetAttributeValue(DetailListView); ExpandAllRowsSimpleAction.Active["key"] = false; CollapseAllRowsSimpleAction.Active["key"] = false; if (View is ListView && !string.IsNullOrEmpty(attributeValue) && !string.IsNullOrEmpty(DetailListRelationName)) { Frame.GetController<DeleteObjectsViewController>().DeleteAction.Executing += DeleteAction_OnExecuting; ExpandAllRowsSimpleAction.Active["key"] = true; CollapseAllRowsSimpleAction.Active["key"] = true; subModel = new ListViewInfoNodeWrapper( View.Info.GetRootNode().GetChildNode(ViewsNodeWrapper.NodeName).GetChildNode( ListViewInfoNodeWrapper.NodeName, "ID", attributeValue)); repositoryFactory = new RepositoryEditorsFactory(Application, ObjectSpace); View.ControlsCreated += View_ControlsCreated; } }
public void RefreshColumns(ListViewInfoNodeWrapper model) { var objectType = View.ObjectTypeInfo.AssemblyInfo.Assembly.GetType(model.Node.GetAttributeValue(BaseViewInfoNodeWrapper.ClassNameAttribute)); gridControl.BeginUpdate(); try { var presentedColumns = new Dictionary<string, GridColumn>(); foreach (ColumnInfoNodeWrapper column in from col in model.Columns.Items orderby col.SortIndex select col) { GridColumn gridColumn; if (presentedColumns.TryGetValue(column.PropertyName, out gridColumn)) { RefreshColumn(column, gridColumn); } else { gridColumn = AddColumn(column, objectType, model); presentedColumns.Add(column.PropertyName, gridColumn); } } } finally { gridControl.EndUpdate(); } }
public static void SetColumnOptions(GridView gridView, ListViewInfoNodeWrapper listViewInfoNodeWrapper) { foreach (GridColumn column in gridView.Columns) { ColumnInfoNodeWrapper columnInfo = listViewInfoNodeWrapper.Columns.FindColumnInfo(column.FieldName.Replace("!", string.Empty)); if (columnInfo != null) { column.OptionsFilter.AutoFilterCondition = columnInfo.GetEnumValue<AutoFilterCondition>(AutoFilterCondition, column.OptionsFilter.AutoFilterCondition); column.OptionsFilter.ImmediateUpdateAutoFilter = columnInfo.Node.GetAttributeBoolValue(ImmediateUpdateAutoFilter); } } }
public static void SetOptions(GridView gridView, ListViewInfoNodeWrapper listViewInfoNodeWrapper) { gridView.OptionsView.NewItemRowPosition = (NewItemRowPosition)Enum.Parse(typeof(NewItemRowPosition), new SupportNewItemRowNodeWrapper(listViewInfoNodeWrapper.Node).NewItemRowPosition.ToString()); gridView.OptionsBehavior.EditorShowMode = EditorShowMode.Click; gridView.OptionsBehavior.Editable = true; gridView.OptionsBehavior.AllowIncrementalSearch = true; gridView.OptionsBehavior.AutoSelectAllInEditor = false; gridView.OptionsBehavior.AutoPopulateColumns = false; gridView.OptionsBehavior.FocusLeaveOnTab = true; gridView.OptionsBehavior.AutoExpandAllGroups = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GridListEditor.AutoExpandAllGroups, false); gridView.OptionsSelection.MultiSelect = true; gridView.OptionsSelection.EnableAppearanceFocusedCell = true; gridView.OptionsNavigation.AutoFocusNewRow = true; gridView.OptionsNavigation.AutoMoveRowFocus = true; gridView.OptionsView.ShowDetailButtons = false; gridView.OptionsDetail.EnableMasterViewMode = false; gridView.OptionsView.ShowIndicator = true; gridView.OptionsView.ShowGroupPanel = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GridListEditor.IsGroupPanelVisible, false); gridView.OptionsView.ShowFooter = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GridListEditor.IsFooterVisible, true); gridView.OptionsView.ShowAutoFilterRow = listViewInfoNodeWrapper.IsFilterPanelVisible; gridView.FocusRectStyle = DrawFocusRectStyle.RowFocus; gridView.ShowButtonMode = ShowButtonModeEnum.ShowOnlyInEditor; gridView.ActiveFilterEnabled = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GridListEditor.IsActiveFilterEnabled, true); gridView.OptionsDetail.AllowExpandEmptyDetails = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(AllowExpandEmptyDetails, false); gridView.OptionsNavigation.EnterMoveNextColumn = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(EnterMoveNextColumn, false); gridView.OptionsNavigation.UseTabKey = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(UseTabKey, false); gridView.OptionsView.ShowColumnHeaders = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(IsColumnHeadersVisible, true); // DevExpress.XtraGrid.Views.Grid.NewItemRowPosition newItemRowPosition = // listViewInfoNodeWrapper.Node.GetAttributeEnumValue(NewItemRowPositionAttributeName, // DevExpress.XtraGrid.Views.Grid.NewItemRowPosition. // None); // gridView.OptionsView.NewItemRowPosition = newItemRowPosition; gridView.OptionsBehavior.AutoSelectAllInEditor = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(AutoSelectAllInEditorAttributeName, true); gridView.OptionsBehavior.EditorShowMode = listViewInfoNodeWrapper.Node.GetAttributeEnumValue(EditorShowModeAttributeName, EditorShowMode.MouseUp); gridView.OptionsView.ShowFooter = listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GridListEditor.IsFooterVisible, true); SetColumnOptions(gridView, listViewInfoNodeWrapper); if (listViewInfoNodeWrapper.ShowAutoFilterRow && listViewInfoNodeWrapper.Node.GetAttributeBoolValue(GuessAutoFilterRowValuesFromFilter)) { gridView.GuessAutoFilterRowValuesFromFilter(); } }
private ListViewInfoNodeWrapper GetCurrentVariant(ChangeVariantController changeVariantController, ApplicationNodeWrapper wrapper) { var node1 = new ListViewInfoNodeWrapper(wrapper.Views.FindViewById(Application.FindListViewId(View.ObjectTypeInfo.Type)).Node); changeVariantController.ChangeVariantAction.Items.Remove( changeVariantController.ChangeVariantAction.SelectedItem); changeVariantController.ChangeVariantAction.SelectedItem = (from item in changeVariantController.ChangeVariantAction.Items where item.Caption == node1.Node.FindChildNode("Variants").ChildNodes[0].KeyAttribute.Value select item).Single(); return node1; }