在windchill中的列表(如:在[首页]标签的下面[更新]页面)中有个[动作]栏位,点击此栏位中的[请参见动作]的

背景:

在windchill中的列表(如:在[首页]标签的下面[更新]页面)中有个[动作]栏位,点击此栏位中的[请参见动作]的 链接会另外打开对应物件的[动作功能列表](more.jsp),在打开的页面中有很多功能链接

 

问题:

如何在打开零件的[动作功能列表]页面添加自己的动作

 

分析:

1.动态显示[动作功能列表]页面时参与的文件

  1)%Windchill_Home%/codebase/actions.xml 此文件中定义了多个动作(可理解为定义了页面中链接是如何响应用户的)

  2)%Windchill_Home%/codebase/action.properties 此文件为资源文件 (还有其他语言的资源文件如:相同目录下台湾资源文件  action_zh_TW.properties,此处就不一一列举)

  3)%Windchill_Home%/codebase/actionmodels.xml 此文件中为JSP框架定义了多个动作模型,每个模型中都定义了有哪些动作

  4)%Windchill_Home%/codebase/netmarkets/jsp/object/more.jsp 此为访问[动作功能列表]的jsp

 

2.各文件之间的关系 actions.xml中每个动作在页面上显示的链接名和鼠标悬浮时的提示信息在action.properties等多语言资源 中定义,actionsmodels.xml中模型中定义的动作都引自actions.xml中定义的动作,more.jsp通过帮助类获得 actionsmodels.xml中的特定动作模型,并显示动作在页面中

3.文件actions.xml简述

  1)代码片段如下:

 2)代码片段介绍:

  1)<listtofactions>:actions.xml文件根元素为listtofactions.

  2)<objecttype>:为listtofactions子元素,每个action都必须定义在objecttype元素中.

      属性: (1)name属性是使用此objecttype时的别名,

              (2)class属性是设定所属actions对什么类型的物件可见.

  3)<action>:为objecttype子元素,定义我们的动作.

      属性: (1)name属性是使用此action时的别名,

              (2)checkaccess属性是是否在接到请求时,检查此动作请求者对此物件的权限

              (3)renderType属性是指定如何响应请求,当不设定时则将请求转发至:

                   http://hostname/webapp/netmarkets/jsp/objecttype/action.jsp
                   如上代码片段,请求转发至:
                    http://hostname/webapp/netmarkets/jsp/site/view.jsp
                   此属性值可为:
                          GENERAL:是可以转发指定的jsp页面,例如:

                           
                          那么执行的URL就是:
                          http://hostname/webapp/wtcore/jsp/customizedAction.jsp
                          对应的jsp文件在%Windchill_Home%/codebase/wtcore/jsp/customizedAction.jsp下.

                          GENERAL_WITH_CONTEXT:是与GENERAL类似,不同的是GENERAL_WITH_CONTEXT将会在上下文中包含对象

                                                                    oid,

      注意:此属性在Windchill8版本中有,在windchill7版本没有此属性 PDM:此为执行template processing,

             例如: 

                  

             则我们就有注册如下的URLActionDelegate:

wt.services/svc/default/wt.enterprise.URLActionDelegate/CREATEDOCUMENT1/java.lang.Object/0=com.ptc.windchill.pdmlink.doc.server.processors .CreateDocumentURLActionDelegate/duplicate

             注意:<action>的name属于和其子元素<command>的method属性必需一样,
             其中<command>的class属性与注册的URLActionDelegate指定的类型一致,此处没有设定
             则取默认值"java.lang.Object"它与
              ...CREATEDOCUMENT1/java.lang.Object/0..中的"java.lang.Object"对应.

             举例如下: wt.services/svc/default/wt.enterprise.URLActionDelegate/list2 /wt.pdmlink.PDMLinkProduct/0=com.ptc.windchill.pdmlink.templateutil.server .processors.DefaultProjectLinkURLActionDelegate/duplicate 

             则action设定如下

wt.services/svc/default/wt.enterprise.URLActionDelegate/list2 /wt.pdmlink.PDMLinkProduct/0=com.ptc.windchill.pdmlink.templateutil.server .processors.DefaultProjectLinkURLActionDelegate/duplicate

 

4.文件action.properties简述

在此资源文件中,key的命名规则为<objecttype>.<action>,例如上面片段key为:

  site.view.description=Custom Built Page

  site.view.tooltip=Custom Built Page

注意此处必须将系统上线后需要的语言类别的资源全部设定,不然在特定语言下将不会显示此动作链接
 
5.文件actionmodels.xml简述

 在此文件中是设定model拥有的action,如下:
  

 其中<model>子元素<action>的属性name值与action.xml中<action>元素属性name对应,
 <model>子元素<action>的属性type值与action.xml中<objecttype>元素属性name对应

 

问题解决步骤:

1.建立自己的URLActionDelegate,并在properties文件中进行注册

2.在actions.xml文件中进行定义Action,参见分析3

3.在 action中各个语言的资源文件进行设定,参见分析4

4.在actionmodels.xml文件中name为"more pdm parts file row actions"的model元素下 添加action元素,参见分析5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章