自定义菜单

阅读(764) 标签: 设计器菜单, cmaction, icmhandler, gvide,

背景说明与实现思路

润乾报表设计器提供的菜单项可以由用户自定义,用户可以追加一些菜单项,也可以替换一些现有的菜单项。目前可以追加菜单项的有文件菜单、系统菜单。

 

菜单的定制包括三个步骤: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窗口。