《Coeus酷易中间件系统开发指南.docx》由会员分享,可在线阅读,更多相关《Coeus酷易中间件系统开发指南.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Coeus酷易中间件系统开发指南系统开发指南在系统中,可运用的程序接口分为三部分 一、系统接口系统接口指程序运行中已经存在的一些可调用类的方法。1、Support(com.ctop.Support)Support 类是在服务器启动时创建的。该类中包含了系统中的一些基本信息(如:系统路径、系统语言、系统名称等等),是支撑系统运行的基本类,在以后的界面构建中,将会大量运用到该类。该类在运用时,尽量不要运用 Support support = new Support()干脆初始化它。在 Support 中定义了大量的静态属性,可以通过 Support 干脆运用2、SimpleUserSimpleUs
2、er 类在用户登陆后产生,存在在服务器 session 中。该类包含了一些用户的基本信息(如:当前登陆用户的用户 id、当前登陆用户的用户名、当前登陆用户的用户风格等)。该类可运用 changeUser 方法得到当前的登陆用户的 User 类。User user = simpleUser.changeUser(); User 为描述一个用户的类,User 类中记录着一个用户的具体信息(如:部门、角色、性别等等,具体见系统 api 说明)在系统中调用该类时,可以运用 SimpleUser simpleUser = SystemSession.getSimpleUser(session); 得到它
3、3、MenuTruss、SimpleMenu 和 SimplePrivilegeMenuTruss 、SimpleMenu、SimplePrivilege 是用来描述当前登陆用户的菜单和权限的类。由于系统中存在着大量的菜单,以及每个菜单数据的高操作率。为了减轻服务器的负担,所以在用户登陆时,系统将一次性取出登陆用户所拥有的菜单,及每个菜单的操作权限。存储在 MenuTruss 、SimpleMenu 和SimplePrivilege 类中,供系统中程序调用运用。MenuTruss 可通过 MenuTruss menuTruss = SystemSession.getSimpleMenu();得
4、到它。而 SimpleMenu、SimplePrivilege 可通过 menuTruss 中的方法得到。(具体请见系统 api 说明)二、构建软件界面应用接口构建软件界面应用接口指通过系统供应的应用接口,可以快速的构建出软件的界面。界面方面主要包括表单构件、数据列表构件、按钮构件、树型菜单构件等。整个界面应用接口构架如下图所示: 1、按钮 1.1、按钮构建按钮主要由两个类构成 ButtonContainer、Button Button:构建按钮详细的类 ButtonContainer:按钮容器,按钮不能单独存在,必需加入到按钮容器中才可以正式运用。构建一个按钮时,必需指定按钮的名称、标题、单
5、击事务、类型、链接、宽度、高度等等(具体请见 api 说明)例一、 lt;% page contentType=text/html;charset=gb2312%gt;lt;% page import=com.ctop.Support %gt; lt;% page import=com.ctop.util.SystemSession %gt; lt;% page import=com.ctop.system.domain.SimpleUser %gt; lt;% page import=com.ctop.frame.prop.ButtonContainer %gt; lt;% page imp
6、ort=com.ctop.frame.prop.Button %gt;lt;% SimpleUser simpleUser = SystemSession.getSimpleUser(session);ButtonContainer buttonContainer = new ButtonContainer();buttonContainer.setSimpleUser(simpleUser);buttonContainer.setButtonContainerMode(ButtonContainer.FUNCTIONKEY);Button button = new Button(Button
7、.NEWKEY);button.setTitle(测试);指定按钮标题button.setOnClickEvent(alert(这是按钮测试);指定按钮事务 buttonContainer.addButton(button); %gt; lt;htmlgt; lt;headgt; lt;titlegt;lt;%=Support.sysName%gt;lt;/titlegt; lt;link rel=stylesheet type=text/css href=./style/css/main.cssgt; lt;link rel=stylesheet type=text/css href=./s
8、tyle/lt;%=simpleUser.getStyle()%gt;/css/button.cssgt; lt;bodygt; lt;%=buttonContainer.createPageCode()%gt; lt;/bodygt; lt;/htmlgt; 以上代码运行后的结果为: 假如没有指定按钮图片,按钮上的图片为默认图片。如上图。在 Button 中,系统默认已定义了一些(22 种)按钮,如:阅读按钮(BROWSEKEY)、新增按钮(ADDKEY)、修改按钮(MODIFYKEY)等等(具体请见 api 说明)。可以通过如下方法构建。 例二、 lt;% page contentType
9、=text/html;charset=gb2312%gt;lt;% page import=com.ctop.Support %gt; lt;% page import=com.ctop.util.SystemSession %gt; lt;% page import=com.ctop.system.domain.SimpleUser %gt; lt;% page import=com.ctop.frame.prop.ButtonContainer %gt; lt;% page import=com.ctop.frame.prop.Button %gt;lt;%SimpleUser simpl
10、eUser = SystemSession.getSimpleUser(session);ButtonContainer buttonContainer = new ButtonContainer();buttonContainer.setSimpleUser(simpleUser);buttonContainer.setButtonContainerMode(ButtonContainer.FUNCTIONKEY); Button button1 = new Button(Button.BROWSEKEY); Button button2 = new Button(Button.ADDKEY
11、);Button button3 = new Button(Button.MODIFYKEY);Button button4 = new Button(Button.SEARCHKEY);Button button5 = new Button(Button.CLOSEKEY);buttonContainer.addButton(button1).addButton(button2).addButton(button3).addButton(button4).addButton(button5); %gt; lt;htmlgt; lt;headgt; lt;titlegt;lt;%=Suppor
12、t.sysName%gt;lt;/titlegt; lt;link rel=stylesheet type=text/css href=./style/css/main.cssgt; lt;link rel=stylesheet type=text/css href=./style/lt;%=simpleUser.getStyle()%gt;/css/button.cssgt; lt;bodygt;lt;%=buttonContainer.createPageCode()%gt; lt;/bodygt;lt;/htmlgt; 以上代码运行后的结果为 系统中的按钮样式分为两中,一中为上图所示的样
13、式,另一中为一般按钮样式。把例二中的代码稍做修改。把 buttonContainer.setButtonContainerMode(ButtonContainer.FUNCTIONKEY); 改为 buttonContainer.setButtonContainerMode(ButtonContainer. CONTROLKEY); 运行的结果将如下所示: 1.2、按钮的状态按钮的状态可分为操作,隐藏,失效三中状态,下面的代码对这三种状态进行编写例三、 lt;% page contentType=text/html;charset=gb2312%gt;lt;% page import=com.
14、ctop.Support %gt; lt;% page import=com.ctop.util.SystemSession %gt;lt;% page import=com.ctop.system.domain.SimpleUser %gt; lt;% page import=com.ctop.frame.prop.ButtonContainer %gt; lt;% page import=com.ctop.frame.prop.Button %gt; lt;%SimpleUser simpleUser = SystemSession.getSimpleUser(session);Butto
15、nContainer buttonContainer = new ButtonContainer();buttonContainer.setSimpleUser(simpleUser);buttonContainer.setButtonContainerMode(ButtonContainer.FUNCTIONKEY); Button button1 = new Button(Button.BROWSEKEY);button1.setState(Button.S_MANAGE_BUTTON);Button button2 = new Button(Button.ADDKEY);button2.
16、setState(Button.S_HIDE_BUTTON);Button button3 = new Button(Button.MODIFYKEY);button3.setState(Button.S_DISABLE_BUTTON);buttonContainer.addButton(button1).addButton(button2) .addButton(button3); %gt; lt;htmlgt; lt;headgt; lt;titlegt;lt;%=Support.sysName%gt;lt;/titlegt; lt;link rel=stylesheet type=tex
17、t/css href=./style/css/main.cssgt; lt;link rel=stylesheet type=text/css href=./style/lt;%=simpleUser.getStyle()%gt;/css/button.cssgt; lt;bodygt;lt;%=buttonContainer.createPageCode()%gt; lt;/bodygt; lt;/htmlgt; 运行结果如下图所示:在上图中,第一个按钮为操作状态,可以正常对它进行操作; 其次个按钮为失效状态,只可以查看,不行以运用; 第三个状态为隐藏状态,那么它将不在界面上显示。 1.3、
18、按钮的权限在系统中,按钮可以和系统中的详细菜单权限关联,每个按钮都具有权限属性,如增加按钮属于权限中的操作权,而阅读按钮属于权限中的阅读权。在程序中,可以通过 button.setPrivilege()方法来对按钮所属的权限进行再次设置。在初始化按钮容器的时候,可以通过 buttonContainer.setSimpleMenu()方法来设置当前按钮所在的菜单,把菜单和按钮关联起来。这样在系统运行中,假如当前的用户在设置的菜单中不拥有操作权限,那么属于操作权限的按钮将不会显示出来。 2、树型菜单2.1、树型菜单的构建树型菜单是通过 Tree、TreeNode 两个类构建出来的。Tree:表示整
19、个菜单,相当于一棵树。TreeNode:表示菜单中的各个节点,相当于一棵树的树叉。在调用时,首先初始化整个菜单的各个节点 TreeNode。TreeNode tn = new TreeNode();tn.setNodeCode(); tn.setParentCode(); tn.setNodeTitle();最终把 TreeNode 加入到 Tree 中即可。 例四、 lt;% page contentType=text/html;charset=gb2312%gt;lt;% page import=com.ctop.Support %gt; lt;% page import=com.ctop
20、.util.TreeNode %gt; lt;% page import=com.ctop.util.Tree %gt;lt;%Tree tree = new Tree();TreeNode tn = new TreeNode(); tn.setNodeCode(1); tn.setParentCode(-1); tn.setNodeTitle(中国); tree.add(tn);TreeNode tn1 = new TreeNode(); tn1.setNodeCode(2); tn1.setParentCode(1); tn1.setNodeTitle(广东);tree.add(tn1);
21、TreeNode tn2 = new TreeNode(); tn2.setNodeCode(3); tn2.setParentCode(1); tn2.setNodeTitle(上海); tree.add(tn2);TreeNode tn3 = new TreeNode(); tn3.setNodeCode(4); tn3.setParentCode(2); tn3.setNodeTitle(广州); tree.add(tn3); %gt; lt;htmlgt; lt;headgt; lt;titlegt;lt;%=Support.sysName%gt;lt;/titlegt; lt;lin
22、k rel=stylesheet type=text/css href=./style/css/main.cssgt; lt;/headgt; lt;bodygt; lt;%=tree.growTree()%gt; lt;/bodygt;lt;/htmlgt; 运行结果如下图所示: 假如须要设置节点的链接、图片等其他属性时,可运用下列的方法:(具体请见 api 说明)setNodeCode:设置节点编号 setParentCode:设置节点的父节点编号 setNodeTitle:设置节点标题setOnClickEvent:设置节点的单击事务 setOnDblclickEvent:设置节点的双击
23、事务 setPrompt:设置节点文字提示 setTarget:设置目标 setImageAddress:设置节点图片地址 setOpenImageAddress:设置节点打开图片地址3、数据列表构建一个数据列表窗体由 DataGrid、DataField 组成。DataGrid:整个窗体的说明类。DataField:表示窗体中的一列数据DataField 继承于 ArrayList。可以通过 add()方法加入一列中拥有的数据 假如一个数据列表窗体中拥有多列(大都拥有多列)那么每列中的数据总数必需相同,否则在运行时会抛出 FieldDifferException 错误。DataField 通
24、过DataField DataField = new DataField(fieldName,width)创建,在 DataField 创建的时候须要传入两个参数:fieldname:列标题 width:该列在窗体中的宽度。width 可以为空,当 width 为空时,将会自动适应大小DataField 支持 javascript 形式的排序。可以通过 setSort()的方法设定一列的数据是否排序。在确定排序后,通过 setSortType()方法确定排序的类型。默认的排序类型有字母排序、数字排序、日期排序、中文拼音排序、中文笔画排序。以下代码可以创建出一列根据中文笔画排列的数据:DataF
25、ield titles = new DataField(标题, null); titles.setSort(true); titles.setSortType(DataField.SORT_CNBH); titles.add(数据 1); titles.add(数据 2); titles.add(数据 3); titles.add(数据 4);DataField 同按钮一样不能单独的存在,必需加入到窗体 DataGrid 中才可以运行。DataGrid 通过DataGrid dataGrid = new DataGrid(simpleUser.getStyle();创建。在创建完成后,运用 a
26、ddDataField 加入 DataField 例五、 lt;% page contentType=text/html;charset=gb2312%gt;lt;% page import=com.ctop.Support %gt; lt;% page import=com.ctop.util.SystemSession %gt; lt;% page import=com.ctop.system.domain.SimpleUser %gt; lt;% page import=com.ctop.frame.data.DataGrid %gt; lt;% page import=com.ctop
27、.frame.data.DataField %gt; lt;%SimpleUser simpleUser = SystemSession.getSimpleUser(session);DataGrid dataGrid = new DataGrid(simpleUser.getStyle();DataField titles = new DataField(标题, null);titles.setSort(true);titles.setSortType(DataField.SORT_CNBH); titles.add(一);titles.add(二);titles.add(三);titles.add(四);dataGrid.addDataField(titles); %gt; lt;htmlgt; lt;headgt; lt;titlegt;lt;%=Support.sysName%gt;lt;/titlegt; lt;link rel=stylesheet type=text/css href=./style/css/main.cssgt; lt;/headgt; lt;bodygt; lt;%=dataGrid.createPageCode()%gt; lt;/bodygt; lt;/htmlgt; 运行结果如下图所示:在运行结果中,可以看出数据列表窗体中包括了分页.
限制150内