◆ 背景说明与实现思路
润乾报表设计器提供的菜单项可以由用户自定义,用户可以追加一些菜单项,也可以替换一些现有的菜单项。目前可以追加菜单项的有文件菜单、系统菜单。
菜单的定制包括三个步骤:1、写程序实现菜单的功能2、增加菜单按钮
自定义菜单类必须继承com.raqsoft.report.ide.configmenu.CMAction,实现其public void actionPerformed(ActionEvent e)方法,该类有两个保护变量:
protected String argument;
protected ICMHandler handler;
argument 即在配置菜单按钮时配置文件指定的argument字符串
handler 即ICMHandler,这是一个润乾报表提供的消息处理类,程序员可以通过这个接口发送消息以获取到自己想得到的一些东西。
◆ com.raqsoft.report.ide.configmenu.ICMHandler
public Object processMessage(String desc, Object argument); //此方法供程序员发送消息并接收返回值
desc 消息的简短描述,大小写无关
argument 传给润乾报表
返回值 润乾报表执行消息后返回给程序员的想要得到的东西
另外:润乾报表设计器中com.raqsoft.report.ide.GVIde是一静态类,里面包含了润乾报表设计器IDE的界面组成构件,用户可以直接访问该类的属性以获取自己感兴趣的IDE构件。
可以访问的构件说明:
1. appMenu :设计器的主菜单对象。类型(JMenu)
2. dsActive :当前活动的数据源定义,类型(com.raqsoft.report.ide.base.DataSource)
3. dsModel :数据源列表定义,类型(com.raqsoft.report.ide.base.DataSourceListModel)
4. toolBarProperty :设计器第一个工具条,可设置颜色的那条。类型(com.raqsoft.report.ide.ToolBarProperty)
5. toolBarEditor : 设计其第二个工具条,可设置表达式的那条,类型(com.raqsoft.report.ide.ToolBarEditor)
自定义菜单类
◆ 代码示例
package one.client;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.event.ActionEvent;
import java.util.*;
import com.raqsoft.report.ide.configmenu.CMAction;
public class OneRpx extends CMAction {
public void actionPerformed( ActionEvent e ) {
public void actionPerformed( ActionEvent e ) {
…………
}
}
参考文件:MyMenu.java
自定义菜单按钮的配置
菜单按钮的配置在reportsystemconfig_zh.xml文件中,该文件所处位置应为类路径可以搜索到的位置。
文件结构:
<REPORT>
<CONFIG_MENU>
<F_20000 argument="" classname="one.client.MyMenu" hotkey="ctrl+h" text="打开报表"/>
</CONFIG_MENU>
<CONFIG splashFile="config/runqiansplash.jpg" ieBrowserURL="http:// www.raqsoft.com.cn">
</CONFIG>
</REPORT>
F_10为菜单项的数字标识号,
F_ 前缀表示菜单将添加到润乾报表的文件菜单中;
T_ 前缀表示将添加到润乾报表工具菜单上;
后面跟的序号原则上大于 20000。但是如果小于20000而和系统的其他命令冲突则会造成程序菜单混乱。但是和以下的系统菜单序号相同时,则程序不追加新的配置菜单项,而会把如下列出的系统菜单的行为重定向到配置菜单指定的操作。
可替换的系统菜单命令列表:
文件 |
值 |
远程 |
值 |
NEW〔新建〕 |
5 |
登录 |
850 |
OPEN〔打开〕 |
10 |
注销 |
851 |
QUICKOPEN〔快速打开〕 |
15 |
打开 |
852 |
SAVE〔保存〕 |
20 |
另存为 |
854 |
CLOSE〔关闭〕 |
30 |
|
|
CLOSE_ALL〔关闭全部〕 |
35 |
|
|
PRINT〔打印〕 |
50 |
|
|
PREVIEW〔预览〕 |
55 |
|
|
QUIT〔退出〕 |
60 |
|
|
Argument 为任意意义的字符串参数,用户在自定义的类里面可以使用该参数,当然也可以不用。
Classname 增加的菜单项需要执行的类名, 且该类必须实现com.raqsoft.report.ide.configmenu.CMAction抽象类。
Text 菜单显示的中文名称
Hotkey 为菜单项指定热键,只能为某个字母,或者 ctrl+字母 两种格式。
CONFIG 系统的配置选项:
Splahfile = IDE启动时的splash 画面文件。该文件为类路径上搜索的相对路径。
不指定该选项则不启动splash窗口。