예제 #1
0
        public void ExecuteSimpleAction(ActionPortalEventArgs appArgs,
                                        Type objType, Type controllerType, string actionName)
        {
            // Open navigation item
            var nav        = new NavigationHelper();
            var controller = Activator.CreateInstance(controllerType) as ViewController;

            appArgs.ShowViewParameters.Controllers.Add(controller);
            nav.OpenNavigationItem(appArgs.Application, appArgs.ObjectSpace,
                                   appArgs.ShowViewParameters, objType);

            // Find action
            var action = (SimpleAction)controller.Actions[actionName];

            if (action == null)
            {
                action = (SimpleAction)controller.Actions
                         .Where(c => c.Caption == actionName)
                         .FirstOrDefault();
            }
            if (action == null)
            {
                throw new UserFriendlyException(string.Format(
                                                    "Action '{0}' does not exist", actionName));
            }
            nav.DoExecuteOnActivated(controller, action);
        }
예제 #2
0
        public void ExecuteSimpleAction(ActionPortalEventArgs appArgs,
                                        string objTypeName, string controllerTypeName, string actionName)
        {
            Assembly asm = typeof(CashDiscipline.Module.BusinessObjects.SetOfBooks).Assembly;

            Type objType        = asm.GetType(objTypeName);
            Type controllerType = asm.GetType(controllerTypeName);

            ExecuteSimpleAction(appArgs, objType, controllerType,
                                actionName);
        }
        public void ExecutePortalAction(ActionPortalEventArgs args, string actionName)
        {
            var actionPortal = ActionPortalList.Where(x => x.ActionName == actionName).FirstOrDefault();

            if (actionPortal == null)
            {
                throw new UserFriendlyException(string.Format("Unrecognized action '{0}'", actionName));
            }
            if (actionPortal.ExecutableAction == null)
            {
                throw new UserFriendlyException(string.Format("Action {0} is not implemented.", actionName));
            }

            actionPortal.ExecutableAction(args);
        }
예제 #4
0
        public void OpenNavigationItem(ActionPortalEventArgs appArgs, string objTypeName)
        {
            // Get type from full name
            Assembly asm     = typeof(CashDiscipline.Module.BusinessObjects.SetOfBooks).Assembly;
            Type     objType = asm.GetType(objTypeName);

            // otherwise, get type from short name
            if (objType == null)
            {
                objType = XpoTypesInfoHelper.GetTypesInfo().PersistentTypes.FirstOrDefault(
                    x => x.Name == objTypeName).Type;
            }

            var nav = new NavigationHelper();

            nav.OpenNavigationItem(appArgs.Application, appArgs.ObjectSpace, appArgs.ShowViewParameters, objType);
        }
예제 #5
0
        //controllerTypeName = "CashDiscipline.Module.Controllers.Cash.CashFlowViewController"
        public void ExecuteChoiceActionByCaptionPath(ActionPortalEventArgs appArgs,
                                                     string objTypeName, string controllerTypeName, string actionId, string captionPath)
        {
            Assembly asm = typeof(CashDiscipline.Module.BusinessObjects.SetOfBooks).Assembly;

            Type objType = asm.GetType(objTypeName);

            if (objType == null)
            {
                objType = XpoTypesInfoHelper.GetTypesInfo().PersistentTypes.FirstOrDefault(
                    x => x.Name == objTypeName).Type;
            }

            Type controllerType = asm.GetType(controllerTypeName);

            ExecuteChoiceActionByCaptionPath(appArgs, objType, controllerType,
                                             actionId, captionPath);
        }
예제 #6
0
        private void RunPortalAction(ShowViewParameters svp)
        {
            var softPortal = new CashDiscipline.Module.AppNavigation.ActionPortalLogic();
            var hardPortal = new ActionPortalHardLogic(softPortal);

            var portalObj = View.CurrentObject as ActionPortal;

            if (portalObj == null)
            {
                return;
            }
            var appArgs = new CashDiscipline.Module.AppNavigation.ActionPortalEventArgs(Application, ObjectSpace, svp);

            switch (portalObj.ActionPortalType)
            {
            case ActionPortalType.Internal:
                hardPortal.ExecutePortalAction(appArgs, portalObj.ActionName);
                break;

            case ActionPortalType.ChoiceAction:
                softPortal.ExecuteChoiceActionByCaptionPath(
                    appArgs,
                    portalObj.ObjectType, portalObj.ControllerType,
                    portalObj.ActionName, portalObj.ActionPath);
                break;

            case ActionPortalType.SimpleAction:
                softPortal.ExecuteSimpleAction(
                    appArgs,
                    portalObj.ObjectType,
                    portalObj.ControllerType,
                    portalObj.ActionName);
                break;

            case ActionPortalType.View:
                softPortal.OpenNavigationItem(appArgs, portalObj.ObjectType);
                break;
            }
        }
예제 #7
0
        public void OpenNavigationItem(ActionPortalEventArgs appArgs, Type objType)
        {
            var nav = new NavigationHelper();

            nav.OpenNavigationItem(appArgs.Application, appArgs.ObjectSpace, appArgs.ShowViewParameters, objType);
        }