コード例 #1
0
        private void FillItemWithLeaderEmployeeValues(ChoiceActionItem parentItem)
        {
            if (ObjectSpace != null && SecuritySystem.CurrentUser != null)
            {
                Employee         curEmp      = SecuritySystem.CurrentUser as Employee;
                IList <Employee> lstEmployee = ObjectSpace.GetObjects <Employee>(
                    CriteriaOperator.And(new NotOperator(new NullOperator("Position")), new BinaryOperator("Position.PositionLevel", 50, BinaryOperatorType.GreaterOrEqual),
                                         new BinaryOperator("Position.PositionLevel", curEmp.Position.PositionLevel, BinaryOperatorType.LessOrEqual)));
                //IList<Employee> lstEmployee = ObjectSpace.GetObjects<Employee>();
                if (lstEmployee != null)
                {
                    lstEmployee = lstEmployee.OrderBy(x => x.UserName).ToList(); //Nếu kỹ: phải hạn chế, chỉ cho phép chuyển cho cấp dưới PositionLevel <= current PositionLevel

                    parentItem.Items.Clear();
                    foreach (Employee emp in lstEmployee)
                    {
                        if (emp != null && curEmp != null && emp.Oid != curEmp.Oid)
                        {
                            ChoiceActionItem item = new ChoiceActionItem(emp.Title, emp);
                            //item.ImageName = ImageLoader.Instance.GetEnumValueImageName(current);
                            parentItem.Items.Add(item);
                        }
                    }
                }
            }
        }
コード例 #2
0
        private void FillNavigationDDLFromModel(IModelMiniNavigations miniNavigationNode)
        {
            if (miniNavigationNode != null)
            {
                // Сначала заполняем тот, что прописан по умолчанию
                IModelMiniNavigationItem miniNavigationDefaultItem = miniNavigationNode.DefaultMiniNavigationNode;
                if (miniNavigationDefaultItem != null)
                {
                    string       path    = miniNavigationDefaultItem.NavigationPath;
                    string       caption = miniNavigationDefaultItem.NavigationCaption;
                    TargetWindow tw      = miniNavigationDefaultItem.TargetWindow;

                    ChoiceActionItem cai = new ChoiceActionItem(path, caption, tw);
                    MiniNavigationAction.Items.Add(cai);
                }

                foreach (IModelMiniNavigationItem miniNavigationItem in miniNavigationNode.GetNodes <IModelMiniNavigationItem>())
                {
                    if (miniNavigationItem != miniNavigationDefaultItem)
                    {
                        string       path    = miniNavigationItem.NavigationPath;
                        string       caption = miniNavigationItem.NavigationCaption;
                        TargetWindow tw      = miniNavigationItem.TargetWindow;

                        ChoiceActionItem cai = new ChoiceActionItem(path, caption, tw);
                        MiniNavigationAction.Items.Add(cai);
                    }
                }
            }
        }
        void navigationItemCreated(object sender, NavigationItemCreatedEventArgs e)
        {
            ChoiceActionItem navigationItem = e.NavigationItem;
            IModelObjectView viewNode       = ((IModelNavigationItem)e.NavigationItem.Model).View as IModelObjectView;

            if (viewNode != null)
            {
                ITypeInfo objectTypeInfo = XafTypesInfo.Instance.FindTypeInfo(viewNode.ModelClass.Name);
                if (objectTypeInfo != null)
                {
                    CriteriaOperator     docCriteria   = CriteriaOperator.Parse("ObjectType == ?", objectTypeInfo.Type);
                    IObjectSpace         myObjectSpace = Application.CreateObjectSpace(typeof(HelpDocument));
                    IList <HelpDocument> docs          = myObjectSpace.GetObjects <HelpDocument>(docCriteria);
                    if (docs.Count > 0)
                    {
                        ChoiceActionItem docsGroup = new ChoiceActionItem("CustomDocuments", "Task-Based Help", null)
                        {
                            ImageName = "BO_Report"
                        };
                        navigationItem.Items.Add(docsGroup);
                        foreach (HelpDocument doc in docs)
                        {
                            ViewShortcut     shortcut = new ViewShortcut(typeof(HelpDocument), doc.Oid.ToString(), "HelpDocument_DetailView_FewColumns");
                            ChoiceActionItem docItem  = new ChoiceActionItem(doc.Oid.ToString(), doc.Title, shortcut)
                            {
                                ImageName = "Navigation_Item_Report"
                            };
                            docsGroup.Items.Add(docItem);
                        }
                    }
                }
            }
        }
コード例 #4
0
        protected override void OnActivated()
        {
            base.OnActivated();

            ShowNavigationItemController navigationController = Frame.GetController <ShowNavigationItemController>();

            //StoreDefaultCulture();
            localizationNavBarGroup = navigationController.ShowNavigationItemAction.Items.Find(navBarGroupCaption, ChoiceActionItemFindType.Recursive, ChoiceActionItemFindTarget.Any);
            if (localizationNavBarGroup != null)
            {
                UpdateCultureChoiceActionItem(defaultLanguageCaption, defaultFormattingCultureName, "Language: Default, Formatting: User", "Localization.Demo_Localization_Def_User");
                //UpdateCultureChoiceActionItem("de", defaultFormattingCultureName, "Language: de, Formatting: User", "Localization.Demo_Localization_de_User");
                //UpdateCultureChoiceActionItem(defaultLanguageCaption, "de", "Language: Default, Formatting: de", "Localization.Demo_Localization_Def_de");
                //UpdateCultureChoiceActionItem("de", "de", "Language: de, Formatting: de", "Localization.Demo_Localization_de_de");
            }

            //ChoiceActionItem currentLanguageItem = ChooseLanguage.Items.Find(Application.Model.CurrentAspect, ChoiceActionItemFindType.NonRecursive, ChoiceActionItemFindTarget.Leaf);
            //ChoiceActionItem currentLanguageItem = ChooseLanguage.Items.Find(((IModelApplicationServices)(Application.Model)).CurrentAspect, ChoiceActionItemFindType.NonRecursive, ChoiceActionItemFindTarget.Leaf);
            //if(currentLanguageItem != null) {
            //    ChooseLanguage.SelectedIndex = ChooseLanguage.Items.IndexOf(currentLanguageItem);
            //}
            //ChooseFormattingCulture.SelectedIndex = ChooseFormattingCulture.Items.IndexOf(ChooseFormattingCulture.Items.Find(System.Threading.Thread.CurrentThread.CurrentCulture.Name, ChoiceActionItemFindType.Recursive, ChoiceActionItemFindTarget.Any));

            //navigationController.CustomShowNavigationItem += new EventHandler<CustomShowNavigationItemEventArgs>(ChangeLanguageController_CustomShowNavigationItem);
            navigationController.CustomUpdateSelectedItem += new EventHandler <CustomUpdateSelectedItemEventArgs>(navigationController_CustomUpdateSelectedItem);
            this.chooseFormattingCulture.Execute          += new SingleChoiceActionExecuteEventHandler(ChooseFormattingCulture_Execute);
            this.chooseLanguage.Execute += new DevExpress.ExpressApp.Actions.SingleChoiceActionExecuteEventHandler(ChooseLanguage_Execute);
        }
コード例 #5
0
        private void createMenue(SingleChoiceAction action)
        {
            IObjectSpace os        = this.ObjectSpace;
            DetailView   curView   = (DetailView)View;
            boAnlage     curAnlage = os.GetObjectByKey <boAnlage>(((boAnlage)curView.CurrentObject).Oid);

            action.Items.Clear();
            switch (action.Id)
            {
            case ("doAddMessung"):
            {
                boAnlagenArt curArt = os.GetObjectByKey <boAnlagenArt>(curAnlage.AnlagenArt.Oid);
                action.ImageName = "system_monitor";
                if (curArt.lstMesstypen != null)
                {
                    foreach (boMesstyp messtyp in curArt.lstMesstypen)
                    {
                        ChoiceActionItem curItem = new ChoiceActionItem(messtyp.Oid.ToString(), messtyp.Bezeichnung, messtyp);
                        curItem.ImageName = "system_monitor";
                        action.Items.Add(curItem);
                    }
                }
                break;
            }
            }
        }
コード例 #6
0
        public ImportApPmtDistnParamViewController()
        {
            TargetObjectType = typeof(ImportApPmtDistnParam);
            TargetViewType   = ViewType.DetailView;

            var importAction = new SimpleAction(this, "ImportApPmtDistnAction", PredefinedCategory.ObjectsCreation);

            importAction.Caption  = "Run Import";
            importAction.Execute += ImportAction_Execute;


            var resetAction = new SingleChoiceAction(this, "ResetImportApPmtDistnAction", PredefinedCategory.ObjectsCreation);

            resetAction.Caption          = "Reset";
            resetAction.ShowItemsOnClick = true;
            resetAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            resetAction.Execute         += ResetAction_Execute;

            var resetSqlChoice = new ChoiceActionItem();

            resetSqlChoice.Caption = "Reset SQL";
            resetAction.Items.Add(resetSqlChoice);

            var resetColumns = new ChoiceActionItem();

            resetColumns.Caption = "Reset Columns";
            resetAction.Items.Add(resetColumns);
        }
コード例 #7
0
        /// <inheritdoc/>
        protected override void OnActivated()
        {
            base.OnActivated();

            // Кастомизация представления списка
            if (View is ListView)
            {
                // Типы элементов мастера отчетов
                ITypeInfo objectTypeInfo = ((ObjectView)View).ObjectTypeInfo;
                List<ITypeInfo> typesInfo = new List<ITypeInfo>(ReflectionHelper.FindTypeDescendants(objectTypeInfo));
                typesInfo.Insert(0, ((ObjectView)View).ObjectTypeInfo);
                foreach (ITypeInfo typeInfo in typesInfo)
                {
                    var cls = Application.Model.BOModel.GetClass(typeInfo.Type);
                    if (!cls.IsCreatableItem) continue;
                    ChoiceActionItem item = new ChoiceActionItem(cls.Caption, typeInfo);
                    item.ImageName = cls.ImageName;
                    CreateItem.Items.Add(item);
                }

                // Кастомизация типа редактора элемента
                // (Установлена постоянно для установки ViewItem.CurrentObject, необходимым редактору выражений)
                //if (!(CreateItem.Items.Count == 1 && CreateItem.Items[0].Data == objectTypeInfo))
                ListView.CreateCustomCurrentObjectDetailView += ListView_CreateCustomCurrentObjectDetailView;
            }
        }
コード例 #8
0
        protected virtual bool HasRights(ChoiceActionItem item, IModelView view)
        {
            var data = (ViewShortcut)item.Data;

            if (view == null)
            {
                throw new ArgumentException(string.Format("Cannot find the '{0}' view specified by the shortcut: {1}",
                                                          data.ViewId, data));
            }
            Type type = (view is IModelObjectView) ? ((IModelObjectView)view).ModelClass.TypeInfo.Type : null;

            if (type != null)
            {
                if (!string.IsNullOrEmpty(data.ObjectKey) && !data.ObjectKey.StartsWith("@"))
                {
                    try {
                        using (IObjectSpace space = CreateObjectSpace()) {
                            object objectByKey = space.GetObjectByKey(type, space.GetObjectKey(type, data.ObjectKey));
                            return(DataManipulationRight.CanRead(type, null, objectByKey, null, space) &&
                                   DataManipulationRight.CanNavigate(type, objectByKey, space));
                        }
                    } catch {
                        return(true);
                    }
                }
                return(DataManipulationRight.CanNavigate(type, null, null));
            }
            return(true);
        }
コード例 #9
0
 private void CreateActionItems()
 {
     ChoiceActionItem defaultTemplateItem = new ChoiceActionItem("Horizontal navigation", "Default.aspx");
     ChooseTemplateAction.Items.Add(defaultTemplateItem);
     ChoiceActionItem defaultVerticalTemplateItem = new ChoiceActionItem("Vertical navigation", "DefaultVertical.aspx");
     ChooseTemplateAction.Items.Add(defaultVerticalTemplateItem);
 }
コード例 #10
0
        public ApPmtDistnViewController()
        {
            TargetObjectType = typeof(ApPmtDistn);

            var mainAction = new SingleChoiceAction(this, "RunApPmtDistnAction", DevExpress.Persistent.Base.PredefinedCategory.Edit);

            mainAction.Caption          = "Actions";
            mainAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            mainAction.ShowItemsOnClick = true;
            mainAction.Execute         += MainAction_Execute;

            var importChoice = new ChoiceActionItem();

            importChoice.Caption = importCaption;
            mainAction.Items.Add(importChoice);

            var mapSelectedChoice = new ChoiceActionItem();

            mapSelectedChoice.Caption = mapSelectedCaption;
            mainAction.Items.Add(mapSelectedChoice);

            var mapFilteredChoice = new ChoiceActionItem();

            mapFilteredChoice.Caption = mapFilteredCaption;
            mainAction.Items.Add(mapFilteredChoice);

            var processChoice = new ChoiceActionItem();

            processChoice.Caption = processCaption;
            mainAction.Items.Add(processChoice);
        }
コード例 #11
0
        void AddItem(ChoiceActionItemCollection choiceActionItemCollection, List <string> strings, ITypeInfo groupedType)
        {
            string           itemId           = strings[0];
            ChoiceActionItem choiceActionItem = choiceActionItemCollection.FindItemByID(itemId);

            if (choiceActionItem == null)
            {
                choiceActionItem = new ChoiceActionItem(itemId, itemId, GetType());
                choiceActionItemCollection.Add(choiceActionItem);
                strings.RemoveAt(0);
                if (strings.Count == 0)
                {
                    AddItemCore(choiceActionItem, groupedType);
                    return;
                }
                AddItem(choiceActionItem.Items, strings, groupedType);
                return;
            }
            strings.RemoveAt(0);
            if (strings.Count == 0)
            {
                AddItemCore(choiceActionItem, groupedType);
                return;
            }

            AddItem(choiceActionItem.Items, strings, groupedType);
        }
コード例 #12
0
        void _NavigationController_ItemsInitialized(object sender, EventArgs e) {
            IModelView view = Application.FindModelView(Application.FindListViewId(typeof(DashboardDefinition)));
            var options = ((IModelOptionsDashboards)Application.Model.Options);
            var dashboardOptions = ((IModelOptionsDashboardNavigation)options.Dashboards);
            if (dashboardOptions.DashboardsInGroup) {
                ReloadDashboardActions();
                var actions = new List<ChoiceActionItem>();
                if (DashboardActions.Count > 0) {
                    var dashboardGroup = GetGroupFromActions(((ShowNavigationItemController)sender).ShowNavigationItemAction, dashboardOptions.DashboardGroupCaption);
                    if (dashboardGroup == null) {
                        dashboardGroup = new ChoiceActionItem(dashboardOptions.DashboardGroupCaption, null) {
                            ImageName = "BO_DashboardDefinition"
                        };
                        ((ShowNavigationItemController)sender).ShowNavigationItemAction.Items.Add(dashboardGroup);
                    }
                    while (dashboardGroup.Items.Count != 0) {
                        ChoiceActionItem item = dashboardGroup.Items[0];
                        dashboardGroup.Items.Remove(item);
                        actions.Add(item);
                    }
                    foreach (ChoiceActionItem action in DashboardActions.Keys) {
                        action.Active["HasRights"] = HasRights(action, view);
                        actions.Add(action);
                    }
                    foreach (ChoiceActionItem action in actions.OrderBy(action => action.Model.Index))
                        dashboardGroup.Items.Add(action);

                }
            }
        }
コード例 #13
0
        private void cloneViewPopupWindowShowAction_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
        {
            DictionaryNode variantsNode = GetDefaultVariantsNode();
            ViewCloner viewCloner;
            DictionaryNode newVariantNode = GetNewVariantNode(variantsNode, e, out viewCloner);

            DictionaryNode clonedNode = View.Info.Clone();
            setAttributes(clonedNode, viewCloner);
            Application.Model.RootNode.FindChildNode("Views").AddChildNode(clonedNode);

            var changeVariantController = Frame.GetController<ChangeVariantController>();
            SingleChoiceAction changeVariantAction = changeVariantController.ChangeVariantAction;
            if (changeVariantController.Active.ResultValue)
            {
                var choiceActionItem = new ChoiceActionItem(newVariantNode,
                                                            newVariantNode.GetAttributeValue("ViewID"));
                changeVariantAction.Items.Add(choiceActionItem);
                changeVariantAction.SelectedItem=choiceActionItem;
            }
            else
            {
                changeVariantController.Frame.SetView(View);
                changeVariantAction.SelectedItem = (from item in changeVariantAction.Items
                                                    where item.Caption == viewCloner.Caption
                                                    select item).Single();
            }
            View.SetInfo(clonedNode);
        }
コード例 #14
0
        protected override void OnViewControllersActivated()
        {
            base.OnViewControllersActivated();
            var modelActions      = Application.Model.ActionDesign.Actions.Cast <IModelActionItemsFromModel>().Where(model => model.ItemsFromModel);
            var choiceActionItems = modelActions.Where(model => model.ChoiceActionItems != null).SelectMany(model => model.ChoiceActionItems);
            var actions           = Frame.Actions <SingleChoiceAction>(choiceActionItems).ToDictionary(@base => @base.Id, @base => @base);

            if (actions.Any())
            {
                foreach (var choiceActionItem in choiceActionItems)
                {
                    var key = choiceActionItem.GetParent <IModelAction>().Id;
                    if (actions.ContainsKey(key))
                    {
                        var singleChoiceAction = actions[key];
                        if (singleChoiceAction.Items.FindItemByID(choiceActionItem.Id) == null)
                        {
                            var actionItem = new ChoiceActionItem(choiceActionItem);
                            OnCustomizeActionItem(new CustomizeActionItemArgs(actionItem));
                            singleChoiceAction.Items.Add(actionItem);
                        }
                    }
                }
            }
        }
コード例 #15
0
 protected override void ShowNavigationItem(SingleChoiceActionExecuteEventArgs e)
 {
     if ((e.SelectedChoiceActionItem != null) && e.SelectedChoiceActionItem.Enabled.ResultValue &&
         e.SelectedChoiceActionItem.Id == CreateNewObjectItemId)
     {
         Frame workFrame = Application.CreateFrame(TemplateContext.ApplicationWindow);
         workFrame.SetView(Application.CreateListView(
                               Application.CreateObjectSpace(), typeof(Item), true));
         newController = workFrame.GetController <NewObjectViewController>();
         if (newController != null)
         {
             ChoiceActionItem newObjectItem = FindNewObjectItem();
             if (newObjectItem != null)
             {
                 newController.NewObjectAction.Executed += NewObjectAction_Executed;
                 newController.NewObjectAction.DoExecute(newObjectItem);
                 newController.NewObjectAction.Executed -= NewObjectAction_Executed;
                 e.ShowViewParameters.TargetWindow       = TargetWindow.Default;
                 e.ShowViewParameters.CreatedView        = createdDetailView;
                 //Cancel the default processing for this navigation item.
                 return;
             }
         }
     }
     //Continue the default processing for other navigation items.
     base.ShowNavigationItem(e);
 }
コード例 #16
0
        private SingleChoiceAction CreateImportAction()
        {
            SingleChoiceAction importDataAction = new SingleChoiceAction(this, "ImportData", PredefinedCategory.RecordEdit);

            importDataAction.Execute += importDataAction_Execute;
            //4th Change
            ChoiceActionItem item1 = new ChoiceActionItem();
            ChoiceActionItem item2 = new ChoiceActionItem();
            ChoiceActionItem item3 = new ChoiceActionItem();

            importDataAction.Caption   = "Import Data";
            importDataAction.ImageName = "Attention";
            //5th Change
            item1.Caption = "Agent";
            item1.Data    = "Agent_ListView";
            item2.Caption = "Customer ListView";
            item2.Data    = "Customer_ListView";
            item3.Caption = "Product ListView";
            item3.Data    = "Product_ListView";
            //6th Change
            importDataAction.Items.Add(item1);
            importDataAction.Items.Add(item2);
            importDataAction.Items.Add(item3);
            importDataAction.PaintStyle = ActionItemPaintStyle.CaptionAndImage;
            importDataAction.ItemType   = SingleChoiceActionItemType.ItemIsOperation;
            return(importDataAction);
        }
コード例 #17
0
        protected override void OnActivated()
        {
            base.OnActivated();
            if (!SecuritySystem.IsGranted(new IsAdministratorPermissionRequest()))
            {
                var isGranted = SecuritySystem.IsGranted(new MyDetailsOperationRequest(new MyDetailsPermission(Modifier.Allow)));

                _myDetailsController = Frame.GetController <MyDetailsController>();
                if (_myDetailsController != null)
                {
                    _myDetailsController.Active.SetItemValue(KeyDisable, !isGranted);
                }
                _showNavigationItemController = Frame.GetController <ShowNavigationItemController>();
                if (_showNavigationItemController != null)
                {
                    _myDetailsItem = FindMyDetailsItem(_showNavigationItemController.ShowNavigationItemAction.Items);
                    if (_myDetailsItem != null)
                    {
                        _myDetailsItem.Active.SetItemValue(KeyDisable, !isGranted);
                    }
                }
            }
            else
            {
                Active["IsAdmin"] = false;
            }
        }
コード例 #18
0
        public ImportViewController()
        {
            TargetObjectType = typeof(ImportParamBase);
            TargetViewType   = ViewType.DetailView;

            // action button

            var importAction = new SingleChoiceAction(this, "ImportAction", PredefinedCategory.ObjectsCreation);

            importAction.DefaultItemMode  = DefaultItemMode.FirstActiveItem;
            importAction.Caption          = "Import";
            importAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            importAction.Execute         += ImportAction_Execute;
            importAction.ShowItemsOnClick = true;

            var executeAction = new ChoiceActionItem();

            executeAction.Caption = ExecuteImportCaption;
            importAction.Items.Add(executeAction);

            var remapAction = new ChoiceActionItem();

            remapAction.Caption = RemapCaption;
            importAction.Items.Add(remapAction);

            var templateAction = new ChoiceActionItem();

            templateAction.Caption = TemplateCaption;
            importAction.Items.Add(templateAction);
        }
コード例 #19
0
        protected void ProcessItemNew(IModelNavigationItem item, ChoiceActionItemCollection choiceActionItems)
        {
            ChoiceActionItem item2;

            if (item.View != null)
            {
                var viewShortcut = new ViewShortcut(item.View.Id, item.ObjectKey);
                var lvcni        = item as IListViewCriteriaNavigationItem;
                if (lvcni != null)
                {
                    viewShortcut.Add("Criteria", lvcni.Criteria + "");
                }
                item2 = new ChoiceActionItem(item, viewShortcut);
                item2.Active["HasRights"] = this.HasRights(item2, item.Application.Views);
            }
            else
            {
                item2 = new ChoiceActionItem(item)
                {
                    ActiveItemsBehavior = ActiveItemsBehavior.RequireActiveItems
                };
            }
            item2.Active["Visible"] = item.Visible;
            choiceActionItems.Add(item2);
            foreach (IModelNavigationItem item3 in item.Items)
            {
                this.ProcessItemNew(item3, item2.Items);
            }
            this.OnNavigationItemCreated(item, item2);
        }
コード例 #20
0
        private static void SetCriteria(ChoiceActionItem selectedItem, View view)
        {
            var shortcut = selectedItem.Data as ViewShortcut;

            if (view is DevExpress.ExpressApp.ListView && shortcut.ContainsKey("Criteria"))
            {

                var ck = "NavigationCriteria";
                var lv = view as DevExpress.ExpressApp.ListView;

                var key = (string) shortcut["Criteria"];
                if (!string.IsNullOrEmpty(key))
                {
                    lv.CollectionSource.SetCriteria(ck, key);
                }
                else
                {
                    lv.CollectionSource.Criteria.Remove(ck);
                    shortcut["Criteria"] = "";
                }
                lv.Tag = shortcut;
                view.RefreshDataSource();
                view.Tag = shortcut;
            }
        }
コード例 #21
0
        public TestViewController()
        {
            SingleChoiceAction singleChoiceAction = new SingleChoiceAction(this, "TestSingleChoiceAction", DevExpress.Persistent.Base.PredefinedCategory.Edit);

            singleChoiceAction.Items.Add(new ChoiceActionItem()
            {
                ImageName = "Action_New", Caption = "Choice 1",
            });
            singleChoiceAction.Items.Add(new ChoiceActionItem()
            {
                ImageName = "Action_Delete", Caption = "Choice 2"
            });
            ChoiceActionItem item3 = new ChoiceActionItem()
            {
                Caption = "Choice 3"
            };

            item3.Items.Add(new ChoiceActionItem()
            {
                ImageName = "Action_Delete", Caption = "Choice 31"
            });
            item3.Items.Add(new ChoiceActionItem()
            {
                ImageName = "Action_Delete", Caption = "Choice 32"
            });
            singleChoiceAction.Items.Add(item3);
        }
コード例 #22
0
        protected override void OnActivated()
        {
            base.OnActivated();
            //StoreDefaultCulture();

            ShowNavigationItemController navigationController = Frame.GetController<ShowNavigationItemController>();

            localizationNavBarGroup = navigationController.ShowNavigationItemAction.Items.Find(navBarGroupCaption, ChoiceActionItemFindType.Recursive, ChoiceActionItemFindTarget.Any);
            if (localizationNavBarGroup != null)
            {
                UpdateCultureChoiceActionItem("ru", "ru", "Language: ru, Formatting: ru", "Localization.Demo_Localization_ru_ru");
                UpdateCultureChoiceActionItem("en", "en", "Language: en, Formatting: en", "Localization.Demo_Localization_en_en");
            }

            ChoiceActionItem currentLanguageItem = ChooseLanguage.Items.Find(((IModelApplicationServices)(Application.Model)).CurrentAspect,
                ChoiceActionItemFindType.NonRecursive, ChoiceActionItemFindTarget.Leaf);

            if (currentLanguageItem != null)
            {
                ChooseLanguage.SelectedIndex = ChooseLanguage.Items.IndexOf(currentLanguageItem);
            }
            navigationController.CustomShowNavigationItem += new EventHandler<CustomShowNavigationItemEventArgs>(ChangeLanguageController_CustomShowNavigationItem);
            navigationController.CustomUpdateSelectedItem += new EventHandler<CustomUpdateSelectedItemEventArgs>(navigationController_CustomUpdateSelectedItem);

            this.ChooseLanguageAction.Execute += new DevExpress.ExpressApp.Actions.SingleChoiceActionExecuteEventHandler(ChooseLanguage_Execute);
        }
コード例 #23
0
        protected virtual void ImportData(SingleChoiceActionExecuteEventArgs e)
        {
            ChoiceActionItem  activeItem    = e.SelectedChoiceActionItem;
            ListView          lv            = (ListView)View;
            ImportDataManager importManager = new ImportDataManager(Application);

            switch (activeItem.Data.ToString())
            {
            //7th Change
            case "Agent_ListView":
                importManager.ImportData <Agent>(MaxImportedRecordsCount, Agent.CreateCoolAgentImportDataFromXmlFileDelegate(Application), null, lv, true);
                //Dennis: This line won't be executed unless you handle the exception thrown from the previus ImportData call.
                //ImportDataManager.ImportData<Person>(MaxImportedRecordsCount, ImportDataLogic.CreateDummyPersonImportDataDelegate(), ImportDataLogic.CreateDummyPersonValidateDataDelegate(), lv, true);
                break;

            case "Customer_ListView":
                //PropertyCollectionSource pcs = lv.CollectionSource as PropertyCollectionSource;
                //if (pcs != null)
                //{
                importManager.ImportData <Customer>(MaxImportedRecordsCount, Customer.CreateCoolCustomerImportDataFromXmlFileDelegate(Application), null, lv, true);
                //}
                break;

            case "Product_ListView":
                importManager.ImportData <Product>(MaxImportedRecordsCount, Product.CreateCoolProductImportDataFromXmlFileDelegate(Application), null, lv, true);
                //Dennis: This line won't be executed unless you handle the exception thrown from the previus ImportData call.
                //ImportDataManager.ImportData<Person>(MaxImportedRecordsCount, ImportDataLogic.CreateDummyPersonImportDataDelegate(), ImportDataLogic.CreateDummyPersonValidateDataDelegate(), lv, true);
                break;
            }
        }
コード例 #24
0
        public ImportArOpenInvoicesViewController()
        {
            TargetObjectType = typeof(ImportArOpenInvoicesParam);
            TargetViewType   = ViewType.DetailView;

            var importAction = new SimpleAction(this, "ImportArOpenInvoicesAction", PredefinedCategory.ObjectsCreation);

            importAction.Caption  = "Import";
            importAction.Execute += ImportAction_Execute;

            var reportAction = new SimpleAction(this, "ReportArOpenInvoicesAction", PredefinedCategory.ObjectsCreation);

            reportAction.Caption  = "Process Report";
            reportAction.Execute += ReportAction_Execute;

            var resetAction = new SingleChoiceAction(this, "ResetImportArOpenInvoicesAction", PredefinedCategory.ObjectsCreation);

            resetAction.ShowItemsOnClick = true;
            resetAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            resetAction.Caption          = "Reset";
            resetAction.Execute         += ResetAction_Execute;

            var resetSqlChoice = new ChoiceActionItem();

            resetSqlChoice.Caption = ResetSqlChoiceCaption;
            resetAction.Items.Add(resetSqlChoice);
        }
コード例 #25
0
        protected virtual bool HasRights(ChoiceActionItem item, IModelView view)
        {
            var data = (ViewShortcut)item.Data;

            if (view == null)
            {
                if (Application.GetPlatform() == Platform.Win)
                {
                    throw new ArgumentException($"Cannot find the '{data.ViewId}' view specified by the shortcut: {data}");
                }

                var webApi = Application.WhenWeb().Wait();
                webApi.Redirect(webApi.GetRequestUri().GetLeftPart(UriPartial.Authority));
            }
            var  objectView = view as IModelObjectView;
            Type type       = objectView?.ModelClass.TypeInfo.Type;

            if (type != null)
            {
                if (!string.IsNullOrEmpty(data.ObjectKey) && !data.ObjectKey.StartsWith("@"))
                {
                    try {
                        using IObjectSpace space = CreateObjectSpace();
                        object objectByKey = space.GetObjectByKey(type, space.GetObjectKey(type, data.ObjectKey));
                        return(DataManipulationRight.CanRead(type, null, objectByKey, null, space) &&
                               DataManipulationRight.CanNavigate(type, objectByKey, space));
                    }
                    catch {
                        return(true);
                    }
                }
                return(DataManipulationRight.CanNavigate(type, null, null));
            }
            return(true);
        }
        public UserViewVariantsController()
        {
            userViewVariantsCore = new SingleChoiceAction(this, STR_UserViewVariants_Id, PredefinedCategory.View)
            {
                ImageName        = STR_UserViewVariants_Image,
                PaintStyle       = ActionItemPaintStyle.CaptionAndImage,
                Caption          = CaptionHelper.ConvertCompoundName(STR_UserViewVariants_Id),
                ItemType         = SingleChoiceActionItemType.ItemIsOperation,
                ShowItemsOnClick = true
            };
            ChoiceActionItem addViewVariantItem = new ChoiceActionItem(STR_NewViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_NewViewVariant_Id), STR_NewViewVariant_Id)
            {
                ImageName = STR_NewViewVariant_Image
            };
            ChoiceActionItem removeViewVariantItem = new ChoiceActionItem(STR_DeleteViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_DeleteViewVariant_Id), STR_DeleteViewVariant_Id)
            {
                ImageName = STR_DeleteViewVariant_Image
            };
            ChoiceActionItem editViewVariantItem = new ChoiceActionItem(STR_EditViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_EditViewVariant_Id), STR_EditViewVariant_Id)
            {
                ImageName = STR_EditViewVariant_Image
            };

            userViewVariantsCore.Items.Add(addViewVariantItem);
            userViewVariantsCore.Items.Add(editViewVariantItem);
            userViewVariantsCore.Items.Add(removeViewVariantItem);
            userViewVariantsCore.Execute += UserViewVariants_Execute;
        }
コード例 #27
0
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.
            View.ControlsCreated += new EventHandler(View_ControlsCreated);

            XPQuery<TimekeepingName> _TimekeepingName = new XPQuery<TimekeepingName>((
                   (XPObjectSpace)ObjectSpace).Session);

            List<TimekeepingName> listTimekeepingName = (from tso in _TimekeepingName select tso).ToList();
            acFilterByTimekeepingMonth.Items.Clear();

            foreach (TimekeepingName item in listTimekeepingName)
            {
                if (item.StartDate <= DateTime.Now && DateTime.Now <= item.EndDate)
                {
                    tkname = item;
                }
                setLookupItem = new ChoiceActionItem(item.timekeepingName, item);

                acFilterByTimekeepingMonth.Items.Add(setLookupItem);
            }
            if (listTimekeepingName != null)
            {
                if (tkname == null)
                {
                    tkname = listTimekeepingName[0];
                }
                ((DevExpress.ExpressApp.ListView)View).CollectionSource.Criteria["Filter1"] = new BinaryOperator(
                        "TimekeepingName.Oid", tkname.Oid, BinaryOperatorType.Equal);
            }
        }
コード例 #28
0
ファイル: ActionExtensions.cs プロジェクト: xyyhqq/eXpand
        public static IModelBaseChoiceActionItem Model(this ChoiceActionItem choiceActionItem)
        {
            var modelAction = ((SingleChoiceAction)choiceActionItem.GetPropertyValue("Owner")).Model;
            var nodePath    = choiceActionItem.GetIdPath();

            return((IModelBaseChoiceActionItem)modelAction.ChoiceActionItems.FindNodeByPath(nodePath));
        }
コード例 #29
0
        public ImportableViewController()
        {
            this.TargetObjectType = typeof(IXpoImportable);

            var importAction = new SingleChoiceAction(this, "ContextImportAction", PredefinedCategory.ObjectsCreation);

            importAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            importAction.ShowItemsOnClick = true;
            importAction.Caption          = "Import";
            importAction.Execute         += importAction_Execute;

            var runActionItem = new ChoiceActionItem();

            runActionItem.Caption = selectProfileCaption;
            importAction.Items.Add(runActionItem);

            var createHeadersActionItem = new ChoiceActionItem();

            createHeadersActionItem.Caption = createHeadersProfileCaption;
            importAction.Items.Add(createHeadersActionItem);

            var createOrdinalsActionItem = new ChoiceActionItem();

            createOrdinalsActionItem.Caption = createOrdinalsProfileCaption;
            importAction.Items.Add(createOrdinalsActionItem);
        }
コード例 #30
0
        public BatchDeleteListViewController()
        {
            TargetViewType = ViewType.ListView;
            //TargetObjectType = typeof(IBatchDeletable);

            batchDeleteAction                  = new SingleChoiceAction(this, "BatchUpdateAction", DevExpress.Persistent.Base.PredefinedCategory.Edit);
            batchDeleteAction.Caption          = "Batch";
            batchDeleteAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            batchDeleteAction.Execute         += batchDeleteAction_Execute;
            batchDeleteAction.ShowItemsOnClick = true;

            var delSelected = new ChoiceActionItem();

            delSelected.Caption = deleteSelectedCaption;
            batchDeleteAction.Items.Add(delSelected);

            delFiltered         = new ChoiceActionItem();
            delFiltered.Caption = deleteFilteredCaption;
            batchDeleteAction.Items.Add(delFiltered);

            var showFilterXpoChoice = new ChoiceActionItem();

            showFilterXpoChoice.Caption = showFilterXpoCaption;
            batchDeleteAction.Items.Add(showFilterXpoChoice);

            var showFilterSqlChoice = new ChoiceActionItem();

            showFilterSqlChoice.Caption = showFilterSqlCaption;
            batchDeleteAction.Items.Add(showFilterSqlChoice);

            //var purgeChoice = new ChoiceActionItem();
            //purgeChoice.Caption = purgeCaption;
            //batchDeleteAction.Items.Add(purgeChoice);
        }
コード例 #31
0
        private void InitializeComponent()
        {
            this._components = new System.ComponentModel.Container();

            this._setStatusPriority = new DevExpress.ExpressApp.Actions.SingleChoiceAction(this._components)
            {
                Caption  = "Status",
                Category = DevExpress.Persistent.Base.PredefinedCategory.Edit.ToString(),
                SelectionDependencyType = DevExpress.ExpressApp.Actions.SelectionDependencyType.Independent,
                Id                    = "StatusPriorityController",
                ImageName             = "BO_Report",
                TargetObjectsCriteria = "[Oid] Is Not Null",
                ItemType              = DevExpress.ExpressApp.Actions.SingleChoiceActionItemType.ItemIsOperation
            };

            this._setStatusPriority.Execute += new DevExpress.ExpressApp.Actions.SingleChoiceActionExecuteEventHandler(this.SetReportAction_Execute);
            this.Activated += new System.EventHandler(this.StatusPriorityActionsController_Activated);
            this.TypeOfView = typeof(DevExpress.ExpressApp.View);

            this._setPriorityItem = new ChoiceActionItem(CaptionHelper.GetMemberCaption(this.TargetObjectType, "Priority"), null);
            this._setStatusPriority.Items.Add(this._setPriorityItem);
            FillItemWithEnumValues(this._setPriorityItem, typeof(Priority));

            this._setStatusItem = new ChoiceActionItem(CaptionHelper.GetMemberCaption(this.TargetObjectType, "Status"), null);
            this._setStatusPriority.Items.Add(this._setStatusItem);
        }
コード例 #32
0
        bool IsActive(ChoiceActionItem choiceActionItem)
        {
            var xpoStateMachine = (choiceActionItem.Data as IStateMachine);

            if (xpoStateMachine != null)
            {
                var boolList = new BoolList(true, BoolListOperatorType.Or);
                boolList.BeginUpdate();
                foreach (var item in choiceActionItem.Items)
                {
                    var xpoTransition        = ((XpoTransition)item.Data);
                    var choiceActionItemArgs = new ChoiceActionItemArgs(xpoTransition, item.Active);
                    OnRequestActiveState(choiceActionItemArgs);
                    boolList.SetItemValue(xpoTransition.Oid.ToString(), item.Active.ResultValue);
                }
                boolList.EndUpdate();
                return(boolList.ResultValue);
            }
            var transition = choiceActionItem.Data as XpoTransition;

            if (transition != null)
            {
                var choiceActionItemArgs = new ChoiceActionItemArgs(transition, choiceActionItem.Active);
                OnRequestActiveState(choiceActionItemArgs);
                return(choiceActionItem.Active);
            }
            throw new NotImplementedException();
        }
コード例 #33
0
        public PivotGridLayoutController()
        {
            TargetViewType = ViewType.ListView;

            // unique view ID so that it will not match any existing views
            // unless the developer assigns it another View ID in a derived constructor
            TargetViewId = "{44F8DE78-5DBB-4316-AFDC-8F8A58D4E2FC}";

            // TODO: use this.Active instead

            _LayoutAction                  = new SingleChoiceAction(this, "LayoutAction", DevExpress.Persistent.Base.PredefinedCategory.View);
            _LayoutAction.Caption          = DefaultLayoutActionCaption;
            _LayoutAction.ItemType         = SingleChoiceActionItemType.ItemIsOperation;
            _LayoutAction.ShowItemsOnClick = true;
            _LayoutAction.Execute         += myLayoutAction_Execute;

            var resetLayoutChoice = new ChoiceActionItem();

            resetLayoutChoice.Caption = resetLayoutChoiceCaption;
            _LayoutAction.Items.Add(resetLayoutChoice);

            var saveChoice = new ChoiceActionItem();

            saveChoice.Caption = saveChoiceCaption;
            _LayoutAction.Items.Add(saveChoice);

            var loadChoice = new ChoiceActionItem();

            loadChoice.Caption = loadChoiceCaption;
            _LayoutAction.Items.Add(loadChoice);
        }
コード例 #34
0
        public void doAddAnlage_Execute(object sender, SingleChoiceActionExecuteEventArgs e)
        {
            //IObjectSpace os = this.ObjectSpace;
            IObjectSpace   os              = Application.CreateObjectSpace();
            DetailView     curView         = (DetailView)View;
            boLiegenschaft curLiegenschaft = os.GetObjectByKey <boLiegenschaft>(((boLiegenschaft)curView.CurrentObject).Oid);
            //allgemein -> Auswahl der Parameter und dann DetailView öffnen
            ChoiceActionItem currentSelection = e.SelectedChoiceActionItem;
            boAnlage         mainUnit;

            if (currentSelection.ParentItem != null)
            {
                boAnlage     result      = null;
                boAnlagenArt selectedArt = os.GetObjectByKey <boAnlagenArt>(((boAnlagenArt)currentSelection.Data).Oid);
                if (currentSelection.ParentItem.Data.GetType() == typeof(LgHaustechnikKomponente))
                {
                    //1. Anlage zu einer bestehenden Komponente hinzufügen
                    LgHaustechnikKomponente curKomponente = os.GetObjectByKey <LgHaustechnikKomponente>(((LgHaustechnikKomponente)currentSelection.ParentItem.Data).Oid);
                    if (curKomponente != null)
                    {
                        //gibt es eine Hauptanlage?
                        mainUnit = curKomponente.lstAnlagen.Where(t => t.ParentAnlage == null).FirstOrDefault();
                        if (mainUnit != null)
                        {
                            //welche Anlagenart?
                            result = os.CreateObject <boAnlage>();
                            result.Liegenschaft          = curLiegenschaft;
                            result.HaustechnikKomponente = curKomponente;
                            result.ParentAnlage          = os.GetObjectByKey <boAnlage>(mainUnit.Oid);
                        }
                        //die Hauptanlage der Komponente finden

                        result.AnlagenArt = selectedArt;
                    }
                }

                //2. Anlage zur Liegenschaft hinzufügen
                //Wenn ein Item gewählt wurde das als Data die Gruppe hat:

                if (currentSelection.ParentItem.Data.GetType() == typeof(boLiegenschaft))
                {
                    result = os.CreateObject <boAnlage>();
                    result.Liegenschaft = curLiegenschaft;
                    if (currentSelection.Data.GetType() == typeof(boAnlagenKategorie))
                    {
                        result.AnlagenKategorie = os.GetObjectByKey <boAnlagenKategorie>(((boAnlagenKategorie)currentSelection.Data).Oid);
                    }
                    else
                    {
                        result.AnlagenArt = selectedArt;
                    }
                }
                if (result != null)
                {
                    DetailView dv = Application.CreateDetailView(os, result);
                    e.ShowViewParameters.CreatedView = dv;
                }
            }
        }
コード例 #35
0
 bool INavigationControlTestable.IsGroupExpanded(ChoiceActionItem item)
 {
     if (ActionItemToMenuGroupMap.ContainsKey(item))
     {
         return(false);
     }
     return(false);
 }
コード例 #36
0
 public bool IsGroupExpanded(ChoiceActionItem item)
 {
     if (ActionItemToMenuGroupMap[item] != null)
     {
         return(false);
     }
     throw new ArgumentOutOfRangeException();
 }
コード例 #37
0
 private void FillItemWithEnumValues(ChoiceActionItem parentItem, Type enumType) {
     foreach(object current in Enum.GetValues(enumType)) {
         EnumDescriptor ed = new EnumDescriptor(enumType);
         ChoiceActionItem item = new ChoiceActionItem(ed.GetCaption(current), current);
         item.ImageName = ImageLoader.Instance.GetEnumValueImageName(current);
         parentItem.Items.Add(item);
     }
 }
コード例 #38
0
 public bool GetChildControlVisible(ChoiceActionItem item)
 {
     if (ActionItemToMenuItemMap[item] != null)
     {
         return(ActionItemToMenuItemMap[item].Visible);
     }
     throw new ArgumentOutOfRangeException();
 }
コード例 #39
0
 protected void AutoSelectFirstItemInGroup(ChoiceActionItem navGroupItem) {
     if (!CanAutoSelectFirstItemInGroup()) return;
     foreach (ChoiceActionItem item in navGroupItem.Items) {
         if (item.Enabled.ResultValue && item.Active.ResultValue) {
             navigationAction.DoExecute(item);
             return;
         }
     }
 }
コード例 #40
0
 private void UpdateItem(ChoiceActionItem item, SingleChoiceAction action){
     var nodePath = item.GetIdPath();
     var modelChoiceActionItemActive = action.Model.ChoiceActionItems.FindNodeByPath(nodePath) as IModelChoiceActionItemActive;
     if (modelChoiceActionItemActive != null && modelChoiceActionItemActive.Active!=null) {
         item.Active.BeginUpdate();
         item.Active[GetType().Name] = modelChoiceActionItemActive.Active.Value;
         item.Active.EndUpdate();
     }
 }
コード例 #41
0
 public ChoiceActionItemMenuItem(ChoiceActionItem choiceActionItem, SingleChoiceAction menuItemsAction, string prefixId = "")
     : base(null, menuItemsAction, prefixId)
 {
     base.Caption = base.RemoveAmpersand(choiceActionItem.Caption);
     base.ImageName = choiceActionItem.ImageName;
     base.BeginGroup = choiceActionItem.BeginGroup;
     this.ChoiceActionItem = choiceActionItem;
     base.MenuItemsAction.Disposing += new EventHandler(this.MenuItemsAction_Disposing);
     this.ChoiceActionItem.Active.Changed += new EventHandler<EventArgs>(this.Active_Changed);
     this.ChoiceActionItem.Enabled.Changed += new EventHandler<EventArgs>(this.Enabled_Changed);
 }
 private string GetIdPath(ChoiceActionItem сhoiceActionItem)
 {
     ModelNode modelNode = (ModelNode)сhoiceActionItem.Model;
     string text = modelNode.Id;
     ModelNode modelNode2 = modelNode;
     while (modelNode2 != null && modelNode2.Parent.Parent != null && modelNode2.Parent.Parent.Id != "NavigationItems")
     {
         text = string.Format("{0}/{1}", modelNode2.Parent.Parent.Id, text);
         modelNode2 = modelNode2.Parent.Parent;
     }
     return text;
 }
コード例 #43
0
        public TaskActionsController() {
            TypeOfView = typeof(ObjectView);
            InitializeComponent();
            RegisterActions(components);

            setPriorityItem = new ChoiceActionItem(CaptionHelper.GetMemberCaption(typeof(DemoTask), "Priority"), null);
            SetTaskAction.Items.Add(setPriorityItem);
            FillItemWithEnumValues(setPriorityItem, typeof(Priority));
            setStatusItem = new ChoiceActionItem(CaptionHelper.GetMemberCaption(typeof(DemoTask), "Status"), null);
            SetTaskAction.Items.Add(setStatusItem);
            FillItemWithEnumValues(setStatusItem, typeof(TaskStatus));
        }
        protected override bool HasRights(ChoiceActionItem item, IModelViews views)
        {
            return true;

            /*
            if (NavigationPermission.AllGranted)
            {
                return base.HasRights(item, views);
            }
            return base.HasRights(item, views) && SecuritySystem.IsGranted(new NavigationPermission(this.GetIdPath(item)));
            */
        }
コード例 #45
0
 public ASPxMenuGroupChoiceActionItem(SingleChoiceAction action, ChoiceActionItem item)
     : base(item, action){
     _currentMenuGroup = new MenuItem();
     if (action.Items.IndexOf(item) == 0){
         //CurrentMenuGroup.HeaderStyle.CssClass += " FirstHeader";
         //CurrentMenuGroup.HeaderStyleCollapsed.CssClass = " FirstHeaderCollapsed";
     }
     if (action.Items.IndexOf(item) == action.Items.Count - 1){
         //CurrentMenuGroup.HeaderStyle.CssClass = " LastHeader";
         //CurrentMenuGroup.HeaderStyleCollapsed.CssClass = " LastHeaderCollapsed";
     }
     //CurrentMenuGroup.Expanded = false;
     SyncronizeWithItem();
 }
コード例 #46
0
        public AutoRefreshViewController()
        {
            InitializeComponent();
            RegisterActions(components);

            Active["f**k"] = false;

            var item = new ChoiceActionItem("AutoRefreshDisabledActionItem", "Disabled", null);
            item.Data = 0;
            autoRefreshChoiceAction.Items.Add(item);

            refreshTimer = new Lazy<Timer>(() =>
            {
                return new Timer();
            });
        }
コード例 #47
0
 protected override void OnViewControllersActivated(){
     base.OnViewControllersActivated();
     var modelActions = Application.Model.ActionDesign.Actions.Cast<IModelActionItemsFromModel>().Where(model => model.ItemsFromModel);
     var choiceActionItems = modelActions.Where(model => model.ChoiceActionItems != null).SelectMany(model => model.ChoiceActionItems);
     var actions = Frame.Actions<SingleChoiceAction>(choiceActionItems).ToDictionary(@base => @base.Id, @base => @base);
     if (actions.Any()) {
         foreach (var choiceActionItem in choiceActionItems) {
             var key = choiceActionItem.GetParent<IModelAction>().Id;
             if (actions.ContainsKey(key)) {
                 var singleChoiceAction = actions[key];
                 if (singleChoiceAction.Items.FindItemByID(choiceActionItem.Id) == null) {
                     var actionItem = new ChoiceActionItem(choiceActionItem);
                     OnCustomizeActionItem(new CustomizeActionItemArgs(actionItem));
                     singleChoiceAction.Items.Add(actionItem);
                 }
             }
         }
     }
 }
コード例 #48
0
        public TestExportWindowController()
        {
            InitializeComponent();
            RegisterActions(components);

            action.Execute += action_Execute;

            foreach (var ex in exchanges
                .Where(x => typeof(ExportOperationBase).IsAssignableFrom(x)))
            {
                var item = new ChoiceActionItem
                {
                    Caption = ex.Name,
                    Data = ex
                };

                action.Items.Add(item);
            }
        }
コード例 #49
0
 protected override void OnActivated() {
     base.OnActivated();
     if (!SecuritySystem.IsGranted(new IsAdministratorPermissionRequest())) {
         var isGranted = SecuritySystem.IsGranted(new MyDetailsOperationRequest(new MyDetailsPermission(Modifier.Allow)));
         
         _myDetailsController = Frame.GetController<MyDetailsController>();
         if (_myDetailsController != null) {
             _myDetailsController.Active.SetItemValue(keyDisable, !isGranted);
         }
         _showNavigationItemController = Frame.GetController<ShowNavigationItemController>();
         if (_showNavigationItemController != null) {
             _myDetailsItem = FindMyDetailsItem(_showNavigationItemController.ShowNavigationItemAction.Items);
             if (_myDetailsItem != null) {
                 _myDetailsItem.Active.SetItemValue(keyDisable, !isGranted);
             }
         }
         
     }
     else {
         Active["IsAdmin"] = false;
     }
 }
コード例 #50
0
        private void SaveAndCloseAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            ViewNavigationController navi = Frame.GetController<ViewNavigationController>();
            try
            {
                DevExpress.Persistent.Validation.Validator.RuleSet.Validate(View.CurrentObject, new DevExpress.Persistent.Validation.ContextIdentifiers("Save"));

                //((DevExpress.ExpressApp.DC.DCBaseObject)View.CurrentObject).Save();
                ((DevExpress.ExpressApp.Xpo.XPObjectSpace)View.ObjectSpace).Session.LockingOption = DevExpress.Xpo.LockingOption.Optimistic;
                View.ObjectSpace.CommitChanges();
                ViewShortcut workspace = new ViewShortcut("Workspace", "");
                ChoiceActionItem choiceItem = new ChoiceActionItem("workSpaceShortCut", workspace);
                navi.NavigateBackAction.Items.Add(choiceItem);
                try
                {
                    navi.NavigateBackAction.DoExecute(navi.NavigateBackAction.Items.FirstActiveItem);
                }
                catch (Exception ex)
                {
                    ShowViewParameters svp = new ShowViewParameters();
                    IObjectSpace mainViewObjectSpace = Application.CreateObjectSpace();
                    DashboardView mainView = Application.CreateDashboardView(mainViewObjectSpace, "Workspace", true);

                    svp.CreatedView = mainView;
                    svp.TargetWindow = TargetWindow.Default;
                    svp.Context = TemplateContext.ApplicationWindow;

                    Application.ShowViewStrategy.ShowView(svp, new ShowViewSource(null, null));
                }
            }
            catch (Exception ex)
            {
                if (ex is DevExpress.Persistent.Validation.ValidationException)
                {
                    throw;
                }
            };
        }
コード例 #51
0
 protected virtual bool HasRights(ChoiceActionItem item, IModelView view) {
     var data = (ViewShortcut)item.Data;
     if (view == null) {
         throw new ArgumentException(string.Format("Cannot find the '{0}' view specified by the shortcut: {1}",
                                                   data.ViewId, data));
     }
     Type type = (view is IModelObjectView) ? ((IModelObjectView)view).ModelClass.TypeInfo.Type : null;
     if (type != null) {
         if (!string.IsNullOrEmpty(data.ObjectKey) && !data.ObjectKey.StartsWith("@")) {
             try {
                 using (IObjectSpace space = CreateObjectSpace()) {
                     object objectByKey = space.GetObjectByKey(type, space.GetObjectKey(type, data.ObjectKey));
                     return (DataManipulationRight.CanRead(type, null, objectByKey, null, space) &&
                             DataManipulationRight.CanNavigate(type, objectByKey, space));
                 }
             } catch {
                 return true;
             }
         }
         return DataManipulationRight.CanNavigate(type, null, null);
     }
     return true;
 }
コード例 #52
0
 private void UpdateActionIcon(ChoiceActionItem action) {
     var icon = DashboardActions[action].Icon;
     if (icon != null)
         _navBarNavigationControl.ActionItemToItemLinkMap[action].Item.LargeImage = icon;
 }
コード例 #53
0
        void ShowNavigationItemControllerItemsInitialized(object sender, EventArgs e)
        {
            IModelView view = Application.FindModelView(Application.FindListViewId(typeof(DashboardDefinition)));
            var options = ((IModelOptionsDashboards)Application.Model.Options);
            var navAction = ((ShowNavigationItemController)sender).ShowNavigationItemAction;
            var currentGroup = navAction.Items.FirstOrDefault()?.Model.Parent.Parent.GetValue<string>("Id");

            var dashboardOptions = ((IModelOptionsDashboardNavigation)options.Dashboards);
            if (currentGroup == "Reports" && dashboardOptions.DashboardsInGroup) {
                ReloadDashboardActions();
                var actions = new List<ChoiceActionItem>();
                if (DashboardActions.Count > 0) {
                    var dashboardGroup = GetGroupFromActions(navAction, dashboardOptions.DashboardGroupCaption);
                    if (dashboardGroup == null)
                    {
                        dashboardGroup = new ChoiceActionItem(dashboardOptions.DashboardGroupCaption, null)
                        {
                            ImageName = "BO_DashboardDefinition"
                        };
                        var reports = navAction.Items;//.FirstOrDefault(x => x.Id == "Dashboard");

                        //var dashboard = reports?.Items.FirstOrDefault(x => x.Id == "Dashboard");
                        reports.Add(dashboardGroup);

                        //((ShowNavigationItemController)sender).ShowNavigationItemAction.Items.Add(dashboardGroup);
                    }
                    while (dashboardGroup.Items.Count != 0) {
                        ChoiceActionItem item = dashboardGroup.Items[0];
                        dashboardGroup.Items.Remove(item);
                        actions.Add(item);
                    }
                    foreach (ChoiceActionItem action in DashboardActions.Keys) {
                        action.Active["HasRights"] = HasRights(action, view);
                        actions.Add(action);
                    }
                    foreach (ChoiceActionItem action in actions.OrderBy(action => action.Model.Index))
                        dashboardGroup.Items.Add(action);

                }
            }
        }
コード例 #54
0
        private void ProdOrder_Update_Activated(object sender, EventArgs e)
        {
            UpdateProdOrder.Items.Clear();

            calcProdOrder = new ChoiceActionItem();
            startProdOrder = new ChoiceActionItem();
            routeListTransfer = new ChoiceActionItem();
            finishProdOrder = new ChoiceActionItem();
            endProdOrder = new ChoiceActionItem();
            cancelProdOrder = new ChoiceActionItem();

            calcProdOrder.Caption = CaptionHelper.GetLocalizedText(@"\Messages\Action", "Calculate");
            calcProdOrder.Data = "Calculate";
            UpdateProdOrder.Items.Add(calcProdOrder);

            startProdOrder.Caption = CaptionHelper.GetLocalizedText(@"\Messages\Action", "Start");
            startProdOrder.Data = "Start";
            UpdateProdOrder.Items.Add(startProdOrder);
            /*
            finishProdOrder.Caption = CaptionHelper.GetLocalizedText(@"\Messages\Action", "Finish");
            finishProdOrder.Data = "Finish";
            UpdateProdOrder.Items.Add(finishProdOrder);
            */

            cancelProdOrder.Caption = "取消";
            cancelProdOrder.Data = "Cancel";
            UpdateProdOrder.Items.Add(cancelProdOrder);

            endProdOrder.Caption = CaptionHelper.GetLocalizedText(@"\Messages\Action", "CompleteProdOrder");
            endProdOrder.Data = "Complete";
            UpdateProdOrder.Items.Add(endProdOrder);

            btnCompleteProdOrder.Active["Visible"] = SecurityHelper.IsAdministrator();
            btnReActiveProdOrder.Active["Visible"] = SecurityHelper.IsAdministrator();

            View.SelectionChanged += new EventHandler(View_SelectionChanged);
            UpdateViewState();
        }
コード例 #55
0
 bool IsValid(ChoiceActionItem item) {
     return item.Active && item.Enabled;
 }
コード例 #56
0
ファイル: Item_View_Win.cs プロジェクト: kamchung322/Namwah
        private void Item_View_Win_Activated(object sender, EventArgs e)
        {
            if (SecurityHelper.DoesUserBelongToRole("产品-Excel功能", true))
            {
                actionExcel.Items.Clear();
                actionAddPartDetail = new ChoiceActionItem() { Caption = "Add Part Detail", Data = "AddPartDetail" };
                actionExcel.Items.Add(actionAddPartDetail);

                actionImportPartDetail = new ChoiceActionItem() { Caption = "大量导入资料", Data = "ImportPartDetail" };
                actionExcel.Items.Add(actionImportPartDetail);

                actionExportItemCost = new ChoiceActionItem() { Caption = "列出产品成本资料", Data = "ExportItemCost" };
                actionExcel.Items.Add(actionExportItemCost);
            }
            else
            {
                actionExcel.Active["Visible"] = false;
            }
        }
コード例 #57
0
        private void RegularOnViewChanged()
        {
            var viewModel = View.Model as IModelAutoRefreshListViewExtension;

            if (viewModel == null)
            {
                return;
            }

            var appModel = Application.Model as IModelAutoRefreshAppExtension;

            if (!viewModel.AutoRefreshEnabled)
            {
                autoRefreshChoiceAction.Active["Active"] = false;
                return;
            }

            int viewValue = 0;
            bool viewValueIsSet = Int32.TryParse(viewModel.AutoRefreshTime, out viewValue);

            // Заполнение возможных значений периодов автообновления
            foreach (var v in appModel.AllowedAutoRefreshValuesList)
            {
                int value = 0;
                if (Int32.TryParse(v, out value) && value > 0)
                {
                    var item = new ChoiceActionItem();
                    item.Caption = v;
                    item.Data = value * 1000;
                    autoRefreshChoiceAction.Items.Add(item);
                }
            }

            // Обработка собственного значения периода автообновления вида
            if (viewValueIsSet)
            {
                var viewValueMs = viewValue * 1000;
                var appropriateItem = autoRefreshChoiceAction.Items.Where(x => (int)x.Data == viewValueMs).FirstOrDefault();
                if (appropriateItem != null)
                {
                    autoRefreshItem = appropriateItem;
                }
                else
                {
                    // Если собственного значения нет в возможных значениях, то создать специальный ChoiceActionItem для такого периода
                    var item = new ChoiceActionItem();
                    item.Caption = viewValue.ToString();
                    item.Data = viewValueMs;
                    autoRefreshChoiceAction.Items.Add(item);
                    autoRefreshItem = item;
                }
            }
        }
コード例 #58
0
 void ReloadDashboardActions()
 {
     DashboardActions.Clear();
     IObjectSpace objectSpace = Application.CreateObjectSpace();
     IOrderedEnumerable<DashboardDefinition> templates =
         objectSpace.GetObjects<DashboardDefinition>().Where(t => t.Active).OrderBy(i => i.Index);
     foreach (DashboardDefinition template in templates) {
         var action = new ChoiceActionItem(
             template.Oid.ToString(),
             template.Name,
             new ViewShortcut(typeof(DashboardDefinition), template.Oid.ToString(), "DashboardViewer_DetailView")) {
                 ImageName = "BO_DashboardDefinition"
             };
         action.Model.Index = template.Index;
         DashboardActions.Add(action, template);
     }
 }
コード例 #59
0
 int SortByCaption(ChoiceActionItem left, ChoiceActionItem right) {
     return Comparer<string>.Default.Compare(left.Caption, right.Caption);
 }
コード例 #60
0
 public ASPxMenuItemChoiceActionItem(SingleChoiceAction action, ChoiceActionItem item)
     : base(item, action){
     _currentAction = action;
     CurrentMenuItem = new MenuItem{Name = item.GetIdPath()};
     SyncronizeWithItem();
 }