/// <summary>
        /// a factory method that creates an data view command from the send command
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        internal LocalDataViewCommandBase CreateLocalDataViewCommand(IClientCommand command)
        {
            LocalDataViewCommandBase localDataViewCommandBase = null;

            if (command is TransactionCommand)
            {
                localDataViewCommandBase = new CommitTransactionLocalDataViewCommand((TransactionCommand)command);
            }
            else if (command is DataviewCommand)
            {
                localDataViewCommandBase = CreateDataViewCommand((DataviewCommand)command);
            }
            else if (command is EventCommand)
            {
                localDataViewCommandBase = CreateEventCommand((EventCommand)command);
            }
            else if (command is ExecOperCommand)
            {
                ExecOperCommand execOperCommand = (ExecOperCommand)command;
                if (execOperCommand.Operation != null && execOperCommand.Operation.getType() == ConstInterface.MG_OPER_UPDATE)
                {
                    localDataViewCommandBase = new LocalDataViewCommandUpdateNonModifiable(execOperCommand);
                }
            }

            if (localDataViewCommandBase != null)
            {
                localDataViewCommandBase.DataviewManager = LocalDataviewManager;
                localDataViewCommandBase.LocalManager    = ClientManager.Instance.LocalManager;
            }

            return(localDataViewCommandBase);
        }
        /// <summary>
        /// a factory method that creates an data view command from the send command
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        internal RemoteDataViewCommandBase CreateDataViewCommand(ClientOriginatedCommand command)
        {
            RemoteDataViewCommandBase remoteDataViewCommandBase = new DummyDataViewCommand(command);
            ExecOperCommand           execOperCommand           = command as ExecOperCommand;

            if (execOperCommand != null && execOperCommand.Operation != null && execOperCommand.Operation.getType() == ConstInterface.MG_OPER_UPDATE)
            {
                remoteDataViewCommandBase = new RemoteDataViewCommandUpdateNonModifiable(execOperCommand);
            }
            else if (!(command is DataviewCommand)) //this is local dataview commands
            {
                remoteDataViewCommandBase = new RemoteDataViewCommandBase(command);
            }
            else //if (command.Type == ConstInterface.CMD_TYPE_DATAVIEW)
            {
                DataviewCommand dataviewCommand = command as DataviewCommand;
                switch (dataviewCommand.CommandType)
                {
                case DataViewCommandType.SetTransactionState:
                    remoteDataViewCommandBase = new SetTransactionStateRemoteDataViewCommand((SetTransactionStateDataviewCommand)dataviewCommand);
                    break;

                case DataViewCommandType.AddUserRange:
                    remoteDataViewCommandBase = new AddUserRangeRemoteDataViewCommand((AddUserRangeDataviewCommand)command);
                    break;

                case DataViewCommandType.ResetUserRange:
                    remoteDataViewCommandBase = new ResetUserRangeRemoteDataviewCommand(command);
                    break;

                case DataViewCommandType.AddUserLocate:
                    remoteDataViewCommandBase = new AddUserLocateRemoteDataViewCommand((AddUserLocateDataViewCommand)command);
                    break;

                case DataViewCommandType.ResetUserLocate:
                    remoteDataViewCommandBase = new ResetUserLocateRemoteDataviewCommand(command);
                    break;

                case DataViewCommandType.AddUserSort:
                    remoteDataViewCommandBase = new AddUserSortRemoteDataViewCommand((AddUserSortDataViewCommand)command);
                    break;

                case DataViewCommandType.ResetUserSort:
                    remoteDataViewCommandBase = new ResetUserSortRemoteDataviewCommand(command);
                    break;

                case DataViewCommandType.DataViewToDataSource:
                    remoteDataViewCommandBase = new RemoteDataViewToDataSourceCommand((DataViewOutputCommand)command);
                    break;

                case DataViewCommandType.ControlItemsRefresh:
                    remoteDataViewCommandBase = new RemoteControlItemsRefreshCommand((ControlItemsRefreshCommand)command);
                    break;
                }
            }

            return(remoteDataViewCommandBase);
        }
Example #3
0
        /// <summary>
        /// Get the TaskDefinitionId of the task to be run, from the SelectProgram property on the command's control
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        private TaskDefinitionId GetTaskIdFromCommandCtrlProp(ExecOperCommand command)
        {
            Task      task    = Manager.MGDataTable.GetTaskByID(command.TaskTag) as Task;
            MgForm    form    = task.getForm() as MgForm;
            MgControl control = form.CtrlTab.getCtrl(command.DitIdx) as MgControl;
            Property  prop    = control.getProp(PropInterface.PROP_TYPE_SELECT_PROGRAM);

            return(prop.TaskDefinitionId);
        }
Example #4
0
        /// <summary>
        /// CTOR
        /// </summary>
        /// <param name="taskDefinitionId"></param>
        /// <param name="command"></param>
        public LocalRunTimeCommandSelectProgram(TaskDefinitionId taskDefinitionId, IClientCommand command)
            : base(taskDefinitionId)
        {
            ExecOperCommand cmd = command as ExecOperCommand;

            Debug.Assert(cmd != null);

            Task   task = Manager.MGDataTable.GetTaskByID(cmd.TaskTag) as Task;
            MgForm form = task.getForm() as MgForm;

            mgControl = form.CtrlTab.getCtrl(cmd.DitIdx) as MgControl;

            CallingTaskTag    = cmd.TaskTag;
            PathParentTaskTag = CallingTaskTag;

            ForceModal = true;
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        private LocalRunTimeCommandBase CreateExecuteOperaion(ExecOperCommand command)
        {
            if (command.Operation != null)
            {
                if (command.Operation.IsLocalCall)
                {
                    string calcCallingTaskTag = "";
                    string pathParentTaskTag  = command.Operation.getTaskTag(); // PathParentTask will be a task containing Call operation.

                    // Call with a destination
                    if (!String.IsNullOrEmpty(command.Operation.GetSubformControlName()))
                    {
                        return(new LocalRunTimeCommandCallWithDestination(command.Operation.CalledTaskDefinitionId)
                        {
                            CallingTaskTag = pathParentTaskTag,
                            PathParentTaskTag = pathParentTaskTag,
                            SubformCtrlName = command.Operation.GetSubformControlName(),
                            ArgList = command.Operation.GetArgList(),
                        });
                    }
                    else
                    {
                        // pathParentTask must be ContextTask of PathParent Task.
                        Task pathParentTask = MGDataCollection.Instance.GetTaskByID(pathParentTaskTag) as Task;
                        calcCallingTaskTag = pathParentTask.ContextTask.getTaskTag();
                        return(new LocalRunTimeCommandOpenTask(command.Operation.CalledTaskDefinitionId)
                        {
                            ArgList = command.Operation.GetArgList(),
                            ReturnValueField = command.Operation.GetReturnValueField(),
                            CallingTaskTag = calcCallingTaskTag,
                            PathParentTaskTag = pathParentTaskTag
                        });
                    }
                }
            }
            else if (command.DitIdx != Int32.MinValue)
            {
                TaskDefinitionId taskDefinitionId = GetTaskIdFromCommandCtrlProp(command);

                return(new LocalRunTimeCommandSelectProgram(taskDefinitionId, command));
            }

            throw new NotImplementedException();
        }
Example #6
0
        /// <summary>
        /// get the argument list from the command - either from the operation or from the menu entry
        /// </summary>
        /// <param name="command"></param>
        /// <param name="menuEntry"></param>
        /// <param name="mainProg"></param>
        /// <returns></returns>
        private ArgumentsList GetCommandArgumentList(IClientCommand command, MenuEntryProgram menuEntry, Task mainProg)
        {
            ExecOperCommand cmd = command as ExecOperCommand;

            ArgumentsList argList = null;

            if (cmd != null && cmd.Operation != null)
            {
                argList = cmd.Operation.GetArgList();
            }
            else if (menuEntry.MainProgVars != null)
            {
                argList = new ArgumentsList();
                foreach (String item in menuEntry.MainProgVars)
                {
                    Argument argument = new Argument();
                    argument.fillDataByMainProgVars(item, mainProg);
                    argList.Add(argument);
                }
            }

            return(argList);
        }
Example #7
0
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="command"></param>
 public RemoteDataViewCommandUpdateNonModifiable(ExecOperCommand command)
     : base(command)
 {
 }
Example #8
0
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="command"></param>
 public LocalDataViewCommandUpdateNonModifiable(ExecOperCommand command)
     : base(command)
 {
     Field = command.Operation.GetReturnValueField();
 }