Beispiel #1
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();
        }
        public static List <IModelMember> GetImportableProperties(this IModelDetailView detailView)
        {
            var result = new List <IModelMember>();

            GetImportableProperties(detailView.Layout, result);
            return(result);
        }
Beispiel #3
0
        public static IEnumerable <IModelPropertyEditor> GetModelPropertyEditors(this IModelDetailView modelDetailView)
        {
            var modelPropertyEditors = modelDetailView.Items.OfType <IModelPropertyEditor>();

            foreach (var modelPropertyEditor in modelPropertyEditors)
            {
                if (modelPropertyEditor.ModelMember.MemberInfo.IsList)
                {
                    if (modelPropertyEditor.View is IModelListView modelListView)
                    {
                        if (modelListView.MasterDetailMode == MasterDetailMode.ListViewAndDetailView)
                        {
                            foreach (var propertyEditor in modelListView.MasterDetailView.GetModelPropertyEditors())
                            {
                                yield return(propertyEditor);
                            }
                        }
                        else
                        {
                            yield return(modelPropertyEditor);
                        }
                    }
                }
                else
                {
                    yield return(modelPropertyEditor);
                }
            }
        }
        private void GenerateTabbedLayout(IModelDetailView detailViewInfo)
        {
            if (detailViewInfo.Layout["Main"] != null)
            {
                detailViewInfo.Layout["Main"].Remove();
            }
            IModelLayoutGroup main        = detailViewInfo.Layout.AddNode <IModelLayoutGroup>(ModelDetailViewLayoutNodesGenerator.MainLayoutGroupName);
            IModelLayoutGroup generalNode = null;
            IModelTabbedGroup tabNode     = null;
            IModelLayoutGroup footerNode  = null;

            foreach (IModelViewItem modelViewItem in detailViewInfo.Items)
            {
                IModelPropertyEditor editor = modelViewItem as IModelPropertyEditor;
                if (editor != null)
                {
                    if (FindModelDefaultAttribute(editor.ModelMember.MemberInfo, CustomDetailViewItemsGenarator.VisiblePropertiesAttribute) != null)
                    {
                        editor.PropertyEditorType = typeof(DetailPropertyEditor);// editor.ModelMember.EditorsInfo[EditorAliases.DetailPropertyEditor].DefaultEditor;
                    }
                    editor.ImmediatePostData = true;
                    IModelMemberExtender item = (IModelMemberExtender)editor;
                    string tabPageName        = item.TabPageName;
                    if (string.IsNullOrEmpty(tabPageName))
                    {
                        if (item.Footer)
                        {
                            if (footerNode == null)
                            {
                                footerNode       = main.AddNode <IModelLayoutGroup>(CustomDetailViewItemsGenarator.FooterId);
                                footerNode.Index = 5;
                            }
                            AddLayoutItemNode(footerNode, editor);
                        }
                        else
                        {
                            if (generalNode == null)
                            {
                                generalNode       = main.AddNode <IModelLayoutGroup>(CustomDetailViewItemsGenarator.GeneralId);
                                generalNode.Index = editor.Index.HasValue ? editor.Index : 0;
                            }
                            AddLayoutItemNode(generalNode, editor);
                        }
                    }
                    else
                    {
                        if (tabNode == null)
                        {
                            tabNode       = main.AddNode <IModelTabbedGroup>(CustomDetailViewItemsGenarator.MainTabId);
                            tabNode.Index = editor.Index.HasValue ? editor.Index : 1;
                        }
                        IModelLayoutGroup group = AddEditorToTabbedGroup(tabNode, tabPageName, editor);
                        if (editor.ModelMember.Index >= 0)
                        {
                            group.Index = editor.ModelMember.Index;
                        }
                    }
                }
            }
        }
Beispiel #5
0
        DetailView CreateDetailView(object groupRowValue, IModelDetailView modelDetailView)
        {
            var objectSpace = Application.CreateObjectSpace();

            groupRowValue = objectSpace.GetObject(groupRowValue);
            return(Application.CreateDetailView(objectSpace, modelDetailView, false, groupRowValue));
        }
Beispiel #6
0
        private void GenerateNestedDetailViewLayout(IModelDetailView modelDetailView)
        {
            List <IModelViewItem> items = new List <IModelViewItem>();

            foreach (IModelViewItem item in modelDetailView.Items)
            {
                items.Add(item);
            }
            foreach (IModelViewItem itemR in items)
            {
                itemR.Remove();
            }
            int index = 0;

            foreach (string propertyName in CustomLayoutHelper.Instance.GetViewVisibleProperties(modelDetailView.Id))
            {
                IModelPropertyEditor editor = modelDetailView.Items.AddNode <IModelPropertyEditor>(propertyName);
                editor.ImmediatePostData = true;
                editor.Index             = index++;
                editor.PropertyName      = propertyName;
                if (string.IsNullOrEmpty(((IModelViewItem)editor).Caption))
                {
                    ((IModelViewItem)editor).Caption = CaptionHelper.ConvertCompoundName(propertyName);
                }
            }
        }
        protected virtual object GetObjectCore(IModelDetailView modelView, object objectKey, IObjectSpace objectSpace)
        {
            Type   type = modelView.ModelClass.TypeInfo.Type;
            object obj;

            if (XafTypesInfo.CastTypeToTypeInfo(type).IsPersistent)
            {
                if (objectKey != null && !(objectKey is CriteriaOperator))
                {
                    obj = objectSpace.GetObjectByKey(type, objectKey);
                }
                else
                {
                    obj = objectSpace.FindObject(type, (CriteriaOperator)objectKey) ?? objectSpace.CreateObject(type);
                    if (!(objectSpace.IsNewObject(obj)))
                    {
                        _application.ViewShown += ApplicationOnViewShown;
                    }
                }
            }
            else
            {
                obj = (type.GetConstructor(new[] { typeof(Session) }) != null) ? objectSpace.CreateObject(type) : type.CreateInstance();
            }
            return(obj);
        }
Beispiel #8
0
        private void GenerateCustomLayout(IModelDetailView modelDetailView)
        {
            ITypeInfo        iTypeInfo            = modelDetailView.ModelClass.TypeInfo;
            HashSet <string> actionContainerNames = new HashSet <string>();

            foreach (IModelViewItem item in modelDetailView.Items)
            {
                IModelPropertyEditor editorInfo = (IModelPropertyEditor)item;
                if (CustomLayoutHelper.FindModelDefaultAttribute(editorInfo.ModelMember.MemberInfo, VisiblePropertiesAttribute) != null)
                {
                    editorInfo.PropertyEditorType = typeof(DetailPropertyEditor);
                }
                string visiblePropertiesAttributeValue = ((IModelMemberExtender)item).VisibleProperties;
                if (editorInfo.PropertyEditorType == typeof(DetailPropertyEditor) && !string.IsNullOrEmpty(visiblePropertiesAttributeValue))
                {
                    string nestedViewId = iTypeInfo.Name + "_" + editorInfo.PropertyName + "_DetailView";
                    editorInfo.View = modelDetailView.Application.Views[nestedViewId];
                }
                ModelDefaultAttribute actionsContainerAttribute = CustomLayoutHelper.FindModelDefaultAttribute(editorInfo.ModelMember.MemberInfo, ActionsContainerAttribute);
                if (actionsContainerAttribute != null)
                {
                    actionContainerNames.Add(actionsContainerAttribute.PropertyValue);
                }
            }
            foreach (string name in actionContainerNames)
            {
                IModelActionContainerViewItem modelActionContainerViewItem = modelDetailView.Items.AddNode <IModelActionContainerViewItem>(name);
            }
        }
 public override void UpdateNode(ModelNode node)
 {
     if (node.Parent is IModelDetailView && ((IModelDetailView)(node.Parent)).ModelClass.TypeInfo.Implements <ICustomLayoutInfo>())
     {
         IModelDetailView detailViewInfo = ((IModelDetailView)node.Parent);
         GenerateTabbedLayout(detailViewInfo);
     }
 }
Beispiel #10
0
        private void UpdateDetailViewLayout(IModelDetailView modelDetailView, DetailViewLayoutBuilderAttribute attribute, IModelViewLayout layoutNode)
        {
            //layoutAttribute.Options(modelDetailView);

            layoutNode.ClearNodes();

            BuildLayout(attribute.Layout, layoutNode, modelDetailView);
        }
        internal IModelMemberViewItem GetParameterViewItem(string parameterName, Type parameterType)
        {
            string             uniqueParameterName = "Reports_" + parameterName.Replace('.', '_') + "_" + parameterType.Name;
            UpdatableParameter xafParameter        = new UpdatableParameter(uniqueParameterName, parameterType);
            ParameterList      parameterList       = new ParameterList();

            parameterList.Add(xafParameter);
            ParametersObject.CreateBoundObject(parameterList);
            IModelDetailView detailViewModel = TempDetailViewHelper.CreateTempDetailViewModel(Application.Model, typeof(ParametersObject));

            return((IModelMemberViewItem)detailViewModel.Items[uniqueParameterName]);
        }
 object GetObjectKey(ViewShortcut shortcut, IModelDetailView modelDetailView, IObjectSpace objectSpace) {
     var type = modelDetailView.ModelClass.TypeInfo.Type;
     var objectKeyString = shortcut.ObjectKey;
     if (shortcut.ContainsKey("Criteria"))
         objectKeyString = shortcut["Criteria"];
     if (objectKeyString.StartsWith("@")) {
         var modelReadOnlyParameter = ((IModelApplicationReadonlyParameters)modelDetailView.Application).ReadOnlyParameters[objectKeyString.Substring(1)];
         var readOnlyParameter = (ReadOnlyParameter) modelReadOnlyParameter.Type.CreateInstance();
         objectKeyString = readOnlyParameter.CurrentValue.ToString();
     }
     return string.IsNullOrEmpty(objectKeyString) ? null : GetObjectKeyCore(objectSpace, type, objectKeyString);
 }
    public override void UpdateNode(ModelNode node)
    {
        IModelDetailViewLayout layout     = node as IModelDetailViewLayout;
        IModelDetailView       detailView = (IModelDetailView)layout.Parent;

        if (!XafTypesInfo.Instance.FindTypeInfo(typeof(MyBase)).IsAssignableFrom(detailView.ModelClass.TypeInfo))
        {
            return;
        }
        foreach (IModelDetailViewLayoutElement element in layout)
        {
            UpdateLayoutItems(element, detailView.Items, XafTypesInfo.Instance.FindTypeInfo(typeof(MyBase)).FindMember("Description"));
        }
    }
Beispiel #14
0
        public override void UpdateNode(ModelNode node)
        {
            IModelDetailView detailView = node.Parent as IModelDetailView;

            if (detailView != null)
            {
                if (detailView.ModelClass.TypeInfo.Implements <ICustomLayoutInfo>())
                {
                    GenerateCustomLayout(detailView);
                }
                if (CustomLayoutHelper.Instance.HasVisibleProperties(detailView.ModelClass.Name))
                {
                    GenerateNestedDetailViewLayout(detailView);
                }
            }
        }
Beispiel #15
0
        private void GenerateNestedDetailViews(IModelViews views, IModelClass modelClass)
        {
            string visibleProperties;

            foreach (IModelMember modelMember in modelClass.AllMembers)
            {
                visibleProperties = ((IModelMemberExtender)modelMember).VisibleProperties;
                if (visibleProperties != null)
                {
                    string           nestedViewId   = modelClass.TypeInfo.Name + "_" + modelMember.MemberInfo.Name + "_DetailView";
                    IModelDetailView detailViewInfo = views.AddNode <IModelDetailView>(nestedViewId);
                    detailViewInfo.ModelClass = views.Application.BOModel[modelMember.MemberInfo.MemberType.FullName];
                    CustomLayoutHelper.Instance.RegisterViewVisibleProperties(detailViewInfo.Id, visibleProperties);
                }
            }
        }
        protected virtual object GetObjectCore(IModelDetailView modelView, object objectKey, IObjectSpace objectSpace) {
            Type type = modelView.ModelClass.TypeInfo.Type;
            object obj;

            if (XafTypesInfo.CastTypeToTypeInfo(type).IsPersistent) {
                if (objectKey != null && !(objectKey is CriteriaOperator))
                    obj = objectSpace.GetObjectByKey(type, objectKey);
                else {
                    obj = objectSpace.FindObject(type, (CriteriaOperator)objectKey) ?? objectSpace.CreateObject(type);
                    if (!(objectSpace.IsNewObject(obj)))
                        ((IXafApplication)_application).AfterViewShown += OnAfterViewShown;
                }
            } else {
                obj = (type.GetConstructor(new[] { typeof(Session) }) != null) ? objectSpace.CreateObject(type) : Activator.CreateInstance(type);
            }
            return obj;
        }
Beispiel #17
0
        private void ListViewFilterPanelController_Activated(object sender, EventArgs e)
        {
            // Скрываем саму кнопку
            ListViewClearFilter.Enabled[DO_NOT_ENABLED] = false;
            ListViewApplyFilter.Enabled[DO_NOT_ENABLED] = false;

            frame    = Frame;
            view     = View;
            listView = view as DevExpress.ExpressApp.ListView;
            if (listView == null)
            {
                return;
            }

            objectTypeInfo       = listView.CollectionSource.ObjectTypeInfo;
            typeObjectOfListView = objectTypeInfo.Type;

            // Критерий из модели для самого ListView
            listViewCriteria = listView.Model.Criteria;

            View.ControlsCreated += new EventHandler(View_ControlsCreated);
            FilteringCriterionListAction.Items.Clear();

            foreach (IModelDetailView node in View.Model.Application.Views.GetNodes <IModelDetailView>())
            {
                if (node.ModelClass.TypeInfo.Type.Name.StartsWith(typeObjectOfListView.Name + "Filter"))
                {
                    ChoiceActionItem current = new ChoiceActionItem(node.Id, node.Caption, node);
                    FilteringCriterionListAction.Items.Add(current);
                }
            }

            IModelDetailView imdvFullTextSearch    = Application.FindModelView(Application.FindDetailViewId(typeof(FilteringCriterion))) as IModelDetailView;
            string           FullTextSearchCaption = imdvFullTextSearch.Caption;

            FilteringCriterionListAction.Items.Add(new ChoiceActionItem("CriteriaBuilder", FullTextSearchCaption, null));
            FilteringCriterionListAction.SelectedIndex = 0;

            if (standardFullTextFilterAction != null)
            {
                standardFullTextFilterAction.Active["IsPersistentType"] = true;
                //    string searchText = "";
                //    if (standardFullTextFilterAction.Value != null) searchText = standardFullTextFilterAction.Value.ToString();
                //    InitVariablesForLikeSearchPathListAttribute(searchText, out criteriaForLikeSearchPathListAttribute, out propertiesForLikeSearchPathListAttribute);
            }
        }
        object GetObjectKey(ViewShortcut shortcut, IModelDetailView modelDetailView, IObjectSpace objectSpace)
        {
            var type            = modelDetailView.ModelClass.TypeInfo.Type;
            var objectKeyString = shortcut.ObjectKey;

            if (shortcut.ContainsKey("Criteria"))
            {
                objectKeyString = shortcut["Criteria"];
            }
            if (objectKeyString.StartsWith("@"))
            {
                var modelReadOnlyParameter = ((IModelApplicationReadonlyParameters)modelDetailView.Application).ReadOnlyParameters[objectKeyString.Substring(1)];
                var readOnlyParameter      = (ReadOnlyParameter)modelReadOnlyParameter.Type.CreateInstance();
                objectKeyString = readOnlyParameter.CurrentValue.ToString();
            }
            return(string.IsNullOrEmpty(objectKeyString) ? null : GetObjectKeyCore(objectSpace, type, objectKeyString));
        }
Beispiel #19
0
        public override void UpdateNode(ModelNode node)
        {
            IModelViews views = (IModelViews)node;

            foreach (IModelView modelView in views)
            {
                if ((modelView is IModelObjectView) && CustomLayoutHelper.Instance.HasVisibleProperties(((IModelObjectView)modelView).ModelClass.Name))
                {
                    modelView.Remove();
                }
                IModelDetailView modelDetailView = modelView as IModelDetailView;
                if ((modelDetailView != null) && modelDetailView.ModelClass.TypeInfo.Implements <ICustomLayoutInfo>())
                {
                    GenerateNestedDetailViews(views, modelDetailView.ModelClass);
                }
            }
        }
Beispiel #20
0
        public void Proccess(CustomProcessShortcutEventArgs shortcutEventArgs)
        {
            if (shortcutEventArgs.Handled)
            {
                return;
            }
            var shortcut = shortcutEventArgs.Shortcut;
            IModelDetailView modelDetailView = GetModelDetailView(shortcut);

            if ((modelDetailView != null && IsEnable(modelDetailView)))
            {
                if (CanCreate(modelDetailView.ModelClass.TypeInfo))
                {
                    shortcutEventArgs.Handled = true;
                    var    objectSpace = _application.CreateObjectSpace();
                    object obj         = GetObject(shortcut, modelDetailView, objectSpace);
                    _detailView            = _application.CreateDetailView(objectSpace, modelDetailView, true, obj);
                    shortcutEventArgs.View = _detailView;
                }
            }
        }
Beispiel #21
0
        void HotelInfomationNavigationDetailViewWC_CustomShowNavigationItem(object sender, CustomShowNavigationItemEventArgs e)
        {
            IModelDetailView model = ((IModelNavigationItem)e.ActionArguments.SelectedChoiceActionItem.Model).View as IModelDetailView;

            if (model != null)
            {
                if (model.Id == "HotelInfomation_DetailView")
                {
                    IObjectSpace    objectSpace     = Application.CreateObjectSpace();
                    HotelInfomation hotelInfomation = objectSpace.FindObject <HotelInfomation>(null);
                    if (hotelInfomation == null)
                    {
                        hotelInfomation = objectSpace.CreateObject <HotelInfomation>();
                        try { objectSpace.CommitChanges(); }
                        catch { }
                    }
                    DetailView detailView = Application.CreateDetailView(objectSpace, model, true, hotelInfomation);
                    detailView.ViewEditMode = ViewEditMode.Edit;
                    e.ActionArguments.ShowViewParameters.CreatedView  = detailView;
                    e.ActionArguments.ShowViewParameters.TargetWindow = TargetWindow.Current;
                    e.Handled = true;
                }
            }
        }
Beispiel #22
0
        protected IModelLayoutGroup HGroup <T>(IModelDetailView view, IModelLayoutGroup layout, int index, Expression <Func <T, object> >[] property)
        {
            try
            {
                //layout.GetNodes<IModelLayoutViewItem>();

                var gname = "R" + (layout.Count() + 1);
                //var ng = (layout.GetNode(gname));
                //if (ng != null)
                //{

                //}

                var group = layout.AddNode <IModelLayoutGroup>(gname);
                group.Index     = index;
                group.Direction = FlowDirection.Horizontal;

                var lastIndex = group.NodeCount;
                foreach (var item in property)
                {
                    var rst = group.AddNode <IModelLayoutViewItem>("I" + lastIndex);
                    if (item != null)
                    {
                        var name = GetMemberName(item);
                        rst.ViewItem = view.Items[name];
                    }
                    lastIndex++;
                    rst.Index = lastIndex;
                }
                return(group);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 object GetObject(ViewShortcut shortcut, IModelDetailView modelDetailView, IObjectSpace objectSpace) {
     object objectKey = GetObjectKey(shortcut, modelDetailView.ModelClass.TypeInfo.Type, objectSpace);
     return GetObjectCore(modelDetailView, objectKey, objectSpace);
 }
 bool IsEnable(IModelDetailView modelDetailView) {
     return ((IModelDetailViewProccessViewShortcuts)modelDetailView).ViewShortcutProccesor;
 }
Beispiel #25
0
 public static void Set_DetailView(IModelDesignTemplateDetailView view, IModelDetailView modelDetailView)
 => view.DetailViewId = modelDetailView.Id;
Beispiel #26
0
 public void LoadDetailViewInfo(IModelDetailView view)
 {
     this.LoadViewInfo(view);
 }
Beispiel #27
0
 static bool ModelClassMatch(IModelProccessListViewSelectItem masterDetailRule, IModelDetailView view)
 {
     return(view.ModelClass == ((IModelListView)masterDetailRule.Parent).ModelClass);
 }
 bool IsEnable(IModelDetailView modelDetailView) {
     var modelDetailViewProccessViewShortcuts = modelDetailView as IModelDetailViewProccessViewShortcuts;
     return modelDetailViewProccessViewShortcuts != null && (modelDetailViewProccessViewShortcuts).ViewShortcutProccesor;
 }
Beispiel #29
0
        public static DetailView NewDetailView(this XafApplication application, object currentObject, IModelDetailView modelDetailView = null, bool isRoot = true)
        {
            var objectSpace = application.CreateObjectSpace();

            modelDetailView ??= application.FindModelDetailView(currentObject.GetType());
            var detailView = application.CreateDetailView(objectSpace, modelDetailView, isRoot);

            detailView.CurrentObject = objectSpace.GetObject(currentObject);
            return(detailView);
        }
        object GetObject(ViewShortcut shortcut, IModelDetailView modelDetailView, IObjectSpace objectSpace)
        {
            object objectKey = GetObjectKey(shortcut, modelDetailView, objectSpace);

            return(GetObjectCore(modelDetailView, objectKey, objectSpace));
        }
        bool IsEnable(IModelDetailView modelDetailView)
        {
            var modelDetailViewProccessViewShortcuts = modelDetailView as IModelDetailViewProccessViewShortcuts;

            return(modelDetailViewProccessViewShortcuts != null && (modelDetailViewProccessViewShortcuts).ViewShortcutProccesor);
        }
Beispiel #32
0
        private void FilteringCriterionListAction_Execute(object sender, SingleChoiceActionExecuteEventArgs e)
        {
            // Глушим стандартный полнотекстовый поиск
            standardFilterController.FullTextFilterAction.Enabled[FTS_DO_NOT_ENABLED] = false;
            ListViewClearFilter.Enabled[DO_NOT_ENABLED] = true;
            ListViewApplyFilter.Enabled[DO_NOT_ENABLED] = true;


            // В зависимости от выбранного пункта вызывается та или иная форма

            //frame = Frame;
            //view = View;
            //listView = view as DevExpress.ExpressApp.ListView;

            if (listView == null)
            {
                return;
            }

            // Находим, если задан, фильтр из модели
            string           choiceActionItemFilterString = "";
            FilterController fc = Frame.GetController <FilterController>();
            ChoiceActionItem choiceActionItem = ((SingleChoiceAction)(fc.Actions["SetFilter"])).SelectedItem;

            if (choiceActionItem != null)
            {
                choiceActionItemFilterString = choiceActionItem.Data.ToString();
            }


            if (e.SelectedChoiceActionItem.Id == "CriteriaBuilder")
            {
                // Показ формы построения запроса с помощью построителя критериев

                if (FilterIsShowihg)
                {
                    if (currentFilterId == "CriteriaBuilder")
                    {
                        FilterPanelHide();
                        return;
                    }
                }

                currentFilterId = "CriteriaBuilder";
                FilterIsShowihg = true;

                // Разблокируем кнопку применения фильтра
                ListViewApplyFilter.Enabled.Clear();
                ListViewApplyFilter.Enabled[DO_NOT_ENABLED] = true;

                // Тип объекта-фильтра
                Type filterObjType = typeof(FilteringCriterion);

                string strCriteria = this.criteriaBuilderString;

                IObjectSpace       objectSpace = frame.Application.CreateObjectSpace();
                FilteringCriterion objFilter   = objectSpace.CreateObject(filterObjType) as FilteringCriterion; // objectSpace.GetObject(currentObject);
                if (objFilter == null)
                {
                    return;
                }
                //objFilter.LV = listView;
                objFilter.objectTypeInfo = objectTypeInfo;
                //objFilter.CriteriaController = this;

                objFilter.Criterion = strCriteria; // Остаётся для построителя запросов в форме FilteringCriterion.cs
                //objFilter.AdditionalCriterionString = choiceActionItemFilterString;

                wp = objFilter as ICustomFilter;
                if (wp == null)
                {
                    return;
                }

                string DetailViewId = frame.Application.FindDetailViewId(objFilter.GetType());

                DetailView newView = frame.Application.CreateDetailView(objectSpace, DetailViewId, false, objFilter);
                newView.CreateControls();

                filterPanel.Controls.Clear();
                DevExpress.ExpressApp.Win.Layout.XafLayoutControl ctrlFilter = ((DevExpress.ExpressApp.Win.Layout.XafLayoutControl)newView.Control);
                filterPanel.Controls.Add(ctrlFilter);

                FilteringCriterionListAction.SelectedIndex = 0;

                FilterPanelShow(130);

                return;
            }

            if (e.SelectedChoiceActionItem.Data != null)
            {
                // Показ формы с полями от NonPersistent объекта, через которую формировать критерий поиска, присваивать его
                // списку и reload() этого списка

                // Разблокируем кнопку применения фильтра
                ListViewApplyFilter.Enabled.Clear();
                ListViewApplyFilter.Enabled[DO_NOT_ENABLED] = true;

                IModelDetailView node = e.SelectedChoiceActionItem.Data as IModelDetailView;

                // Тип объекта-фильтра
                Type filterObjType = node.ModelClass.TypeInfo.Type;

                string strCriteria = this.criteriaBuilderString;

                IObjectSpace  objectSpace = frame.Application.CreateObjectSpace();
                ICustomFilter objFilter   = objectSpace.CreateObject(filterObjType) as ICustomFilter;
                if (objFilter == null)
                {
                    return;
                }
                //objFilter.LV = listView;
                objFilter.objectTypeInfo = objectTypeInfo;
                //objFilter.CriteriaController = this;

                //objFilter.AdditionalCriterionString = choiceActionItemFilterString;

                //objFilter.Criterion = strCriteria;

                string DetailViewId = frame.Application.FindDetailViewId(objFilter.GetType());

                if (FilterIsShowihg & currentFilterId == DetailViewId)
                {
                    FilterPanelHide();
                    return;
                }

                currentFilterId = DetailViewId;
                FilterIsShowihg = true;

                wp = objFilter as ICustomFilter;
                if (wp == null)
                {
                    return;
                }

                DetailView newView = frame.Application.CreateDetailView(objectSpace, DetailViewId, false, objFilter);
                newView.CreateControls();

                filterPanel.Controls.Clear();
                DevExpress.ExpressApp.Win.Layout.XafLayoutControl ctrlFilter = ((DevExpress.ExpressApp.Win.Layout.XafLayoutControl)newView.Control);
                filterPanel.Controls.Add(ctrlFilter);

                FilteringCriterionListAction.SelectedIndex = 0;

                //FilterPanelShow(100);
                FilterPanelShow(GetFilterHight(newView) + 30);

                return;
            }
        }
Beispiel #33
0
 public XpandDetailView(IModelDetailView info, IObjectSpace objectSpace, object obj, XafApplication application, bool isRoot)
     : base(info, objectSpace, obj, application, isRoot)
 {
 }
Beispiel #34
0
 public XpandDetailView(IModelDetailView info, IObjectSpace objectSpace, object obj, XafApplication application, bool isRoot)
     : base(info, objectSpace, obj, application, isRoot) {
 }
Beispiel #35
0
 public XpandDetailView(IModelDetailView info, IObjectSpace objectSpace, object obj, XafApplication application, bool isRoot)
     : base(info, objectSpace, obj, application, isRoot) {
     this.UpdateLayoutManager();
 }
Beispiel #36
0
 public XpandDetailView(IModelDetailView info, IObjectSpace objectSpace, object obj, XafApplication application, bool isRoot)
     : base(info, objectSpace, obj, application, isRoot)
 {
     this.UpdateLayoutManager();
 }
Beispiel #37
0
 bool IsEnable(IModelDetailView modelDetailView)
 {
     return(((IModelDetailViewProccessViewShortcuts)modelDetailView).ViewShortcutProccesor);
 }