在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

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