/// <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); }
/// <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); }
/// <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; }
/// <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(); }
/// <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); }
/// <summary> /// CTOR /// </summary> /// <param name="command"></param> public RemoteDataViewCommandUpdateNonModifiable(ExecOperCommand command) : base(command) { }
/// <summary> /// CTOR /// </summary> /// <param name="command"></param> public LocalDataViewCommandUpdateNonModifiable(ExecOperCommand command) : base(command) { Field = command.Operation.GetReturnValueField(); }