实现您自己的接口
From Apache OpenOffice Wiki
组件只有通过它的接口才能实现其功能。编写组件时,请选择一个可用的 API 接口或定义一个接口。UNO 类型可以用作其他 UNO 对象的方法参数。Java 不支持无符号整数类型,所以建议不要使用这些类型。在 编写 UNO 组件 - 使用 UNOIDL 指定新组件 中,编写了 org.openoffice.test.XImageShrinkFilter
接口规范并创建了接口类文件。它的实现很简单,您需要创建实现您的接口的类:
package org.openoffice.comp.test; public class ImageShrink extends com.sun.star.lib.uno.helper.WeakBase implements com.sun.star.lang.XServiceInfo, org.openoffice.test.XImageShrinkFilter { ... String destDir = ""; String sourceDir = ""; boolean cancel = false; com.sun.star.awt.Size dimension = new com.sun.star.awt.Size(); // XImageShrink implementation (a sub-interface of XImageShrinkFilter) public void cancel() { cancel = true; } public boolean filter(com.sun.star.beans.PropertyValue[] propertyValue) { // while cancel = false, // scale images found in sourceDir according to dimension and // write them to destDir, using the image file format given in // []propertyValue // (implementation omitted) cancel = false; return true; } // XIMageShrink implementation public String getDestinationDirectory() { return destDir; } public com.sun.star.awt.Size getDimension() { return dimension; } public String getSourceDirectory() { return sourceDir; } public void setDestinationDirectory(String str) { destDir = str; } public void setDimension(com.sun.star.awt.Size size) { dimension = size; } public void setSourceDirectory(String str) { sourceDir = str; } ... }
对于要运行的组件,新接口类文件必须可以通过 Java 虚拟机访问。与独立的 Java 应用程序不同,只设定 CLASSPATH 环境变量是不够的。相反,类路径在创建时将被传送给 VM。在 OpenOffice.org 1.1.0 之前,可以通过编缉 java(.ini|rc) 的 SystemClasspath
项(位于 <officepath>\user\config. 文件夹)来修改类路径。另外一个方法是使用“选项”对话框。要定位到类路径设置,需要展开左侧树上的 OpenOffice.org 节点,然后选择 Security。在右侧,有一个名为“用户类路径”的字段。
自 OpenOffice.org 1.1.0 起 ,组件、类文件和类型库被压缩到 UNO 扩展软件包中,该软件包由 pkgchk 程序注册。自 OpenOffice.org 版本 2.0 后,unopkg 工具用于安装软件包。JAR 文件可以自动添加到类路径中。
还有一点也很重要,即要与组件一起提供新接口的二进制类型库,否则将无法从 OpenOffice.org Basic 访问组件。Basic 使用 UNO 核心反射服务以在运行时获取类型信息。而核心反射又是基于二进制类型库的。 |
Content on this page is licensed under the Public Documentation License (PDL). |