內(nèi)容講義文稿_第1頁(yè)
內(nèi)容講義文稿_第2頁(yè)
內(nèi)容講義文稿_第3頁(yè)
內(nèi)容講義文稿_第4頁(yè)
內(nèi)容講義文稿_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

TeamcenterRichclientCustomizationTrainingfor10.1?Prerequisites TeamcenterApplicationAdministration ProficiencyinJavaprogramming ?Required Oracle Teamcenter (includingadministratorrichclient,onlinehelp,sample VisualStudio.NET JDK Eclipse TeamcenterRichClient-Server Teamcenterclientserver均可客戶 Serverlayer:服務(wù)器層,采IntegrationToolkit(ITKCBusinessBusinessModelerExercise 找出你的Teamcenter環(huán)境變 設(shè)置Teamcenter客戶化需要的環(huán)境變量與對(duì)應(yīng)的文件 使用BMIDE查看常見(jiàn)對(duì)象對(duì)應(yīng) MSG%TCLOCALIZATIONUSERXMLDATAUSERLIB%;%TCTMPKEEPSYSTEMTeamcenterClass attributes方method)是繼承到子 RichClientProgrammingEclipseEnvironment有有RichClientProgrammingEclipseEnvironment RichClientProgrammingEclipseEnvironment RichClient 輸入ProjectName(譬如 選擇產(chǎn)生 選擇此plug-in將傳遞到 選擇不要建立一個(gè)richclientRichClientProgrammingEclipseEnvironment RichClientRichClientProgrammingEclipseEnvironment?RichClientüü ülülüaüsü..tRichClientProgrammingEclipseEnvironment RichClientRichClient RuntherichclientfromInEclipse,chooseRun→DebugRichClient 選擇Plug-inDevelopment內(nèi)Deployableplug-insand可直接指定Teamcenterrichclient文件夾,Eclipse會(huì)自動(dòng)把jar放到plugins子文件 如果有修改properties文檔,必須執(zhí)行 two-tierrich four-tierrich利用WebApplicationManager打包richclientRichClientExercise TeamcenterUI boBox, ponent, ?eterHow-To獲得Teamcenter如果需要建立objects或是searchobjects,必須先獲取目前clientsession,我們可以通過(guò)以下的方式來(lái)獲TCSessionsession=一般在Handler通過(guò)如下方法獲取AIFDesktopaifdesktop=application=aifdesktop.getCurrentApplication();session=(TCSession)eterHow-Togetselecteditemsfrom從TeamcenterUI中,用戶點(diǎn)選Itemorformorfolder,我們可以通過(guò)以的方式得到選取的StructuredSelectioniselectionIteratorit=iselection.iterator();ponentContextcompContext= p= 也可以AIFDesktopaifdesktop=application=ponentContextaif[]=eterHow-To建立Item、Form、or ponentItemType=( ponentitem ID,REVID,ITEMTYPE,OBJECTNAME,DESC,通過(guò)以下的方式,可以獲取目前的sessionuser所屬的newstufffolder將objects粘貼在這個(gè)folderponentFoldertcfolder= 請(qǐng)建立一個(gè)CrtetmrtHaja求 bar加入一個(gè)選單,增列一個(gè)CreateItemCommand的功創(chuàng)建一個(gè)Item,請(qǐng)自行定義id、revid、object將新建立的item粘貼在newstuffeterHow-Toset/getobject’s在設(shè)定object’sproperties時(shí),必須注當(dāng)有大批量的properties要設(shè)定值時(shí),最好采取以下的TCFormProperty[]ps=f.getAllFormProperties();//Getthepropertytosetps[0].setStringValueData(“abc”);//Setsthevaluebutisnotsaved.ps[1].setStringValueData(“def”);//Setsthevaluebutisnotsaved.f.setTCProperties(ps);//Nowissavedtothedb當(dāng)properties數(shù)量不大時(shí),則可以采用以下的TCFormPropertyp=f.getFormTCProperty(“my_prop_name”);//Getpropertytosetp.setStringValue(“abc”);//Setit.Atthispointitissavedtothedb.eterHow-Toset/get針對(duì)不同型態(tài)的property,使用的method也會(huì)不一樣,例如string可以通過(guò)以下的方式來(lái)獲取或是設(shè)定屬eterHow-Tofinduserby可以用以下的方式來(lái)查詢已知的ponentUserTypetccUserType=( tccUser[0]=eterHow-To建立workflow通過(guò)以下的方式,建立一個(gè)已經(jīng)存在的workflowtemplate,并將item粘到target ponenttasktemplate = .create(PROCESSNAME,PROCESS,WORKFLOWTEMPLATE ponent[],Target:請(qǐng)建立一個(gè)SetAndGetPropsValue.java,并且可以達(dá)到以下的建立新的Item類,MyItem,并在MyItemRevision上定義兩種類型的性,一個(gè)是TypeReference(User),一個(gè)是String將 并布署到搜尋到一 ponentUser,并將這個(gè)object的reference存放到建的TypeReference屬性將自定的字符串a(chǎn)rray存放到新建的Stringarray修改objectname以及objectdescription,自定義設(shè)定必須使用setTCProperties做為最后 eterHow-Togetobjectsby建議都建議都使ponents,因?yàn)檫@個(gè)method不會(huì)受到preferenceps objectsreferenced,則可以用以下的 ps3 如果要抓取當(dāng)前對(duì)象被哪些對(duì)象使用,則可以用以下的 ps2 eterHow-Toexport/import將localfiles存放到Teamcenter,必須通過(guò)Dataset的形式 ,可以以下的方式來(lái)實(shí) "textobjtcDataset.setFiles(newString[]{FULLFILEFILEFORMAT,newString[]{"Plain"},FILE將Dataset中存放的files匯出到localdisk請(qǐng)建立兩個(gè)xrtFia和mFaImport兩個(gè)dataset,一個(gè)是Text一個(gè)是MSExcel,并將local到這兩個(gè)dataset將datasets粘貼到MyItemRevision點(diǎn)選MyItemRevision,并將粘貼在下面的Dataset匯出到localRichClientProgrammingCreatingaViewAddaCreateRichClientProgrammingCreatingaView續(xù)1SetactivepartCommandonlybeactivatedwithCustomDefineacustomview RichClientProgrammingCreatingaView續(xù)2 CreateaCustomView建立一個(gè)用戶點(diǎn)選一個(gè)object時(shí),可以通過(guò)getChild()打印出子對(duì)象在viewRichClientCreatingaRichClientApplicationandSendDefineaDefinea RichClientCreatingaRichClientApplicationandSendDefineaSendto Defineahandlerfor“Sendto <iterateRichClientCreatingaRichClientApplicationandSendDefineacommandfor“SendtoDefineadefinitionfor“SendtoExercise7(很少用到,了解建立一個(gè) 建立一個(gè)Sendto利用前述的步驟,定義出如下的RichClientProgrammingCustomizeShortcut Customizing Create Createacommandunder RichClientProgrammingCustomizetheToolbar 修改現(xiàn)有application的Toolbar(以MyTeamcenter示例 Create Createatoolbarunder Createacommandunderthe在myteamcenter窗口中建 立一個(gè)toolbar按鈕在實(shí)現(xiàn)以下的需彈出窗口顯示選擇的對(duì)如果沒(méi)有選擇對(duì)象則提示RichClientCustomizeFormandProperties XMLstylesheet AutomaticRichClientProgramming RichClientProgrammingFormsUsingXMLStyleSheet 式RichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy 信息,Viewer顯示所有屬性信 信息,Viewer顯示表單專有屬性信Properties 顯示Property 語(yǔ)n.RENDERINGn 顯示Summary 語(yǔ)

.REGISTEREDTO=.SUMMARYRENDERING=n n 顯示Form 語(yǔ)

.SUMMARY_REGISTEREDTO=n.FORMRENDERING n .FORM_REGISTEREDTO=RichClientFormsUsingXMLStyleSheet?RichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy?RichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy Summary/ViewerViewerXML XMLelements pageTitleformatfirstcolumnsecondcolumnpropertyseparatorall Display RichClientOneColumnTwo ThinClientOneRichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMyRichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy<propertyname="object_name"<propertyname="object_desc"<propertyname="owning_user"renderingHint="objectlink"modifiable="false"<propertyname="checked_out"<propertyname="checked_out_user"<propertyname="checked_out_date"<propertyname="checked_out_change_id"RichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy<propertyname="proj_assign_mod_date"<propertyname="project_ids"<pagetitle="All"<allRichClientFormsUsingXMLStyleSheet ModifytheSummary/ViewerpaneinMy 每一個(gè)renderinghint所使用的JavaBeansclass定義在 mon_<version>.jar的package renderinghintJavaBeansnDEFINITION=aaana rn_titled.DEFINITION=aana>RichClientFormsUsingXMLStyleSheet ViewerPaneRichClientForms 建立FormForm Twomethodsarerequiredtoimplementan RichClientForms Rendering RenderingContructor.Togetform loadRendering.ToinitializeformUI.Whenuserclickonviewtabordoubleclickonform,themethodiscalled. saveRendering.Tosaveformdata.WhenuserclickonSavebutton,themethodiscalled. setRenderingReadWrite.Toenable/disableUIcomponentsintheRichClientForms Rendering FormPanel ponentForm.getFormTCProperty(_”) get>Value() set>Value()> set>ValueData()eeDRichClientForms Rendering FormPanel package packageRichClientForms Rendering 程序框publicclassMyForm {publicMyForm {

}{}publicvoid{}}

RichClientForms Rendering 加publicvoidloadRendering()throws{setLayout(newVerticalLayout()); //布局管理器JPanelmainPanel=newJPanel(newPropertyLayout());projectId=newJTextField(26); serialNo=newmainPanel.add("1.1.right.center",newJLabel("ProjectID"));mainPanel.add("1.2.left.center",projectId);mainPanel.add("2.1.right.center",newJLabel("SerialNumber"));mainPanel.add("2.2.left.center",serialNo);add("unbound.bind",piProperty=form.getFormTCProperty(“project_id”);projectId.setText(piProperty.getStringValue());serialNo.setText(snProperty.getStringValue());}

RichClientForms Rendering 加publicvoid{piProperty.setStringValueData(projectId.getText());snProperty.setStringValueData(serialNo.getText());TCProperty[]ps=newTCProperty[2];ps[0]=ps[1]=}RichClientFormsUsingJavaBeans 建立FormForm 在packagecom.customer.forms建立Form的class ExtendJPanel implementthe ponentExercise?新增一個(gè)表單類型,并使用 Rendering方式顯示表屬?使用iTextField,iComboBox在form的UIRichClient plugin.xml->Runtime-RichClient HSSFWorkbookwb=new HSSFRowrow= HSSFCellStylestyle= HSSFCellcell=row.createCell((short) //Orange"foreground",foregroundbeingthefillforegroundnotthefont style= for(intx=0;x<1000;x++) //Createarowandputsomecellsinit.Rowsare0 for(inty=0;y<100;y++) cell=row.createCell((short) //Writetheoutputtoa FileOutputStreamfileOut=new RichClient //設(shè)置字體HSSFFontfont=設(shè)置字體大小;)設(shè)置字體名字;//設(shè)置樣式HSSFCellStylestyle=設(shè)置底邊框;設(shè)置底邊框顏色;設(shè)置左邊框;設(shè)置左邊框顏色;//設(shè)置右邊框設(shè)置右邊框顏色;//設(shè)置頂邊框設(shè)置頂邊框顏色;在樣式用應(yīng)用設(shè)置的字體設(shè)置自動(dòng)換行;設(shè)置水平對(duì)齊的樣式為居中對(duì)齊設(shè)置垂直對(duì)齊的樣式為居中對(duì)齊;Exercise?Myteamcenter中增加菜單生成?將選擇的對(duì)象的名稱輸入到excel?在home下生成excel數(shù)據(jù)集,并將excel文件導(dǎo)入到數(shù)據(jù)集RichClientProgramming TC9.1中的界面開(kāi)發(fā)將逐漸過(guò)渡到SWT üDisplay和Sü控件ü RichClientProgramming RichClientProgramming控件實(shí)例的構(gòu)造:Control(Controlparent,int???Labelname=newLabel(shel,?SWT.SNGLE單行?SWT.BORDER邊框?SWT.MULTI多行?控件的?最好不要手動(dòng)釋放一個(gè)控件,而應(yīng)該交由SWTRichClientProgramming?Button、Label、?? RichClientProgramming?標(biāo)準(zhǔn)的SWT布局FillLayout:在容器中以相同的大小單行或單列的排列組FormLayout(SWT2.0的新特性):通過(guò)定義組件四個(gè)邊的“粘貼”位置來(lái)排列組件, 的相對(duì)的組件可以父組件,也可以是同一容器的其它組üRichClientProgramming?布局實(shí)1.首先定義窗口和Display.getDefault().dispose();//移去平 啟動(dòng)畫(huà)display=new =newS (display,SWT.TITLE);FormLayoutlayout=newFormLayout();layout.marginHeight=10; .setText("用戶登錄oRichClientProgramming?布局實(shí)2.創(chuàng)建窗口上的元素,其中下面的兩個(gè)button由一個(gè)使用RowLayout組件來(lái)包容name=new ,name.setText("用戶名nameText=new ,SWT.SINGLE|pass=new , passText=newText(s ,SWT.SINGLE|SWT.BORDER);bottom=newComposite(s ,SWT.NONE);RowLayoutrowLayout=newRowLayout();rowLayout.justify=true;//justify定義組件在容器中分散開(kāi),效果類似于swing的RichClientProgramming?布局實(shí)2.創(chuàng)建窗口上的元素,其中下面的兩個(gè)button由一個(gè)使用RowLayout組件來(lái)包容name=new ,name.setText("用戶名nameText=new ,SWT.SINGLE|pass=new , passText=newText(s ,SWT.SINGLE|SWT.BORDER);bottom=newComposite(s ,SWT.NONE);RowLayoutrowLayout=newRowLayout();rowLayout.justify=true;//justify定義組件在容器中分散開(kāi),效果類似于swing的RichClientProgramming?布局實(shí)mes離是父組件ctr()高度t的(s)為。FormDatadata=newFormData();data.top=newFormAtta oRichClientProgramming?布局實(shí)定義name文本輸入的位置。它的頂邊在 的中心位置(這是正確的表達(dá),但程序是這樣解釋,事實(shí)上它的中心位置與在同一條水平線上),左邊me 的右邊有。data=newdata.top=newFormAtta ent(name,0,SWT.CENTER);data.left=newFormAtta ent(name,10,SWT.RIGHT);RichClientProgramming?布局實(shí)定義 的位置。它的頂邊距 的底邊有10個(gè)點(diǎn)數(shù)的移data=newdata.top=new RichClientProgramming?布局實(shí)定義pass文本輸入的位置。它的頂邊在 的中心位置(同),左邊與name文本框的左邊對(duì)data=newdata.top=newFormAtta ent(pass,0,SWT.CENTER);data.left=newFormAtta RichClientProgramming?布局實(shí)定義bottom組件的位置。它的頂邊距 的底邊15個(gè)點(diǎn)數(shù),左與 的左邊對(duì)齊,右邊與pass文本輸入的右邊對(duì)齊data=newdata.top=newFormAtta ent(pass,15,SWT.BOTTOM);data.left=newFormAtta ent(pass,0,SWT.LEFT);data.right=newFormAtta ?RichClientProgramming ?要自定 框,首先要繼承üpublicclassMyDialogextends?定 框大小,需要重寫(xiě)getInitialSize方§protectedPointgetInitialSize()§returnnew?定 框界面,需要重寫(xiě)createDialogArea方?自定 框按鈕.需要重寫(xiě)createButton和initializeBounds

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論