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;

        }
示例#4
0
        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);
        }
示例#5
0
 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);
         }
     }
 }
示例#10
0
        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;
 }