public XpandASPxGridListEditorSynchronizer(DevExpress.ExpressApp.Web.Editors.ASPx.ASPxGridListEditor gridListEditor, IModelListView model) : base(gridListEditor, model) {
     modelSynchronizerList = new ModelSynchronizerList();
     modelSynchronizerList.Add(new GridViewOptionsModelSynchronizer(gridListEditor.Grid, model));
     foreach (var column in model.Columns) {
         modelSynchronizerList.Add(new ColumnOptionsModelSynchronizer(gridListEditor.Grid, column));
     }
 }
예제 #2
0
 public WebCategoryListEditor(IModelListView info)
     : base(info)
 {
     this.DoCommandAction             = new SimpleAction(null, "ShowDetailView", PredefinedCategory.Unspecified);
     this.DoCommandAction.Application = _application;
     this.DoCommandAction.Execute    += DoCommandAction_Execute;
 }
예제 #3
0
        public string GetOwnerPropertyName(IModelListView childModelListView, int rowHandle, int relationIndex)
        {
            var         rName = _xafGridView.GetRelationName(rowHandle, relationIndex);
            IMemberInfo associatedMemberInfo = _modelListView.ModelClass.AllMembers.Where(member => member.MemberInfo.Name == rName).Single().MemberInfo.AssociatedMemberInfo;

            return(associatedMemberInfo.Name);
        }
예제 #4
0
        public override void UpdateNode(IModelListView view)
        {
            try
            {
                base.UpdateNode(view);
                this.ItemsListView = (this.DetailView.Items[ItemsPropertyName] as IModelPropertyEditor).View as IModelListView;

                this.ItemsListView.DetailView.Layout.ClearNodes();

                this.ItemsViewLayout = this.ItemsListView.DetailView.Layout.AddNode <IModelLayoutGroup>("R");

                this.ItemsDetailView = this.ItemsListView.DetailView;

                if (ItemsViewLayout == null)
                {
                    throw new Exception("没有找到ItemsViewLayout!");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            LayoutListView();
            LayoutItemsListView();
            LayoutItemsDetailView();

            Debug.WriteLine(this.ItemsListView.Id);
        }
예제 #5
0
 public MasterDetailRuleInfo(IModelListView childListView, IModelMember collectionMember, ITypeInfo typeInfo, CriteriaOperator criteria, bool synchronizeActions) {
     ChildListView = childListView;
     CollectionMember = collectionMember;
     TypeInfo = typeInfo;
     _criteria = criteria;
     _synchronizeActions = synchronizeActions;
 }
 void AddColumnsNode(IModelListView listViewInfo)
 {
     if (listViewInfo.Columns == null)
     {
         listViewInfo.AddNode <IModelColumns>("Columns");
     }
 }
예제 #7
0
        private void UpdateColumns()
        {
            Type c = this.ItemsDataSource.ObjectTypeInfo.Type;

            if (typeof(IVariablePropertiesCategorizedItem).IsAssignableFrom(c) && (this.CategoriesListView.CurrentObject != null))
            {
                IPropertyDescriptorContainer currentObject = (IPropertyDescriptorContainer)this.CategoriesListView.CurrentObject;
                object keyValue = this.CategoriesListView.ObjectSpace.GetKeyValue(currentObject);
                if (this.categoryKey != keyValue)
                {
                    this.SaveModel();
                    this.FocusedObject = null;
                    this.typeDescriptionProvider.Setup(currentObject.PropertyDescriptors);
                    string         id       = c.Name + "_" + keyValue.ToString() + "_ListView";
                    IModelViews    parent   = (IModelViews)base.Model.Parent;
                    IModelListView newModel = (IModelListView)parent[id];
                    if (newModel == null)
                    {
                        newModel = (IModelListView)((ModelNode)base.Model).Clone(id);
                    }
                    base.SetModel(newModel);
                    this.ApplyModel();
                    this.ItemsDataSource.DisplayableProperties = string.Join(";", this.RequiredProperties);
                    this.categoryKey = keyValue;
                }
            }
        }
 public CustomGridListEditor(IModelListView model, Type viewType, Type columnType,
                             RepositoryItem repositoryItem = null) : base(model)
 {
     _viewType       = viewType;
     _columnType     = columnType;
     _repositoryItem = repositoryItem;
 }
예제 #9
0
        public void ModifyGridViewInstance(ExpressApp.MasterDetail.Win.IMasterDetailColumnView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List <MasterDetailRuleInfo> masterDetailRules)
        {
            var  modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
            bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);

            if (isRelationSet)
            {
                IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
                Window         window             = _xafApplication.CreateWindow(TemplateContext.View, null, true, false);
                ListView       listView           = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
                var            detailXafGridView  = (ExpressApp.MasterDetail.Win.IMasterDetailColumnView)masterGridView.GetDetailView(rowHandle, relationIndex);
                ((IColumnViewEditor)listView.Editor).CustomGridViewCreate +=
                    (o, eventArgs) => {
                    ((IColumnViewEditor)o).DataSource = detailXafGridView.DataSource;
                    eventArgs.Handled  = true;
                    eventArgs.GridView = (DevExpress.XtraGrid.Views.Base.ColumnView)detailXafGridView;
                    eventArgs.GridControl.DataSource = detailXafGridView.DataSource;
                };

                EventHandler[] listViewOnControlsCreated = { null };
                listViewOnControlsCreated[0] = (sender, args) => {
                    detailXafGridView.MasterFrame = masterGridView.MasterFrame ?? _masterFrame;
                    detailXafGridView.Window      = window;
                    detailXafGridView.GridControl = masterGridView.GridControl;
                    listView.ControlsCreated     -= listViewOnControlsCreated[0];
                };
                listView.ControlsCreated += listViewOnControlsCreated[0];
                ((PropertyCollectionSource)listView.CollectionSource).MasterObject = masterGridView.GetRow(rowHandle);
                window.SetView(listView);
            }
        }
 public XafBootstrapTableEditor(IModelListView info)
     : base(info)
 {
     ListView = info;
     MarkedObjects = new List<String>();
     SelectedObjects = new List<Object>();
 }
예제 #11
0
        public void ModifyInstanceGridView(XpandXafGridView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List<IMasterDetailRule> masterDetailRules) {
            var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
            bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);
            if (isRelationSet) {
                IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
                Window window = _xafApplication.CreateWindow(TemplateContext.View, null, true, false);
                ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
                var detailXafGridView = (XpandXafGridView)masterGridView.GetDetailView(rowHandle, relationIndex);
                ((XpandGridListEditor)listView.Editor).CustomGridViewCreate +=
                    (o, eventArgs) => {
                        eventArgs.Handled = true;
                        eventArgs.GridView = detailXafGridView;
                        eventArgs.GridControl.DataSource = detailXafGridView.DataSource;
                    };

                EventHandler[] listViewOnControlsCreated = { null };
                listViewOnControlsCreated[0] = (sender, args) => {
                    detailXafGridView.MasterFrame = masterGridView.MasterFrame ?? _masterFrame;
                    detailXafGridView.Window = window;
                    detailXafGridView.GridControl = masterGridView.GridControl;
                    listView.ControlsCreated -= listViewOnControlsCreated[0];
                };
                listView.ControlsCreated += listViewOnControlsCreated[0];
                ((PropertyCollectionSource)listView.CollectionSource).MasterObject = masterGridView.GetRow(rowHandle);
                window.SetView(listView);
            }
        }
예제 #12
0
        public override void UpdateNode(IModelListView view)
        {
            try
            {
                this.View             = view;
                this.DetailViewLayout = this.View.DetailView.Layout[0] as IModelLayoutGroup;

                this.DetailView = this.View.DetailView;

                Debug.WriteLine(view.Id);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            if (this.DetailViewLayout == null)
            {
                throw new Exception("没有找到DetailViewLayout!");
            }

            LayoutListView();

            LayoutDetailView();
        }
예제 #13
0
 public MasterDetailRuleInfo(IModelListView childListView, IModelMember collectionMember, ITypeInfo typeInfo, CriteriaOperator criteria)
 {
     ChildListView    = childListView;
     CollectionMember = collectionMember;
     TypeInfo         = typeInfo;
     _criteria        = criteria;
 }
예제 #14
0
 public GridListEditorSynchronizer(GridListEditor gridListEditor, IModelListView model)
     : base(gridListEditor, model) {
     modelSynchronizerList = new ModelSynchronizerList { new GridViewOptionsModelSynchronizer(gridListEditor.GridView, model) };
     foreach (var modelColumn in model.Columns) {
         modelSynchronizerList.Add(new ColumnOptionsModelSynchronizer(gridListEditor.GridView, modelColumn));
     }
 }
예제 #15
0
        protected override ListEditor CreateListEditorCore(IModelListView modelListView, CollectionSourceBase collectionSource)
        {
            var creatingListEditorEventArgs = new CreatingListEditorEventArgs(modelListView, collectionSource);

            OnCustomCreateListEditor(creatingListEditorEventArgs);
            return(creatingListEditorEventArgs.Handled ? creatingListEditorEventArgs.ListEditor : base.CreateListEditorCore(modelListView, collectionSource));
        }
예제 #16
0
        private void AcceptFilter(FiltersByCollectionWrapper filtersByCollectionWrapper)
        {
            IModelListView nodeWrapper = GetNodeMemberSearchWrapper(filtersByCollectionWrapper);

            filtersByCollectionWrapper.PropertyPathFilter = GetActiveFilter(nodeWrapper);
            ApplyFilterString();
            View.Refresh();
        }
 public XpandTreeListEditorModelSynchronizerList(TreeListEditor treeListEditor, IModelListView model)
     : base(treeListEditor, model) {
     modelSynchronizerList = new ModelSynchronizerList();
     modelSynchronizerList.Add(new TreeListOptionsModelSynchronizer(treeListEditor.TreeList, model));
     foreach (var modelColumn in model.Columns) {
         modelSynchronizerList.Add(new TreeListColumnOptionsModelSynchronizer(treeListEditor.TreeList, modelColumn));
     }
 }
 protected void SortResources(XPCollection resources)
 {
     if (resources != null)
     {
         IModelListView resourcesListView = Application.FindModelClass(resources.ObjectType).DefaultListView;
         XpoSortingHelper.Sort(resources, XpoSortingHelper.GetListViewSorting(resourcesListView));
     }
 }
예제 #19
0
        private void selectDataAccessModeAction_Execute(Object sender, SingleChoiceActionExecuteEventArgs e)
        {
            IModelListView listViewModel = (IModelListView)Application.FindModelView(Application.FindListViewId(TargetObjectType));

            listViewModel.DataAccessMode = (CollectionSourceDataAccessMode)e.SelectedChoiceActionItem.Data;
            IObjectSpace objectSpace = Application.CreateObjectSpace(TargetObjectType);

            e.ShowViewParameters.CreatedView = Application.CreateListView(objectSpace, TargetObjectType, true);
        }
예제 #20
0
        void CreateVariantNode(string id, IModelVariants modelVariants, IModelListView modelListView, string caption)
        {
            var newVariantNode = modelVariants.AddNode <IModelVariant>();

            modelVariants.Current  = newVariantNode;
            newVariantNode.Caption = caption;
            newVariantNode.Id      = id;
            newVariantNode.View    = modelListView;
        }
예제 #21
0
 void ShowEditor(IModelListView listView)
 {
     using (var editor = GetViewDesignerForm(listView)) {
         var gridListEditor = CreateListEditor(listView);
         var mainView       = GetColumnView(gridListEditor);
         editor.InitEditingObject(mainView);
         editor.ShowDialog();
         gridListEditor.SaveModel();
     }
 }
예제 #22
0
 DevExpress.XtraGrid.Views.Base.ColumnView GetLevelDefaultViewCore(IModelListView masterModelListView, IMasterDetailColumnView masterGridView, int rowHandle, int relationIndex, List<MasterDetailRuleInfo> masterDetailRules) {
     var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
     bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);
     if (isRelationSet) {
         IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
         ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
         listView.CreateControls();
         return ((IColumnViewEditor)listView.Editor).ColumnView;
     }
     return null;
 }
        protected override ListEditor CreateListEditorCore(IModelListView modelListView, CollectionSourceBase collectionSource)
        {
            var mock = new Mock <ListEditor> {
                CallBase = true
            };

            mock.Setup(editor => editor.SupportsDataAccessMode(CollectionSourceDataAccessMode.Client)).Returns(true);
            mock.Setup(editor => editor.GetSelectedObjects()).Returns(new object[0]);
//            mock.SetupProperty(editor => editor.FocusedObject).Raise(editor => editor.CallMethod("OnSelectionChanged"));
            return(mock.Object);
        }
예제 #24
0
 public GridListEditorSynchronizer(GridListEditor gridListEditor, IModelListView model)
     : base(gridListEditor, model)
 {
     modelSynchronizerList = new ModelSynchronizerList {
         new GridViewOptionsModelSynchronizer(gridListEditor.GridView, model)
     };
     foreach (var modelColumn in model.Columns)
     {
         modelSynchronizerList.Add(new ColumnOptionsModelSynchronizer(gridListEditor.GridView, modelColumn));
     }
 }
예제 #25
0
 public CategoryDataProvider(string rootFolder, CollectionSourceBase collectionSource, IModelListView listView)
     : base("分类查看")
 {
     _collectionSource = collectionSource;
     _listView         = listView;
     _objectSpace      = collectionSource.ObjectSpace;
     Folders           = new Dictionary <string, Folder>();
     Folders.Add("", new Folder()
     {
         Parent = "", FullName = RootFolder
     });
 }
예제 #26
0
        protected void SetFooterCount(IModelListView view)
        {
            view.IsFooterVisible = true;
            var firstColumn = view.Columns.Where(x => x.Index > -1).OrderBy(x => x.Index).FirstOrDefault();

            var sum = firstColumn?.Summary.FirstOrDefault(x => x.SummaryType == SummaryType.Count);
            if (firstColumn != null && sum == null)
            {
                sum = firstColumn.Summary.AddNode<IModelColumnSummaryItem>(firstColumn.PropertyName+"Count");
                sum.SummaryType = SummaryType.Count;
            }
        }
 void AddQueryColumns(IModelListView listViewInfo, IEnumerable <CustomQueryPropertyAttribute> customQueryPropertyAttributes)
 {
     foreach (CustomQueryPropertyAttribute queryPropertyAttribute in customQueryPropertyAttributes)
     {
         var col = listViewInfo.Columns[queryPropertyAttribute.Name];
         if (col == null)
         {
             col = listViewInfo.Columns.AddNode <IModelColumn>(queryPropertyAttribute.Name);
             col.PropertyName = queryPropertyAttribute.Name;
         }
     }
 }
예제 #28
0
파일: ViewObject.cs 프로젝트: ewin66/ciip-1
        protected void SetFooterCount(IModelListView view)
        {
            view.IsFooterVisible = true;
            var firstColumn = view.Columns.Where(x => x.Index > -1).OrderBy(x => x.Index).FirstOrDefault();

            var sum = firstColumn?.Summary.FirstOrDefault(x => x.SummaryType == SummaryType.Count);

            if (firstColumn != null && sum == null)
            {
                sum             = firstColumn.Summary.AddNode <IModelColumnSummaryItem>(firstColumn.PropertyName + "Count");
                sum.SummaryType = SummaryType.Count;
            }
        }
 void RemoveDefaultColumns(IModelListView listViewInfo, IEnumerable <CustomQueryPropertyAttribute> customQueryPropertyAttributes)
 {
     for (int i = listViewInfo.Columns.Count; i > 0;)
     {
         i--;
         IModelColumn col   = listViewInfo.Columns[i];
         var          names = customQueryPropertyAttributes.Select(attribute => attribute.Name).ToArray();
         if (Array.IndexOf(names, col.Id) < 0)
         {
             col.Remove();
         }
     }
 }
예제 #30
0
        private void actionChangeAccessMode_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            IModelListView m = (IModelListView)View.Model;

            if (m.DataAccessMode == CollectionSourceDataAccessMode.Server)
            {
                m.DataAccessMode = CollectionSourceDataAccessMode.Client;
            }
            else
            {
                m.DataAccessMode = CollectionSourceDataAccessMode.Server;
            }
        }
예제 #31
0
        private IModelVariant GetNewVariantNode(ViewCloner viewCloner)
        {
            IModelListView clonedView        = GetClonedView(viewCloner.Caption);
            var            modelViewVariants = ((IModelViewVariants)_rootView);
            IModelVariants modelVariants     = modelViewVariants.Variants;
            var            newVariantNode    = modelVariants.AddNode <IModelVariant>();

            modelVariants.Current  = newVariantNode;
            newVariantNode.Caption = viewCloner.Caption;
            newVariantNode.Id      = viewCloner.Caption;
            newVariantNode.View    = clonedView;
            return(newVariantNode);
        }
예제 #32
0
        public static ListEditor CreateListEditor(this XafApplication application, IModelListView modelListView, CollectionSourceBase collectionSourceBase)
        {
            var listEditor = application is WinApplication ? (ListEditor) new Mock <GridListEditor>(modelListView)
            {
                CallBase = true
            }.Object
                : new Mock <ASPxGridListEditor>(modelListView)
            {
                CallBase = true
            }.Object;

            ((IComplexListEditor)listEditor).Setup(collectionSourceBase, application);
            return(listEditor);
        }
        protected override void OnViewControlsCreated()
        {
            base.OnViewControlsCreated();
            _treeListEditor = ((XpandASPxTreeListEditor)View.Editor);
            WebWindow.CurrentRequestWindow.ProcessPreRenderCompleted += CurrentRequestWindowOnProcessPreRenderCompleted;

            _treeListEditor.TreeList.VirtualModeNodeCreated           += TreeListOnVirtualModeNodeCreated;
            _treeListEditor.TreeList.VirtualModeCreateChildren        += TreeListOnVirtualModeCreateChildren;
            _treeListEditor.TreeList.VirtualModeNodeCreating          += TreeListOnVirtualModeNodeCreating;
            _treeListEditor.TreeList.SelectionChanged                 += TreeListOnSelectionChanged;
            _treeListEditor.TreeList.SettingsBehavior.AllowFocusedNode = true;
            _parentFrame   = Frame.GetController <PopupParentFrameController>().ParentFrame;
            _listViewModel = ((ListView)_parentFrame.View).Model;
        }
예제 #34
0
        DevExpress.XtraGrid.Views.Base.ColumnView GetLevelDefaultViewCore(IModelListView masterModelListView, DevExpress.XtraGrid.Views.Grid.GridView masterGridView, int rowHandle, int relationIndex, List <MasterDetailRuleInfo> masterDetailRules)
        {
            var  modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
            bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);

            if (isRelationSet)
            {
                IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
                ListView       listView           = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
                listView.CreateControls();
                return(((WinColumnsListEditor)listView.Editor).ColumnView);
            }
            return(null);
        }
예제 #35
0
파일: VCBancaria.cs 프로젝트: icpac/cap
        private void popupWindowShowActionMovsCta_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
        {
            Bancaria obj = View.CurrentObject as Bancaria;

            Type                 objectType       = typeof(MovimientoB);
            IObjectSpace         objectSpace      = Application.CreateObjectSpace();
            string               listViewId       = Application.FindListViewId(objectType);
            IModelListView       modelListView    = (IModelListView)Application.FindModelView(listViewId);
            CollectionSourceBase collectionSource = Application.CreateCollectionSource(
                objectSpace, objectType, listViewId);

            collectionSource.SetCriteria("Cuenta", $"Cuenta.Oid = '{obj.Oid}'");
            e.View = Application.CreateListView(modelListView, collectionSource, true);
        }
예제 #36
0
        public TColumnViewEditor CreateListEditor(IModelListView listView)
        {
            var gridListEditor = GetGridDesignerEditor(listView);

            gridListEditor.OverrideViewDesignMode = true;
            var targetType = listView.ModelClass.TypeInfo.Type;

            Setup(targetType, gridListEditor);
            gridListEditor.Grid.CreateControl();
            gridListEditor.DataSource = CriteriaPropertyEditorHelper.CreateFilterControlDataSource(targetType, null);
            var form = new System.Windows.Forms.Form();

            form.Controls.Add(gridListEditor.Grid);
            return(gridListEditor);
        }
예제 #37
0
        private void SwitchAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            IModelListView model    = ((ListView)View).Model;
            ViewShortcut   shortcut = Frame.View.CreateShortcut();

            Frame.SetView(null);
            if (model.MasterDetailMode == MasterDetailMode.ListViewAndDetailView)
            {
                model.MasterDetailMode = MasterDetailMode.ListViewOnly;
            }
            else
            {
                model.MasterDetailMode = MasterDetailMode.ListViewAndDetailView;
            }
            Frame.SetView(Application.ProcessShortcut(shortcut), true, Frame);
        }
예제 #38
0
 protected override void OnViewControllersActivated()
 {
     base.OnViewControllersActivated();
     _viewVariantsModule = Application.FindModule <ViewVariantsModule>();
     _isViewClonable     = ((IModelListViewViewClonable)View.Model).IsViewClonable;
     _modifyVariantsAction.Active[IsClonable] = _isViewClonable;
     if (_isViewClonable)
     {
         _changeVariantController = Frame.GetController <ChangeVariantController>();
         _rootListView            = FindRootListView();
         _changeVariantController.ChangeVariantAction.SelectedItemChanged += ChangeVariantActionOnSelectedItemChanged;
         if (_changeVariantController.ChangeVariantAction.Items.Count == 0)
         {
             UpdateActionState();
         }
     }
 }
예제 #39
0
 XpandXafGridView GetLevelDefaultViewCore(IModelListView masterModelListView, XpandXafGridView masterGridView, int rowHandle, int relationIndex, List<IMasterDetailRule> masterDetailRules) {
     var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
     bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);
     if (isRelationSet) {
         IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
         ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
         XpandXafGridView defaultXpandXafGridView = null;
         EventHandler[] listViewOnControlsCreated = { null };
         listViewOnControlsCreated[0] = (sender, args) => {
             defaultXpandXafGridView = (XpandXafGridView)((GridListEditor)((XpandListView)sender).Editor).GridView;
             listView.ControlsCreated -= listViewOnControlsCreated[0];
         };
         listView.ControlsCreated += listViewOnControlsCreated[0];
         listView.CreateControls();
         return defaultXpandXafGridView;
     }
     return null;
 }
예제 #40
0
 DevExpress.XtraGrid.Views.Base.ColumnView GetLevelDefaultViewCore(IModelListView masterModelListView, ExpressApp.MasterDetail.Win.IMasterDetailColumnView masterGridView, int rowHandle, int relationIndex, List<MasterDetailRuleInfo> masterDetailRules) {
     var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules);
     bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex);
     if (isRelationSet) {
         IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex);
         ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView);
         DevExpress.XtraGrid.Views.Base.ColumnView defaultXpandXafGridView = null;
         EventHandler[] listViewOnControlsCreated = { null };
         ListView view = listView;
         listViewOnControlsCreated[0] = (sender, args) => {
             defaultXpandXafGridView = ((IColumnViewEditor)((ListView)sender).Editor).GridView;
             view.ControlsCreated -= listViewOnControlsCreated[0];
         };
         listView.ControlsCreated += listViewOnControlsCreated[0];
         listView.CreateControls();
         return defaultXpandXafGridView;
     }
     return null;
 }
        public static CollectionSourceBase Create(XafApplication application, IObjectSpace objectSpace, IModelListView listViewNode) {
            IModelCustomDataSource modelCustomDataSource = ((IModelListViewExtension)listViewNode).CollectionDataSource;
            if (modelCustomDataSource == null) return null;

            Type customDataSourceType = modelCustomDataSource.CustomDataSourceType;   // Тип коллекции
            if (customDataSourceType == null) return null;

            // Две строки ниже стали не нужны, т.к. тип вычисляется из запроса ниже: query.ElementType
            // В модели поле тоже как бы не нужно - пусть останется зарезервированным пока что.
            //Type objectType = modelCustomDataSource.ObjectType;   // Тип выхода запроса
            //if (objectType == null) return null;

            // Создание объекта запроса 
            IQueryable query = Activator.CreateInstance(customDataSourceType, ((ObjectSpace)objectSpace).Session) as IQueryable;  // as IQueryable;

            // Создание коллекции с типом customDataSourceType
            //var outCollection = Activator.CreateInstance(customDataSourceType, objectSpace);

            LinqCollectionSource outCollection = new LinqCollectionSource(objectSpace, query);
            return outCollection ;
        }
        public string GetOwnerPropertyName(IModelListView childModelListView, int rowHandle, int relationIndex) {
            var rName = _xafGridView.GetRelationName(rowHandle, relationIndex);
            IMemberInfo associatedMemberInfo = _modelListView.ModelClass.AllMembers.Single(member => member.MemberInfo.Name == rName).MemberInfo.AssociatedMemberInfo;
            return associatedMemberInfo.Name;

        }
예제 #43
0
 public DevExpress.XtraGrid.Views.Base.ColumnView GetLevelDefaultView(IMasterDetailColumnView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List<MasterDetailRuleInfo> masterDetailRules) {
     return GetLevelDefaultViewCore(masterModelListView, masterGridView, rowHandle, relationIndex, masterDetailRules);
 }
예제 #44
0
 public CreatingListEditorEventArgs(IModelListView modelListView, CollectionSourceBase collectionSource) {
     _modelListView = modelListView;
     _collectionSource = collectionSource;
 }
예제 #45
0
 ListView GetListView(ModelDetailRelationCalculator modelDetailRelationCalculator, int rowHandle, int relationIndex, IModelListView childModelListView) {
     var listViewBuilder = new ListViewBuilder(modelDetailRelationCalculator, _objectSpace);
     return listViewBuilder.CreateListView(childModelListView, rowHandle, relationIndex);
 }
예제 #46
0
 public XpandXafGridView GetLevelDefaultView(XpandXafGridView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List<IMasterDetailRule> masterDetailRules) {
     return GetLevelDefaultViewCore(masterModelListView, masterGridView, rowHandle, relationIndex, masterDetailRules);
 }
예제 #47
0
 public XpandGridListEditor(IModelListView model)
     : base(model) {
 }
예제 #48
0
 public ListView CreateListView(IModelListView childModelListView, int rowHandle, int relationIndex, XafApplication application) {
     IModelMember relationModelMember = _modelDetailRelationCalculator.GetRelationModelMember(rowHandle, relationIndex);
     return CreateListView(childModelListView, relationModelMember, application);
 }
예제 #49
0
 public WinCustomListEditor(IModelListView info)
     : base(info)
 {
     popupMenu = new ActionsDXPopupMenu();
 }
예제 #50
0
     public DocGridListEditor(IModelListView model)
         : base(model)
     {          
     
 
     }     
 public GridViewOptionsModelSynchronizer(object control, IModelListView model) : base(control, model) {
 }
예제 #52
0
 public ThumbnailListEditor(IModelListView modelListView)
     : base(modelListView) {
 }
 public MultiEditASPxGridListEditor(IModelListView model)
     : base(model){
 }
예제 #54
0
 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);
 }
예제 #55
0
 public AdvBandedListEditor(IModelListView model)
     : base(model) {
 }
 public ModelDetailRelationCalculator(IModelListView modelListView, DevExpress.XtraGrid.Views.Grid.GridView xafGridView, List<MasterDetailRuleInfo> masterDetailRules) {
     _modelListView = modelListView;
     _xafGridView = xafGridView;
     _masterDetailRules = masterDetailRules;
 }
예제 #57
0
 public XpandASPxGridListEditor(IModelListView info)
     : base(info) {
 }
예제 #58
0
 protected override ListEditor CreateListEditorCore(IModelListView modelListView, CollectionSourceBase collectionSource) {
     var creatingListEditorEventArgs = new CreatingListEditorEventArgs(modelListView, collectionSource);
     OnCustomCreateListEditor(creatingListEditorEventArgs);
     return creatingListEditorEventArgs.Handled ? creatingListEditorEventArgs.ListEditor : base.CreateListEditorCore(modelListView, collectionSource);
 }
예제 #59
0
 public XpandTreeListEditor(IModelListView model)
     : base(model) {
 }
 public FocusedRowGridEditor(IModelListView model)
     : base(model)
 {
 }