Teamcenter2007 开发培训RC
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1 Registry的用法 (2)
1.1 语法 (2)
1.2 常见用法 (3)
2 覆盖系统properties文件 (3)
2.1 直接覆盖源文件 (3)
2.2 插件方式覆盖 (3)
3 应用程序和组成部分 (10)
3.1 应用程序 (10)
3.1.1 为应用程序Eclipse-plug创建工程 (11)
3.1.2 增加扩展点com.teamcenter.rac.aifrcp.application (12)
3.1.3 提供与语言相关的显示字符串 (14)
3.2 应用程序菜单 (15)
3.3 动作和命令处理 (16)
3.4 对话框 (17)
3.5 操作Operation (17)
1Registry的用法
Registry在整个Teamcenter rich client中有着重要的作用。
Teamcenter使用properties文件定义类的注册、图标、本地化语言(国际化语言)、查询顺序、外观、字体等等。
Teamcenter使用三种不同的properties文件来保存这些配置信息。
●主要文件
规律:文件名和包名的最后一段一样
作用:存放主要配置信息
举例:access.properties
●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
●导入Teamcenter已经定义的properties文件
improt=mon,mon.actions.actions
1.2 常见用法
●注册应用程序相关的菜单条
tc2007test.test.MENUBAR=tc2007test.TestMenu
●注册应用程序相关的菜单条
tc2007test.test.TOOLBAR=tc2007test.TestToolBar
●注册应用程序相关的主面版
tc2007test.test.PANEL=tc2007test.TestPanel
●定义应用程序标题
tc2007test.test.TITLE=TESTApp
●定义菜单的名称
=Test
2覆盖系统properties文件
我们可以通过覆盖系统properties文件中定义的值来完成部分客户化工作。
覆盖系统properties文件的方法有两种:
●直接覆盖源文件
●插件方式覆盖
2.1 直接覆盖源文件
可以通过下面的步骤完成该操作
●解压缩系统jar文件
●找到并修改其中的properties文件
●压缩回jar
2.2 插件方式覆盖
下面举一个例子来说明这个方法的操作过程。
例子的目的是完成PDF浏览工具的嵌入封装。
●要求:
安装Embedded Viewer模块
安装Pdf浏览工具Adobe Acrobat Reader
●打开Eclipse
●新建一个插件项目
1.出现对话框,选择Plug-in Project后继续
2.输入Project Name例如PDFViewer后继续
3.出现如下画面,确认并继续
4.出现如下画面,去掉默认选中的勾:“Create a plug-in using one of the templates”后完成 添加依赖的插件7个
切换到Dependencies标签页,点击添加,选中下面的插件
mon
com.teamcenter.rac.external
com.teamcenter.rac.kernel
com.teamcenter.rac.neva
com.teamcenter.rac.tcapps
com.teamcenter.rac.util
com.teamcenter.rac.aifrcp
增加扩展点com.teamcenter.rac.util.tc_properties
切换到Extensions标签页
1.点击Add…
2.选中并双击com.teamcenter.rac.util.tc_properties对话框自动关闭
3.回到Extensions标签页
删除“.plugin_properties1”并点击保存,确认修改结果如下:
●在MENIFEST.MF文件中添加一行配置
在“Bundle-Activator: pdfviewer.Activator”行下增加一行
Eclipse-RegisterBuddy: com.teamcenter.rac.util
●新建包用来存放覆盖系统文件
在src文件夹下新建包“mon.tcviewer”
(过程略)
●新建需要覆盖的_user.properties文件
1.在包“mon.tcviewer”下新建文件tcviewer_user.properties
(过程略)
2.在新建的tcviewer_user.properties文件中输入下面内容:
DatasetViewer.TYPES=DirectModel,DirectModelMotion,DirectModelMarkup,DirectModel3 DMarkup,SnapShotViewData,Sheet,DrawingSheet,Image,Markup,Item,ItemRevision,BOMVi ew
Revision,MSWord,MSWordX,FullText,MSExcel,MSExcelX,Text,MSPowerPoint,MSPowerPoint X,WPPSession,NetworkImage,TCPublishingPage,TCPublishingTechnicalPortfolio,PCBCir cuit,PCBPanel,PCBFATF,PCBMarkup,SE Part,SE Draft,SE SheetMetal,PDF,Photoshop
NevaIEViewer.VIEWSEARCHORDER=Text,word,excel,powerpoint,PDF_Reference,Photoshop PDF.VIEWPANEL=mon.tcviewer.NevaIEViewer
Photoshop.VIEWPANEL=mon.tcviewer.NevaIEViewer
3.保存所有文件
●配置需要导出的包
1. 切换到Runtime标签页
2. 添加导出包
●导出该工程到portal目录
(过程略)
●使用BMIDE配置PDF数据集和命名的引用(复习)
1.打开BMIDE在新建一个工程或使用一个现有工程
(过程略)
2.创建工具
a.工具名称是PDF_Tool
b.输入输出设备格式都是BINARY
c.MIME/Type值为application/pdf
3.创建数据集类型
a.数据集类型名称是PDF
b.命名的引用名称是PDF_Reference
c.文件类型是*.pdf
d.文件格式是BINARY
e.定义打开动作(过程略)
4.Deploy到本机测试服务器
(过程略)
3应用程序和组成部分
3.1 应用程序
Teamcenter的应用程序,通常会有一下几个组成部分(组件):主应用程序、菜单、工具栏、主面版。
我们需要通过properties文件来注册与应用程序相关的其他组成部分,这种注册方法是Teamcenter Rich Client开发所特有的方式。
在一个应用程序中,甚至是一个包中,都会有如下的属性文件结构:
应用程序的加载是按照一个固定的顺序进行的,应用程序和它相关的组件在的初始化过程:
下面介绍一下创建应用程序的一般过程。
3.1.1为应用程序Eclipse-plug创建工程
●新建Eclipse-plug工程(过程略)
●添加依赖的插件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是在插件项目中唯一标示插件的字符串
是应用程序的显示名称,可以直接填入中文
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弹出创建对话框
2.填写“包位置”和“类名”
3.确定完成,创建该应用程序类
package tc2007test;
import com.teamcenter.rac.aif.AIFDesktop;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
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);
}
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=\u6D4B\u8BD5App
注意,这里的中文需要转换成Unicode内码。
当这个步骤完成后,一个空的应用程序就创建完成了。
我们可以写一段程序来测试运行效果。
在Eclipse的运行控制台可以看到打印的字符串。
3.2 应用程序菜单
在Teamcenter中,每个不同的应用程序都有各自独立的菜单。
所以我们需要为应用程序提供管理菜单的一个Java类。
我们定义的菜单类一般继承系统的AbstractTCApplicationMenuBar类。
这个类为我们提供了一些基础的菜单和菜单里面的菜单项。
●把菜单类注册到应用程序
在tc2007test.properties文件中加入
tc2007test.test.MENUBAR=tc2007test.TestMenu
●导入必要的系统包
在tc2007test.properties文件中加入
import=mon,mon.actions.actions
●为菜单提供相应的显示字符串
如果在中文环境修改tc2007test_locale_zh_CN.properties
=\u6D4B\u8BD5
如果是英文环境修改tc2007test_locale.properties(只有英文不带后缀)
=Test
●在菜单类中加入下面代码来初始化菜单
package tc2007test;
import javax.swing.JMenu;
import com.teamcenter.rac.aif.AbstractAIFUIApplication;
import mon.AbstractTCApplicationMenuBar;
public class TestMenu extends AbstractTCApplicationMenuBar {
private static final long serialVersionUID = 1L;
protected JMenu testMenu;
public TestMenu(AbstractAIFUIApplication app) {
super(app);
testMenu = new JMenu(registry.getString(""));
testMenu.setMnemonic(registry.getChar("testMenu.MNEMONIC", 'P'));
addMenuItem(testMenu, "cusActionString");
add(testMenu);
}
public void suppressMenus()
{
}
}
3.3 动作和命令处理
当菜单项被点下,就会出发一个动作。
所以我们需要为每个菜单项提供一个动作(Action)处理类。
所有这样的动作处理类必需包含在同一个包下。
s
同时,我们可以看到,与这个动作相关的所有配置也都包含在这个包下。
●创建动作类
父类是AbstractAIFAction
●动作关联到菜单项
在actions.properties文件中加入
cusActionString=tc2007test.actions.CusAction
cusActionString.ICON=images/cus_16.png
●动作相关的文字显示
●创建命令类
父类是AbstractAIFCommand
●在代码中调用命令类
●把动作类关联到命令类
MAND=cusCmdString
cusCmdString=mands.cus.CusCommand
●命令类相关文字显示
●命令类如果需要对话框,需要在代码中创建对话框
●在应用程序properties文件中import定义的包actions等
3.4 对话框
3.5 操作Operation
AbstractAIFOperation类是Teamcenter为我们提供的支持多线程的抽象操作类。
我们可以把操作对象排列在队列中执行。
执行语法:
CusOperation c = new CusOperation(session);
session.queueOperation(c);
在Operation执行过程中,软中断按钮会变亮。
我们可以随时中断该操作。
3.6 Kernel API
Kernel API为我们提供了与服务相关的功能函数使用接口。
Kernel API的中心是TCSession类。
我们可以通过application对象或者component对象来获得应用程序运行时的TCSession类。
具体方法是getSession()。