top
linkSite
 
 
 
 
macro
概况
解决方案
编程指南
使用技巧
技术支持
 
search
新闻搜索
当前位置:首页 > 二次开发 > 编程指南 > 插件功能
插件功能

  插件功能让用户可以自定义自己的对象,包括:自定义面板、自定义工具栏和自定义菜单。

一、代码部分:

  1、自定义面板:
自定义面板的实现代码如下:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import application.EBeansFactory;
import application.util.Macro;
public class CustomPane extends JPanel implements ActionListener
{
private JTextField tField;
public CustomPane()
{
setLayout(new FlowLayout());
initComponent();
}
private void initComponent()
{
tField = new JTextField(10);
add(tField);
JButton btn = EBeansFactory.createButton();
add(btn);
btn.setText( "测试按钮");
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
Macro.showMessageDialog(tField.getText());
}
}

  在代码中可以看到,自定义面板继承了JPanel类。在这段代码中,通过面板里的按钮提取面板中文本框的内容,并显示在弹出的提示框中。

  2、自定义工具栏
自定义工具栏的代码只需要完成工具栏按钮的事件代码,代码如下:

import java.awt.event.ActionEvent;
import application.EAbstractAction;
import application.constants.OfficeDialogConstants;
import application.util.Dialogs;
public class CustomBarItemAction extends EAbstractAction
{
public void actionPerformed(ActionEvent e)
{
Dialogs.showOfficeDialog(OfficeDialogConstants.FILE_OPEN);
}
}

  工具栏上的按钮在点击后执行了OpenAction中的动作:弹出打开对话框。

  3、自定义菜单
自定义菜单的代码只需要完成工具栏按钮的事件代码,代码如下:

import java.awt.event.ActionEvent;
import application.Application;
import application.EAbstractAction;
import application.workbooks.Workbook;
import application.workbooks.workbook.documents.Document;
import application.workbooks.workbook.documents.document.DocumentView;
public class CustomMenuAction extends EAbstractAction
{
public void actionPerformed(ActionEvent e)
{
Workbook workbook = Application.getWorkbooks().getActiveWorkbook();
Document doc = workbook.getDocuments().getActiveDocument();
DocumentView view = doc.getDocumentView();
view.getNormalView();
}
}

  该事件将会设置文字处理视图为普通视图。

  4、自定义对象
目前只支持在自选图形中生成自定义对象,生成代码的方式如下:

public class CustomObj
{
private Shapes shapes;
public CustomObj()
{
Workbooks workbooks = Application.getWorkbooks();
if (workbooks != null)
{
Workbook workbook = workbooks.getActiveWorkbook();
if (workbook != null)
{
shapes = workbook.getActiveShapes();
}
}
}
public boolean create()
{
if (shapes != null)
{
Shape shape = shapes.addPicture("C:/pic.jpg");
shape.setPlugID(1);
shape.setPlugSubID(0);
return true;
}
return false;
}
}

  需要注意的是代码的第23行的方法setPlugID(int)的参数和plugin.txt文件中自定义对象设置中的id匹配,第24行的方法setPlugSubID(int)方法用来设置右键菜单,其参数是plugin.txt配置文件中的右键菜单的索引。

  可以定义和自定义对象功能相关的工具栏和面板,定义方法和上面介绍的方法相同。对自定义对象可能产生的状态及鼠标双击动作可以通过程序定制,代码如下:

public class CustomObjCtrl
{
//为插件定制的工具条的ID
public static int barID;
//为插件定制的任务面板的ID
public static int paneID; 
public static void stateChanged()
{
Application.setActionEnable(ActionNameConstants.FILE_OPEN,false);
}
public static Object clicked(int type)
{
Macro.showMessageDialog("测试!");
return null;
}
}

  方法stateChanged用来设置Office状态,需要注意的是:方法名称和plugin.txt配置文件有关。

  方法clicked(int)用来设置双击后的动作,需要注意的是:该方法名称和plugin.txt配置文件有关。

  另外需要注意的是barID、paneID字段分别和工具栏、面板对应,可以通过这些ID控制相应的工具栏和面板。

二、配置:

  1、EIOPlugin.txt文件

    EIOPlugin文件用来配置class文件或jar文件的路径,例如:自定义面板的代码生成的class文件在目录“C:\exp”中,自定义菜单的事件代码在“D:\menu”中并被打包成CustomMenu.jar文件,那在EIOPlugin.txt文件的内容是:
    C:\exp
    D:\menu
    EIOPlugin.txt文件应保存在永中Office安装路径下和EIOffice.exe同一目录。

  2、plugin.txt文件

    Plugin文件是具体描述插件类型、功能的文件。其格式如下:

    [lib]
    /plugin.jar

    [pane]
    org.system.SearchPanel,文件搜索

    [field]
    id,1
    bar, org.system.Main, barID
    pane, org.system.Main, paneID
    state, org.system.Main, stateChanged
    clicked, org.system.Main, clicked

    [popup]
    搜索eio文件(E),,org.action.SearchEIOAction
    0

    [bar]
    0
    app=b,电子签章(S),,3
    插入样章(I)...,,org.action.InsertSealAction,0
    ,
    菜单1(F),,1
    子菜单(1),,test.Action4

    [bar]
    文件搜索
    搜索eio文件(E),,org.action.SearchEIOAction

    [lib]:用来说明使用的jar文件,如果使用class文件则内容为“/”
    [pane]:用来说明自定义面板,其子项格式为:“类名,面板名称”,对应于一个自定义面板,其中类名为自定义面板的使用的java类,面板名称为自定义面板在永中集成Office中的显示名称。
    [field]:用来说明自定义对象,其下有五个说明项,分别为:

    id:表示该插件的ID,其格式为“id,ID值”,ID值是某个厂商的某个插件的唯一标志,确定以后不允许更改,值的类型为整形。如果不指定id,则不可以使用自定义控件的右键菜单。
    bar:用来说明和自定义对象有关的工具栏,其格式为:“bar,自定义对象类名,bar ID”,其中自定义对象类名指自定义对象的java类名,bar ID表示自定义对象类中相同名称的变量值为该插件的插件工具条的ID,该自定义对象的工具条ID按照在配置文件中顺序确定,插件可以通过该ID控制工具条的显示或者隐藏,及对工具栏的其他操作。关于bar ID的使用请参照自定义对象的代码部分。
    pane:用来说明和自定义对象有关的自定义面板,其格式为:“pane,自定义对象类名,pane ID”,其中pane id表示自定义对象类中相同名称的变量值为该插件的任务面板的ID,该自定义对象的任务面板的ID按照在配置文件中顺序确定,插件可以通过该ID控制任务面板的显示或者关闭。关于pane ID的使用请参照自定义对象的代码部分。
    state:用来说明永中集成Office在文档中出现自定义对象时的状态控制,其格式为:“state, 自定义对象类名,方法名”,其中方法名是指自定义对象类中的同名方法,在该方法里可以通过API控制永中集成Office状态。关于state的使用请参照自定义对象的代码部分。
    clicked:用来说明鼠标双击自定义对象时调用的方法,其格式为:“clicked, 自定义对象类名,方法名”,其中方法名是指自定义对象类中的同名方法,在该方法中可以实现鼠标双击自定义对象时的功能。

[popup]:用来说明和自定义对象有关的右键菜单,其子项格式“名称(快捷键), 图标,事件类名”,对应于右键菜单中的一个菜单项,其中名称(快捷键)指在右键菜单中添加的菜单项和对应的快捷键,图标指该菜单项在右键菜单中显示的图标,事件类名指该菜单项的执行事件的java类名。
[bar]:用来说明自定义工具栏和自定义菜单。

  自定义工具栏的表示有两个部分组成:工具栏名称和工具栏项,其表现形式如下:

[bar]
工具栏名称
工具栏项

   工具栏项的描述格式为:“名称(快捷键),图标,事件类名”,其中名称为工具栏项的名称,图标为工具栏项显示的图标,事件类名指该工具栏项的执行事件的java类名。

自定义菜单的表示有六个部分组成:类型,菜单项说明,子菜单项说明,其表现形式如下:

[bar]
类型
菜单说明
菜单项说明
子菜单说明
子菜单项说明

  类型指菜单类型,其值固定为0。菜单说明指一级菜单的说明,其格式为:“有效范围,菜单名称(快捷键),图标,菜单项的数目”,其中有效范围指菜单在应用中是否有效,的格式为:“app=范围”,范围取值为a、b、c或这三个字母的组合,如:在电子表格应用和文字处理应用中有效“app=ab”。菜单项的数目指菜单的菜单项的数目,该数目包括分隔线。菜单项说明的格式为:“菜单项名称,图标,事件类名”。子菜单说明的格式为:“子菜单名称(快捷键),图标,子菜单项数目”。子菜单项说明的格式为和菜单项格式相同。

 
right
 永中集成Office 2009
 产品聚焦
·产品注册
·在线升级
·2009试用版下载
·补丁下载
 资料下载
·模板下载
·产品白皮书
·应用秘笈
·二次开发手册
 与我们联系
·800-808-6655
·0510-85213588(客服)
公司荣誉
二次开发