Inherited from NULL
Inherited by NULL
Friend class NULL
Description
所有会对数据进行修改的命令和操作被视为一个命令(Command),在XT中命令分为五种类型,窗口命令,无窗口命令,无窗口静默命令,无限交互命令以及特殊定制窗口命令。有窗口的命令通过xml配置文件对窗口进行可视化定制,包括控件以及布局,特殊定制窗口命令在通用窗口基础上多了一个信息代理()。命令必须在命令管理器中注册之后才能通过菜单或者按钮触发,命令的启动则由主框架(MainFrame)负责。一般来说,每个命令都需要输入参数(IParameter),用户通过命令窗口输入参数,然后命令再通过窗口获取参数值,最后来执行相应的操作,命令的输出往往对应某种数据的变化(添加、删除或者修改),它可能会导致数据视图的变化,通过函数updateFrame可指示哪些部分需要更新。XT中所有的命令都从该基类继承,重新实现相应的接口函数即可。
XT系统中所有的命令必须在命令管理器中注册之后才能被使用。
Members
Public interface
ICommand(IMainFrame * mf, XDocument * doc)
-
-
-
-
-
-
-
-
-
-
-
-
virtual void
updateData(bool bSaveValidate = true)
-
-
-
virtual void
onControlEvent(const char * ctrlName, TypeID event = Event_Any)
-
-
-
-
-
-
-
virtual void
setParam(const CmdParam * param)
virtual bool
setContextParam(const TreeNode * targetNode, const TreeNode * fromNode = 0)
virtual void
setTarget(vector<const XItem *> * tars, int role = 0)
-
-
virtual const char *
getName() const = 0
-
-
const CommandIndex *
index() const
-
-
-
-
-
-
-
IMainFrame * m_pFrm
ICommandWindow * m_pDlg
XDocument * m_pDoc
const CommandIndex * m_pIndex
ulong m_ilNextCid
XPicker * m_pPicker
bool m_bScript
ICommand(IMainFrame * mf, XDocument * doc)
function: 构造函数
parameters:
[i]IMainFrame * mf: 主框架指针
[i] XDocument * doc: 文档指针
return value: 无
void setNextCid(ulong cid)
function: 设定后续命令ID
parameters:
[i]ulong cid: 后续命令ID
return value: 无
ulong getNextCid()
function: 获取后续命令ID
parameters: NULL
return value: 后续命令ID
void invalidate()
function: 使命令失效
parameters: NULL
return value: 无
void setScriptMode(bool b)
function: 设置脚本模式
parameters:
[i]bool b: 是否启动脚本模式
return value: 无
bool isScriptMode() const
bool isValid() const
bool isDocumentReady()
XDocument * getDocument()
function: 获取命令的文档指针
parameters: 无
return value: 命令的文档指针
void setDocument(XDocument * doc)
function: 设置命令的文档
parameters:
[i]XDocument * doc: 文档对象
return value: 无
virtual void initWindow()
function: 初始化命令的对话框窗口
parameters: NULL
return value: 无
virtual void onDataExchange(const char * dxdialog = NULL)
function: 交换内存参数与界面控件状态值
parameters:
[i]const char * dxdialog = NULL: 指定交换的子窗口名,若为空则交换主窗口的控件值
return value: 无
virtual void exchangeScript(ParamList * param)
function: 交换内存参数与脚本参数值
parameters:
[i]ParamList * param: 脚本参数对象指针
return value: 无
virtual void updateData(bool bSaveValidate = true)
function: 交换内存参数与界面控件状态值
parameters:
[i]bool bSaveValidate = true: 为真将界面状态值更新到内存参数中,否则将内存参数更新到界面控件中
return value: 无
void updateToDialog()
function: 将内存参数值更新到界面控件中
parameters: NULL
return value: 无
void updateFromDialog()
virtual void updateControl(const char * configStr)
function: 更新控件状态
parameters:
[i]const char * configStr: 控件名
return value: 无
virtual void onControlEvent(const char * ctrlName, TypeID event = Event_Any)
function: 响应控件的交互事件
parameters:
[i]const char * ctrlName:发生交互事件的控件名
[i] TypeID event = Event_Any: 事件类型,默认为任何交互事件类型
return value: 无
virtual void onPickChanged()
function: 当用户选择对象时更新对话框
parameters: NULL
return value: 无
virtual void onPickRoleChanged()
function:
parameters: NULL
return value:
virtual void onViewChanged()
function: 当视图变化时更新对话框
parameters: NULL
return value:
virtual ErrorCode execute()
virtual const char * getUISettingXml()
virtual const char * getSubroutine()
function:
parameters: NULL
return value:
virtual void setSubroutine(const char * subroutine)
function:
parameters:
[i]const char * subroutine:
return value:
virtual void setParam(const CmdParam * param)
function: 设置命令的参数
parameters:
[i]const CmdParam * param: 命令参数结构体指针
return value: 无
virtual bool setContextParam(const TreeNode * targetNode, const TreeNode * fromNode = 0)
virtual void setTarget(vector<const XItem *> * tars, int role = 0)
function: 设置命令的应用对象
parameters:
[i]vector<const XItem *> * tars: 应用对象数组
[i] int role = 0: 对象的角色
return value: 无
virtual CmdParam * getParam()
function: 返回命令参数指针
parameters: NULL
return value: 命令参数指针
virtual CommandType getType() = 0
function: 返回命令的类型
parameters: NULL
return value: 命令类型ID
virtual const char * getName() const = 0
function: 返回命令的名称
parameters: NULL
return value: 命令名字符串
ulong getId() const
function: 返回命令的ID
parameters: NULL
return value: 命令ID
void setIndex(const CommandIndex * idx)
function: 设置命令的索引
parameters:
[i]const CommandIndex * idx: 索引指针
return value: 无
const CommandIndex * index() const
function: 返回命令的索引
parameters: NULL
return value: 索引指针
virtual const char * getHint()
function: 返回命令的提示
parameters: 无
return value: 提示字符串
virtual bool checkContext()
virtual void updateFrame()
function: 当成功执行命令时更新框架
parameters: NULL
return value: 无
virtual void getActionSetting(string * setting)
virtual void updateParam()
function: 在成功执行之后更新命令参数
parameters: NULL
return value: 无
virtual bool isParamModified()
function:
parameters: NULL
return value:
virtual ~ICommand()
function: 析构函数
parameters: 无
return value: 无