目 录
1
2
3
Registry的用法 ............................................................................................................................................................................................ 2 1.1 语法 .............................................................................................................................................................................................. 3 1.2 常见用法 ...................................................................................................................................................................................... 4 覆盖系统properties文件 ............................................................................................................................................................................ 5 2.1 直接覆盖源文件 .......................................................................................................................................................................... 5 2.2 插件方式覆盖 .............................................................................................................................................................................. 5 应用程序和组成部分 ................................................................................................................................................................................ 16 3.1 应用程序 .................................................................................................................................................................................... 16
3.1.1 为应用程序Eclipse-plug创建工程 .................................................................................... 17 3.1.2 增加扩展点com.teamcenter.rac.aifrcp.application ............................................................. 18 3.1.3 提供与语言相关的显示字符串 .......................................................................................... 22
3.2 应用程序菜单 ............................................................................................................................................................................ 24 3.3 动作和命令处理 ........................................................................................................................................................................ 26 3.4 对话框 ........................................................................................................................................................................................ 28 3.5 操作Operation ........................................................................................................................................................................... 28 3.6 Kernel API .................................................................................................................................................................................. 29
1
1 Registry的用法
Registry在整个Teamcenter rich client中有着重要的作用。Teamcenter使用properties文件定义类的注册、图标、本地化语言(国际化语言)、查询顺序、外观、字体等等。
Teamcenter使用三种不同的properties文件来保存这些配置信息。
主要文件
规律:文件名和包名的最后一段一样
作用:存放主要配置信息
举例:access.properties
2
User文件
规律:带_user后缀
作用:一般这个文件为空,留给客户化时覆盖
举例:access_locale.properties
语言文件
规律:带_locale_XXX后缀,但对于Teamcenter来说只有一个选定的语言文件被起作用作用:存放与语言相关的配置信息
举例:access_locale_zh_CN.properties
1.1 语法
以定义图标为例:
information.ICON=images/info_16.png
如果属性名中包含空格必需用\\符号转义
Adobe\\ Acrobat=images/acrobat.gif
3
导入Teamcenter已经定义的properties文件
improt=com.teamcenter.rac.common,com.teamcenter.rac.common.actions.actions
1.2 常见用法
注册应用程序相关的菜单条
tc2007test.test.MENUBAR=tc2007test.TestMenu
注册应用程序相关的菜单条
tc2007test.test.TOOLBAR=tc2007test.TestToolBar
注册应用程序相关的主面版
tc2007test.test.PANEL=tc2007test.TestPanel
定义应用程序标题
tc2007test.test.TITLE=TESTApp
定义菜单的名称
testMenu.NAME=Test
4
2 覆盖系统properties文件
我们可以通过覆盖系统properties文件中定义的值来完成部分客户化工作。覆盖系统properties文件的方法有两种:
直接覆盖源文件
插件方式覆盖
2.1 直接覆盖源文件
可以通过下面的步骤完成该操作
解压缩系统jar文件
找到并修改其中的properties文件
压缩回jar
2.2 插件方式覆盖
下面举一个例子来说明这个方法的操作过程。例子的目的是完成PDF浏览工具的嵌入封装。 要求:
安装Embedded Viewer模块
5
安装Pdf浏览工具Adobe Acrobat Reader
打开Eclipse
新建一个插件项目
6
1.出现对话框,选择Plug-in Project后继续
2.输入Project Name例如PDFViewer后继续
7
3.出现如下画面,确认并继续
8
4.出现如下画面,去掉默认选中的勾:“Create a plug-in using one of the templates”后完成
添加依赖的插件7个
切换到Dependencies标签页,点击添加,选中下面的插件
com.teamcenter.rac.common
com.teamcenter.rac.external
com.teamcenter.rac.kernel
com.teamcenter.rac.neva
com.teamcenter.rac.tcapps
com.teamcenter.rac.util
com.teamcenter.rac.aifrcp
9
增加扩展点com.teamcenter.rac.util.tc_properties
切换到Extensions标签页
1.点击Add…
10
2.选中并双击com.teamcenter.rac.util.tc_properties对话框自动关闭3.回到Extensions标签页
删除“.plugin_properties1”并点击保存,确认修改结果如下:
11
在MENIFEST.MF文件中添加一行配置
在“Bundle-Activator: pdfviewer.Activator”行下增加一行
Eclipse-RegisterBuddy: com.teamcenter.rac.util
新建包用来存放覆盖系统文件
12
在src文件夹下新建包“com.teamcenter.rac.common.tcviewer”
(过程略)
新建需要覆盖的_user.properties文件
1.在包“com.teamcenter.rac.common.tcviewer”下新建文件tcviewer_user.properties
(过程略)
2.在新建的tcviewer_user.properties文件中输入下面内容:
DatasetViewer.TYPES=DirectModel,DirectModelMotion,DirectModelMarkup,DirectModel3DMarkup,SnapShotViewData,Sheet,DrawingSheet,Image,Markup,Item,ItemRevision,BOMView
Revision,MSWord,MSWordX,FullText,MSExcel,MSExcelX,Text,MSPowerPoint,MSPowerPointX,WPPSession,NetworkImage,TCPublishingPage,TCPublishingTechnicalPortfolio,PCBCircuit,PCBPanel,PCBFATF,PCBMarkup,SE Part,SE Draft,SE SheetMetal,PDF,Photoshop
NevaIEViewer.VIEWSEARCHORDER=Text,word,excel,powerpoint,PDF_Reference,Photoshop
PDF.VIEWPANEL=com.teamcenter.rac.common.tcviewer.NevaIEViewer
Photoshop.VIEWPANEL=com.teamcenter.rac.common.tcviewer.NevaIEViewer
13
3.保存所有文件
配置需要导出的包
1. 切换到Runtime标签页
2. 添加导出包
导出该工程到portal目录
(过程略)
使用BMIDE配置PDF数据集和命名的引用(复习)
1.打开BMIDE在新建一个工程或使用一个现有工程
14
(过程略)
2.创建工具
a.工具名称是PDF_Tool
b.输入输出设备格式都是BINARY
c.MIME/Type值为application/pdf
3.创建数据集类型
a.数据集类型名称是PDF
b.命名的引用名称是PDF_Reference
c.文件类型是*.pdf
d.文件格式是BINARY
e.定义打开动作(过程略)
4.Deploy到本机测试服务器
(过程略)
15
3 应用程序和组成部分
3.1 应用程序
Teamcenter的应用程序,通常会有一下几个组成部分(组件):主应用程序、菜单、工具栏、主面版。
我们需要通过properties文件来注册与应用程序相关的其他组成部分,这种注册方法是Teamcenter Rich Client开发所特有的方式。在一个应用程序中,甚至是一个包中,都会有如下的属性文件结构:
16
应用程序的加载是按照一个固定的顺序进行的,应用程序和它相关的组件在的初始化过程:
下面介绍一下创建应用程序的一般过程。
3.1.1 为应用程序Eclipse-plug创建工程
新建Eclipse-plug工程(过程略)
17
添加依赖的插件7个(过程略)
增加扩展点com.teamcenter.rac.util.tc_properties(过程略)
在MENIFEST.MF文件中添加一行配置(过程略)
配置需要导出的包(过程略)
3.1.2 增加扩展点com.teamcenter.rac.aifrcp.application
切换到Extensions标签页
添加com.teamcenter.rac.aifrcp.application扩展点,出现对话框
各需要填写的属性含义:
1.id是在插件项目中唯一标示插件的字符串
18
2.name是应用程序的显示名称,可以直接填入中文
3.groupName应用程序分组位置,可选的组有:TeamCenter,CME,TCAdministrator和Utilities
4.perspective_id透视图名称,不填写,留着
5.session为登录的应用程序提供session支持。通常情况下会使用系统为我们提供的
com.teamcenter.rac.kernel.TCSession
6.class主应用程序类,
7.icon图标文件的位置
8.tooltip提示字符串
9.taskpanelID任务栏号,不填写、留空
10.displayMode显示模式,“主要的”、“次要”的和“备选”三种模式
11.ordinality顺序号,这个号码越小,在导航栏显示位置越往前
添加主应用程序类
1.点击上图中红色的class弹出创建对话框
19
2.填写“包位置”和“类名”
3.确定完成,创建该应用程序类
package tc2007test;
import com.teamcenter.rac.aif.AIFDesktop;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
20
import com.teamcenter.rac.util.Registry;
public class test extends AbstractAIFUIApplication {
public test(AIFDesktop arg0) throws Exception {
super(arg0);
Registry r = Registry.getRegistry(this);
System.out.println(\"#\"+r.getString(\"tc2007test.test.TITLE\"));
}
public test(AIFDesktop arg0, String arg1) throws Exception {
super(arg0, arg1);
}
public test(AIFDesktop arg0, int arg1) throws Exception {
super(arg0, arg1);
}
21
public test(AIFDesktop arg0, String arg1, int arg2) throws Exception {
super(arg0, arg1, arg2);
}
}
3.1.3 提供与语言相关的显示字符串
打开与语言相关的tc2007test_locale_zh_CN.properties文件
添加应用程序Title字符串定义
tc2007test.test.TITLE=\测\试App
注意,这里的中文需要转换成Unicode内码。
当这个步骤完成后,一个空的应用程序就创建完成了。我们可以写一段程序来测试运行效果。在
22
Eclipse的运行控制台可以看到打印的字符串。
23
3.2 应用程序菜单
在Teamcenter中,每个不同的应用程序都有各自的菜单。所以我们需要为应用程序提供管理菜单的一个Java类。
我们定义的菜单类一般继承系统的AbstractTCApplicationMenuBar类。这个类为我们提供了一些基础的菜单和菜单里面的菜单项。
把菜单类注册到应用程序
在tc2007test.properties文件中加入
tc2007test.test.MENUBAR=tc2007test.TestMenu
导入必要的系统包
在tc2007test.properties文件中加入
24
import=com.teamcenter.rac.common,com.teamcenter.rac.common.actions.actions
为菜单提供相应的显示字符串
如果在中文环境修改tc2007test_locale_zh_CN.properties
testMenu.NAME=\测\试
如果是英文环境修改tc2007test_locale.properties(只有英文不带后缀)
testMenu.NAME=Test
在菜单类中加入下面代码来初始化菜单
package tc2007test;
import javax.swing.JMenu;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import com.teamcenter.rac.common.AbstractTCApplicationMenuBar;
public class TestMenu extends AbstractTCApplicationMenuBar {
private static final long serialVersionUID = 1L;
25
protected JMenu testMenu;
public TestMenu(AbstractAIFUIApplication app) {
super(app);
testMenu = new JMenu(registry.getString(\"testMenu.NAME\"));
testMenu.setMnemonic(registry.getChar(\"testMenu.MNEMONIC\", 'P'));addMenuItem(testMenu, \"cusActionString\");
add(testMenu);
}
public void suppressMenus()
{
}
}
3.3 动作和命令处理
26
当菜单项被点下,就会出发一个动作。所以我们需要为每个菜单项提供一个动作(Action)处理类。所有这样的动作处理类必需包含在同一个包下。
s
同时,我们可以看到,与这个动作相关的所有配置也都包含在这个包下。
创建动作类
父类是AbstractAIFAction
动作关联到菜单项
在actions.properties文件中加入
cusActionString=tc2007test.actions.CusAction
cusActionString.ICON=images/cus_16.png
动作相关的文字显示
创建命令类
27
父类是AbstractAIFCommand
在代码中调用命令类
把动作类关联到命令类
cusActionString.COMMAND=cusCmdString
cusCmdString=tc2007test.commands.cus.CusCommand
命令类相关文字显示
命令类如果需要对话框,需要在代码中创建对话框
在应用程序properties文件中import定义的包actions等
3.4 对话框
3.5 操作Operation
AbstractAIFOperation类是Teamcenter为我们提供的支持多线程的抽象操作类。我们可以把操作对象排列在队列中执行。执行语法:
CusOperation c = new CusOperation(session);
session.queueOperation(c);
28
在Operation执行过程中,软中断按钮会变亮。我们可以随时中断该操作。
3.6 Kernel API
Kernel API为我们提供了与服务相关的功能函数使用接口。Kernel API的中心是TCSession类。我们可以通过application对象或者component对象来获得应用程序运行时的TCSession类。具体方法是getSession()。
29
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务