快速业务通道

Java实现数据驱动的命令用户界面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

表2 命令描述表

· 命令参数描述表: 描述各命令的参数.参数的值是在用户调用命令时设定的,事先无法确定.我们只是对参数的性质做出一些约束。数据类型的种类视具体应用而定,应用可以为每种类型指定一数值编号,在表中填写参数数据类型的编号值。参数的最大值最小值给出了参数的取值范围或长度限制。

唯一标志 名字 数据类型 最大值 最小值 枚举的个数 枚举描述位置
p_00010 是否要求响应 9 2 e_00010
p_00020 源文件名 13 32 0

表3 命令参数描述表

· 枚举描述表:给出枚举类型参数的枚举项

唯一标志 枚举名 枚举值
e_00010 要求响应 1
e_00011 不要求响应 0

表4:枚举描述表

以上表1只表4的内容仅提供一般性的示范,实际应用可根据业务逻辑的需要定义自己的命令内容,命令的规模不受限制.

Java实现数据驱动的命令用户界面(2)

时间:2010-03-27

3 数据驱动方案的Java语言实现

3.1 命令的内存结构

为了在程序中反映命令结构,定义CmdType、Cmd、CmdField、Enum四个类分别与数据库中的命令类型描述表、命令描述表、命令参数描述表、枚举描述表相对应.每个类包含与其对应表中各列所描述的属性,表的记录在读表到内存时表现为类的实例。下面以其中的一个类CmdType来说明.

public class CmdType{ public String key; public short code; public String name; public short childCount; public String childPointer; public Cmd[] cmds; public Cmd[] getCmds() throws IOException { … /* implementation code */ } }

在CmdType类中,从key到 childPointer之间的属性与命令类型描述表中唯一标志到命令描述位置的各列对应,数组cmds[]表示该命令类型所包含的命令,可由getCmds方法访问数据库得到。其他三个类的定义与CmdType相似,因Enum类已经是命令结构的最后一级,故不提供得到下一级对象的方法。

应用程序启动时访问数据库的命令类型描述表以获得命令结构层次中的第一级对象,结果保存在cmdTypes数组中。可以根据应用对内存和速度的要求决定是否需要读下一级表数据到内存。

3.2 界面元素的生成

应用程序可以为用户提供多种方式来调用命令,例如下拉菜单、弹出式菜单、树型菜单、命令行、图形浏览菜单等。创建这些界面元素只需根据内存中命令的数据结构,其内容包含在从数据库中读出的cmdTypes数组对象中。其中命令行方式在界面创建时不需要用到命令的内存结构,但可以利用内存结构帮助用户完成命令和参数输入。

下面的代码说明在Java语言下如何利用命令结构在界面上生成命令的树型菜单,假设命令要添加于父节点father下。

DefaultMutableTreeNode node; DefaultMutableTreeNode childnode; for(int i = 0; i < cmdTypes.length; i++) { node = new DefaultMutableTreeNode(); node.setUserObject(cmdTypes[i]); node.setAllowsChildren(true); father.add(node); cmds = cmdTypes[i].getCmds(); if(cmds == null ) continue; for(int j = 0;j<cmds.length;j++) { childnode = new DefaultMutableTreeNode(); childnode.setUserObject(cmds[j]); childnode.setAllowsChildren(false); node.add( childnode ); } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号