yg-ecp詳細(xì)設(shè)計(jì)說(shuō)明書(shū)vo高級(jí)屬性設(shè)置_第1頁(yè)
yg-ecp詳細(xì)設(shè)計(jì)說(shuō)明書(shū)vo高級(jí)屬性設(shè)置_第2頁(yè)
yg-ecp詳細(xì)設(shè)計(jì)說(shuō)明書(shū)vo高級(jí)屬性設(shè)置_第3頁(yè)
yg-ecp詳細(xì)設(shè)計(jì)說(shuō)明書(shū)vo高級(jí)屬性設(shè)置_第4頁(yè)
yg-ecp詳細(xì)設(shè)計(jì)說(shuō)明書(shū)vo高級(jí)屬性設(shè)置_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

1、VO 高級(jí)屬性設(shè)置詳細(xì)設(shè)計(jì)說(shuō)明書(shū)二一三年五月文檔修訂序號(hào)版本號(hào)修訂日期修訂概述修訂人人備注目錄1 引言文檔目的1文檔范圍1預(yù)期讀者1文檔要求1術(shù)語(yǔ)和縮略語(yǔ)1參考資料1VO 高級(jí)屬性設(shè)置總體概述1VO 高級(jí)屬性編輯界面功能描述2關(guān)鍵設(shè)計(jì)點(diǎn)6功能關(guān)鍵實(shí)現(xiàn)83 VO 模型屬性設(shè)置信息緩存功能描述16關(guān)鍵設(shè)計(jì)點(diǎn)18功能關(guān)鍵實(shí)現(xiàn)184 VO 元模型文件生成功能描述25關(guān)鍵設(shè)計(jì)點(diǎn)28功能關(guān)鍵實(shí)現(xiàn)285 附錄321 引言1.1 文檔目的說(shuō)明編寫(xiě)這份設(shè)計(jì)書(shū)的目的。1.2 文檔范圍這個(gè)文檔內(nèi)容包含的范圍。1.3

2、 預(yù)期讀者預(yù)期的讀者和有關(guān)閱讀建議。1.4 文檔要求請(qǐng)?jiān)谶@里給出當(dāng)前文檔的要求。1.5 術(shù)語(yǔ)和縮略語(yǔ)描述與該系統(tǒng)相關(guān)的術(shù)語(yǔ)與縮略語(yǔ)。表 1-1 本文使用的縮略語(yǔ)和術(shù)語(yǔ)1.6 參考資料列出有關(guān)的參考文件,如:本項(xiàng)目的經(jīng)核準(zhǔn)的計(jì)劃任務(wù)書(shū)或合同、機(jī)關(guān)的批文;屬于本項(xiàng)目的其他已文件;本文件中各處的文件、資料,包括所要用到的開(kāi)發(fā)標(biāo)準(zhǔn)。1 VO 高級(jí)屬性設(shè)置總體概述元模型項(xiàng)目高級(jí)屬性設(shè)置,需要在代碼向?qū)傻?VO 模型上增加高級(jí)屬性進(jìn)行設(shè)置。高級(jí)屬性設(shè)置包括 VO 元模型的相關(guān)屬性設(shè)置,在完成 VO 模型的創(chuàng)建的創(chuàng)建后,術(shù)語(yǔ)/縮略語(yǔ)全 稱說(shuō) 明在模型高級(jí)屬性中設(shè)置元模型項(xiàng)目屬性并保存到對(duì)應(yīng)配置文件(.m

3、dmx)括:能主要包VO 高級(jí)屬性編輯界面VO 模型屬性設(shè)置信息緩存VO 元模型文件生成2VO 高級(jí)屬性編輯界面2.1 功能描述通過(guò) VO 設(shè)置界面,可以對(duì) VO 屬性進(jìn)行設(shè)置(添加,刪除,高級(jí)設(shè)置等).界面設(shè)計(jì)如下:術(shù)語(yǔ)描述VO 模型元模型視圖模型或者值模型,與客戶端進(jìn)行數(shù)據(jù)交互的數(shù)據(jù)模型。一套完整的對(duì)象描述結(jié)構(gòu),用于對(duì)數(shù)據(jù)模型的結(jié)構(gòu)進(jìn)行描述針對(duì) VO 屬性列表中的屬性,提高了高級(jí)屬性設(shè)置界面,對(duì) VO 顯示屬性進(jìn)行設(shè)置,界面如下:屬性說(shuō)明如下:數(shù)據(jù)字段屬性類(lèi)型元數(shù)據(jù)字段屬性元數(shù)據(jù)字段標(biāo)題說(shuō)明名稱字符串name名稱帶出基本屬性中已設(shè)置的顯示名稱字符串caption標(biāo)題帶出基本屬性中已設(shè)置的長(zhǎng)

4、度數(shù)值length項(xiàng)目長(zhǎng)度對(duì)應(yīng) PO 模型此屬性精度數(shù)值scale項(xiàng)目精度對(duì)應(yīng) PO 模型此屬性默認(rèn)值字符串defaultValue默認(rèn)值對(duì)應(yīng) PO 模型此【功能規(guī)則】1.2.3.顯示方式:直接輸入;下拉選擇;彈出選擇;嵌入;只讀;項(xiàng)目狀態(tài):正常、停用;顯示格式:由用戶輸入;固定標(biāo)志:普通、固定、鍵值、標(biāo)題。4.5.長(zhǎng)度/精度/默認(rèn)值:由導(dǎo)入PO 模型對(duì)應(yīng)屬性讀入。屬性類(lèi)型字符串daype數(shù)據(jù)類(lèi)型根據(jù) VO 屬性類(lèi)型有不同的類(lèi)型進(jìn)行對(duì)應(yīng)顯示方式枚舉displayType顯示方式Input, Select, Popup, Embed, Readonly,對(duì)應(yīng)直接輸入,下拉選擇,彈出選擇,嵌入,只

5、讀輸入器字符串inputer項(xiàng)目輸入器選擇數(shù)據(jù)類(lèi)型選擇 后,可以根據(jù)需要選擇項(xiàng)目提供的多種輸入器。顯示格式字符串format對(duì)應(yīng)數(shù)據(jù)類(lèi)型的顯示格式如日期類(lèi)型的顯示格式:yyyy-mm-dd數(shù)據(jù)源類(lèi)型枚舉dataSource數(shù)據(jù)源類(lèi)型Input,RefProper ty,Expres,A utoCode,對(duì)應(yīng) 直接輸入,屬性,表達(dá)式,自動(dòng)編碼項(xiàng)目狀態(tài)枚舉se項(xiàng)目狀態(tài)項(xiàng)目狀態(tài)的取值為:Normal, Stoped,分別對(duì)應(yīng)“正常”和“停 用”固定標(biāo)志枚舉fixFlag項(xiàng)目的固定標(biāo)志固定標(biāo)志的取值為:Normal, Fix, ernal, Key,Caption;分別對(duì)應(yīng) 0-4數(shù)據(jù)正則表達(dá)式字符串

6、dataExpressio n數(shù)據(jù)的正則表達(dá)式正則表達(dá)式的格式允許多選boolea nmultiValue是否允許多選如果是數(shù)組,則 multiValue 為 true,否則為 false6.數(shù)據(jù)源類(lèi)型:數(shù)據(jù)源類(lèi)型如果設(shè)置的是“表達(dá)式”,直接彈出調(diào)用取數(shù)/運(yùn)算表達(dá)式設(shè)置界面。7.輸入器:根據(jù)選擇的數(shù) 據(jù)模型,ponent.ef.service/plugin.xml 文件中的對(duì)應(yīng)數(shù)據(jù)類(lèi)型下inputer 節(jié)點(diǎn)輸入器caption 名稱供選擇。2.2關(guān)鍵設(shè)計(jì)點(diǎn)1.VO 高級(jí)屬性中的類(lèi)型與 VO 屬性列表中的數(shù)據(jù)類(lèi)型存在著對(duì)應(yīng)關(guān)系,不同的數(shù)據(jù)類(lèi)型可選的類(lèi)型也不一致,關(guān)系對(duì)應(yīng)規(guī)則如下:2.VO 屬性列

7、表中的屬性有一部分額外的屬性對(duì)應(yīng)生成 mdmx 文件時(shí)需要添加到文件信息當(dāng)中,規(guī)則如下:類(lèi)型說(shuō)明如下:數(shù)據(jù)字段屬性類(lèi)型元數(shù)據(jù)字段屬性元數(shù)據(jù)字段標(biāo)題說(shuō)明數(shù)據(jù)類(lèi)型可選顯示類(lèi)型說(shuō)明String字符串、管理對(duì)象、枚舉、枚舉類(lèi)型、業(yè)務(wù)分類(lèi)、對(duì)象分類(lèi)、業(yè)務(wù)單據(jù)、單據(jù)類(lèi)型、 數(shù)據(jù)類(lèi)型、條形碼、通用實(shí)體、通用表實(shí)體、科目、子表、單位代碼、 值類(lèi)型Byte,Short,Long,Decimal數(shù)值Date日期Java 某枚舉類(lèi)系統(tǒng)枚舉Java 類(lèi)字符串、管理對(duì)象、枚舉、枚舉類(lèi)型、業(yè)務(wù)分類(lèi)、對(duì)象分類(lèi)、業(yè)務(wù)單據(jù)、單據(jù)類(lèi)型、 數(shù)據(jù)類(lèi)型、條形碼、通用實(shí)體、通用表實(shí)體、科目、子表、單位代碼、 值類(lèi)型Blob,Clob文件

8、/圖像【功能規(guī)則】1.類(lèi)型: 項(xiàng)目的數(shù)據(jù)類(lèi)型除了是基本類(lèi)型以外,還可能是類(lèi)型,比如單,實(shí)際為一個(gè)引據(jù)中有一個(gè)屬性為dxid,的是管理對(duì)象類(lèi)型的ID,類(lèi)型為用類(lèi)型,需要描述信息,如的是哪個(gè)對(duì)象類(lèi)型等,常用的類(lèi)型有枚舉、對(duì)象、分類(lèi)等。如果設(shè)置了多表關(guān)聯(lián),系統(tǒng)從數(shù)據(jù)模型的關(guān)聯(lián)設(shè)置中下表格的屬性,寫(xiě)到refTypeValues 中。如2. 數(shù)據(jù)類(lèi)型為“復(fù)合類(lèi)型”的才需要設(shè)置類(lèi)型。3.類(lèi)型選擇完畢的,表格對(duì)應(yīng)屬性值標(biāo)識(shí)“已設(shè)置”,可點(diǎn)擊彈出查看。屬性說(shuō)明如下:類(lèi)型展示界面如下:屬性的實(shí)體類(lèi)型是系統(tǒng)枚舉、枚舉、管理對(duì)象、業(yè)務(wù)單據(jù)、對(duì)象分類(lèi)、業(yè)務(wù)分類(lèi)等復(fù)合類(lèi)型的,需要彈出選擇控件選擇管理對(duì)象類(lèi)型、業(yè)務(wù)單據(jù)類(lèi)

9、型或者通用實(shí)體類(lèi)型,目前只支持手工輸入復(fù)合類(lèi)型對(duì)應(yīng)的typeId 實(shí)現(xiàn);復(fù)合類(lèi)型clatypeId系統(tǒng)枚舉sysenum選擇的 java 類(lèi)路徑枚舉enum輸入管理對(duì)象GLDX輸入業(yè)務(wù)單據(jù)gris.ywdj輸入對(duì)象分類(lèi)dxfl輸入業(yè)務(wù)分類(lèi)ywfl輸入數(shù)據(jù)字段屬性類(lèi)型元數(shù)據(jù)字段屬性元數(shù)據(jù)字段標(biāo)題說(shuō)明類(lèi)別Strin gcla類(lèi)別ID類(lèi)型Strin gtypeId類(lèi)型ID表名Strin gtableName表名的屬性Strin grefProperty屬性的標(biāo)題字段Strin grefCaption的標(biāo)題類(lèi)型枚舉refTypeValues類(lèi)型只有復(fù)合類(lèi)型才需要設(shè)置 類(lèi)型。2.3 功能關(guān)鍵實(shí)現(xiàn)VO 高

10、級(jí)屬性編輯工廠:/*VO高級(jí)屬性編輯工廠類(lèi)*author zhongshi (to:zho)*/public class ECPViewFieldTabbedFactory extends CompoundControlFactory implementsIValueChangeListener private StringPropertyEditor columnNameEditor; private StringPropertyEditor columnDisplayNameEditor; privateegropertyEditor columnLengthEditor; private

11、egropertyEditor columnPreciEditor; private StringPropertyEditor defaultValueEditor;privatePropertyEditor isMultiEditor;private ComboPropertyEditor viewTypeEditor; private ComboPropertyEditor viewModeEditor; private StringPropertyEditor viewFormatEditor; private ComboPropertyEditor viewInputerEditor;

12、 private ComboPropertyEditor dataSourceEditor; private ComboPropertyEditor viewSeEditor; private ComboPropertyEditor viewFixFlagEditor; private StringPropertyEditor dataExpresEditor;private ObjectEditor basicEditor;private ObjectEditor viewEditor;private PropertySheetViewerEx propertySheetViewer;pri

13、vate ECPViewMviewM;privateMappropertyEntryDescriptorMap=new HashMap();private Map valuereitory;private PropertyElement propertyElement;private String propertyType = ;private String Ref_Entity_View_Table=table;private String Ref_Entity_View_Entity=ecp.tableentity;privateisEntPojo ;public ECPViewField

14、TabbedFactory(Map valuereitory) this.valuereitory = valuereitory;String type=(String) valuereitory.get(IVMSConstant.PROPERTY_TYPE);isEntPojo = type.equals(IVMSConstant.PROPERTY_ENTPOJO);init();private void init() .private void initEntPojoViewM.() private void initColumnViewM() .Overrideprotected Con

15、trol doCreateControl(Comite parent, UIDefinition uiDefinition) Comiteite = new Comite(parent, uiDefinition.getStyle();ite.setLayout(new GridLayout();ite.setLayoutData(new GridData(GridData.FILL_BOTH);if(!isEntPojo)Group basicGroup = new Group(basicGroup.setText(EcpViewMite, SWT.NONE);Message.GrpupBa

16、sicProperty);basicGroup.setLayout(new GridLayout(1,false);GridDatabasicGridData = new GridData(GridData.FILL_HORIZONTAL); basicGroup.setLayoutData(basicGridData);basicEditor=createBasicEditor();basicEditor.seement(this.valuereitory);iteuiDefinition.getStyle(), basicEditor);ite=newite(basicGroup,ite.

17、setLayoutData(new GridData(GridData.FILL_BOTH);Group viewGroup = new Group( viewGroup.setText(EcpViewMite, SWT.NONE);Message.GroupViewProperty);viewGroup.setLayout(new GridLayout(1,false);GridDataviewGridData = new GridData(GridData.FILL_HORIZONTAL); viewGroup.setLayoutData(viewGridData);viewEditor=

18、createViewEditor();viewEditor.seement(this.valuereitory);iteuiDefinition.getStyle(), viewEditor);ite=newite(viewGroup,ite.setLayoutData(new GridData(GridData.FILL_BOTH);/屬性列表createPropertySheetViewer(ite);returnite;private void createPropertySheetViewer(Comite comite) Comite parent = new Comite(comi

19、te, SWT.NONE|SWT.BORDER);parent.setLayout(new GridLayout(); parent.setLayoutData(new GridData(GridData.FILL_BOTH); propertySheetViewer = new PropertySheetViewerEx(parent); GridData data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 4;data.minimumHeight=200; propertySheetViewer.getControl

20、().setLayoutData(data); PropertySheetEntry propertySheetEntry=new PropertySheetEntry(); propertySheetEntry.setPropertySourceProvider(newECPViewPropertySourceProvider(); propertySheetViewer.setRootEntry(propertySheetEntry); propertySheetViewer.setSorter(new ECPViewPropertySheetSorter();propertySheetV

21、iewer.setInput(new ObjectpropertyEntryDescriptorMap);propertySheetViewer.addSelectionChangedListener(new ISelectionChangedListener() Overridepublic void selectionChanged(SelectionChangedEvent event) formEntryDescriptorMap();fireValueChanged(null););private ObjectEditor createViewEditor() .return obj

22、ectEditor;private ObjectEditor createBasicEditor() ObjectEditor objectEditor = new ObjectEditor();.return objectEditor;public void refreshPropertySheetViewer() if(propertySheetViewer = null | pertyEntryDescriptorMap = null) return;propertySheetViewer.setInput(new Object pertyEntryDes

23、criptorMap );if(propertySheetViewer.getRootEntry() = null) propertySheetViewer.setRootEntry(new PropertySheetEntry();propertySheetViewer.refresh();Overridepublic void valueChange(ValueChangeEvent r_Event) .Overridepublic void save() super.save();if( basicEditor != null) basicEditor.save();if( viewEd

24、itor != null) viewEditor.save();formEntryDescriptorMap();if(isEntPojo)VO 顯示模型管理類(lèi):/*VO顯示模型管理類(lèi)*author zhongshi (to:zho)*/public class ECPViewMManager implements IViewMManager Overridepublic CompoundControlFactory getFactory(Map map) /獲取VO高級(jí)屬性編輯工廠.Overridepublic void initViewFieldControl(IControlFactor

25、y controlFactory, Caller messageCaller) saveEntPojo();elsesaveColumnProperty();private void saveEntPojo() EntPojoProperty entPojoProperty=(EntPojoProperty) propertyElement;ViewFieldEditfieldEdit=(ViewField) entPojoProperty.getEntViewField().get(0).getFieldEdit();ECPViewMHelper.assemblyViewMToViewFie

26、ld(viewM,fieldEdit); (ViewField) entPojoProperty.getEntViewField().get(0).setFieldEdit(fieldEdit);private void saveColumnProperty() ColumnProperty columnProperty=(ColumnProperty) propertyElement; ViewFieldEdit fieldEdit = columnProperty.getViewField().getFieldEdit(); ECPViewMHelper.assemblyViewMToVi

27、ewField(viewM,fieldEdit); columnProperty.getViewField().setFieldEdit(fieldEdit);.Overridepublic void assemblyViewMData(Map map, String showType) Object object =map.get(IDataSetConstants.OBJECT_EDITED);if(!(object instanceof PropertyElement)return;if(object instanceof ColumnProperty)ColumnProperty cl

28、mProperty = (ColumnProperty) object; clmProperty.setShowType(showType); iniViewField2NewColumnProperty(clmProperty);/當(dāng)列類(lèi)型發(fā)生變化時(shí),的顯示模型的變化,暫不需進(jìn)行實(shí)現(xiàn)Overridepublic void iniViewField2NewColumnProperty(ColumnProperty clmProperty) /新添加屬性初始化顯示模型.OverridepublicvoidinitViewField2NewEntPojoProperty(EntPojoProper

29、tyentPojoProperty,EntityElement refEntity) /.屬性初始化顯示模型Overridepublic void assemblyColumnPropViewFieldMap(Map map, ViewField field, inEntProp) /在上下文中添加顯示模型信息Overridepublic void assemblyEntPojoPropertyViewFieldMap(Map map, EntityElement refEntity, EntPojoProperty entPojoProperty) /在上下文中添加顯示模型信息Overrid

30、epublic void setColumnViewField(ColumnProperty editedClmProp, Map map) ViewField viewField = editedClmProp.getViewField();if(viewField!=null)ViewFieldEdit fieldEdit = viewField.getFieldEdit(); String showType = editedClmProp.getShowType();MapviewTypes=ECPViewInputerManager.getInstance().getViewTypeM

31、ap(showType);if(fieldEdit!=null & !viewTypes.containsKey(fieldEdit.getType().getName() iniViewField2NewColumnProperty(editedClmProp);elseiniViewField2NewColumnProperty(editedClmProp);private void initColumnProperty(ColumnProperty editedClmProp, Map map) /初始化VO屬性信息private void dosetEditwFieldValue(Co

32、lumnProperty editedClmProp,ViewField vmField, Map map, ViewFieldEdit vmFieldEdit) ECPViewMviewElement=(ECPViewM)map.get(IVMSConstant.VM_FIELD_VIEW_EOSTAGELEMENT);initColumnViewFieldEdit(editedClmProp, vmFieldEdit, viewElement);private void initColumnViewFieldEdit(ColumnProperty editedClmProp,ViewFie

33、ldEdit vmFieldEdit, ECPViewMif(viewElement = null) viewElementviewElement) =createDefaultViewM(vmFieldEdit,editedClmProp.getShowType();if(viewElement = null) return;ECPViewMHelper.assemblyViewMToViewField(viewElement,vmFieldEdit);private void initEntPojoViewFieldEdit(EntPojoProperty entPojoProperty,

34、 ViewFieldEdit vmFieldEdit, ECPViewMviewElement) if(viewElement = null)viewElement = createDefaultViewM(vmFieldEdit,entPojoProperty.getRefId();if(viewElement = null) return;if(viewElement.getViewInputer() = null) return;ECPViewMHelper.assemblyViewMToViewField(viewElement,vmFieldEdit);private void do

35、setViewFieldValue(ColumnProperty editedClmProp,ViewField vmField, Map map, ViewFieldView vmFieldView) Overridepublic void setEntViewField(EntPojoProperty entProp, Map map) /遠(yuǎn)光項(xiàng)目中,屬性不需要顯示屬性privateECPViewMcreateDefaultViewM(ViewFieldEditvmFieldEdit,String showType) ECPViewMviewM= new ECPViewM(); Strin

36、g viewType=vmFieldEdit.getName();viewM.setDaype(viewType); viewM.setReferenceType(false);String inputerName=ECPViewInputerManager.getInstance().getDefaultInputerName(viewType);ECPViewInputerviewInputer= ECPViewInputerManager.getInstance().getViewInputerByName(viewType, inputerName,showType);viewM.se

37、tViewInputer(viewInputer);return viewM;3 VO 模型屬性設(shè)置信息緩存3.1功能描述VO 高級(jí)屬性編輯工廠中顯示屬性的可選的配置信息,都需要通過(guò)*.dtx 文件獲提供.文件內(nèi)容得,通過(guò)如:.dtx 得到相應(yīng)的顯示屬性信息,.dtx 文件由服務(wù)開(kāi)發(fā)jcls:ponent.ef.service.m.EntityItemTypeVO,gid: c8c06b3af11d41d8a8e3afbdbb21aebc,name: date,caption: 日期,reftype: 0,sqllength: 0,sqlscale: 0,sqltype: DATE,desig

38、ners: ,inputers: name: default,caption: 日期選擇,code: ecp.ui.datafield.Datcker,protocol: 0,option:showOn: button,dateFormat: yy-mm-dd,showType: D,showTime: false,showButtonPanel: true,showOtherMonths: true,duration: ,name: timeSpiner,caption: 時(shí)間微調(diào),code: ecp.ui.datafield.TimeSpiner,3.2 關(guān)鍵設(shè)計(jì)點(diǎn)1.*.dtx 文件信息

39、內(nèi)容管理提供了相應(yīng)的管理工具類(lèi),管理工具類(lèi)在首次被調(diào)用時(shí),相應(yīng)的 dtx 文件信息,同時(shí)將得到的信息進(jìn)行緩存,保證不會(huì)多次讀尋找并取相同的文件造能問(wèn)題.2.*.dtx 文件信息內(nèi)容是 JSON 格式的信息,所以文件信息時(shí),需要依賴 JSON文件相關(guān)的 API3.3 功能關(guān)鍵實(shí)現(xiàn)*.dtx 文件信息內(nèi)容管理工具類(lèi)代碼實(shí)體如下:/*顯示模型信息管理類(lèi)*author zhongshi (to:zho)*/public class ECPViewInputerManager private sic ECPViewInputerManager INSTANCE;private sic String Fi

40、le_Exten = dtx;private sic String ConfigBundleId = ponent.ef.impl;protocol: 0,option:,prosors: ,translators: ,.private sic String ShowType_Java_Enum=java_enum;private sic String ShowType_Java_Other=java_other;private sic Map viewReferenceMap = new HashMap();private sic List itemTypeFiles =new ArrayL

41、ist();privatesicMapString,ListviewInputersMap=newHashMapString, List();privatesicPlatChangeListenlatChangeListener=newPlatChangeListener();/數(shù)據(jù)類(lèi)型與顯示類(lèi)型的對(duì)應(yīng)關(guān)系privatesicMapString,ListviewTypeLists=newHashMapString,List();/顯示類(lèi)型與顯示類(lèi)型顯示名稱的對(duì)應(yīng)關(guān)系private sic Map viewTypeNameMap = new HashMap();/String,Java類(lèi)字符串、

42、管理對(duì)象、枚舉、枚舉類(lèi)型、業(yè)務(wù)分類(lèi)、對(duì)象分類(lèi)、業(yè)務(wù)單據(jù)、單據(jù)類(lèi)型、類(lèi)型數(shù)據(jù)類(lèi)型、條形碼、通用實(shí)體、通用表實(shí)體、科目、子表、代碼、值List stringList = new ArrayList(); stringList.add(string);stringList.add(gldx); stringList.add(enum); stringList.add(enumlx); stringList.add(ywfl); stringList.add(dxfl); stringList.add(ywdj); stringList.add(ywdjlx); stringList.add(dayp

43、e); stringList.add(barcode); stringList.add(ecp.entity); stringList.add(ecp.tableentity); stringList.add(km); stringList.add(table); stringList.add(unitCode);stringList.add(ecp.reftype);viewTypeLists.put(String, stringList);viewTypeLists.put(ShowType_Java_Other , stringList);/Byte,Short, ,Bigeger,F(xiàn)l

44、oong,Double,Decimal-數(shù)值List numList = new ArrayList();numList.add(number);viewTypeLists.put(Byte, numList); viewTypeLists.put(Short, numList); viewTypeLists.put(, numList); viewTypeLists.put(Long, numList);viewTypeLists.put(Decimal, numList);/Date,Time,TimeSt- 日期List daist = new ArrayList();daist.add

45、(date);viewTypeLists.put(Date, daist);/Java某枚舉類(lèi)- 系統(tǒng)枚舉List sysenumList = new ArrayList();sysenumList.add(sysenum);viewTypeLists.put(ShowType_Java_Enum, sysenumList);/-ListList.add(List = new ArrayList(););viewTypeLists.put(,List);/BlobFile文件/圖像List blobList = new ArrayList(); blobList.add(blob);/Clob

46、File文件/圖像List clobList = new ArrayList(); clobList.add(clob);viewTypeLists.put(Blob, blobList);viewTypeLists.put(Clob, clobList);public sic ECPViewInputerManager getInstance()if(INSTANCE = null)INSTANCE = new ECPViewInputerManager(); Job.getJobManager().addJobChangeListenlatChangeListener);return IN

47、STANCE;publichasViewInputerConfiguration()if(itemTypeFiles.size() 0)return true;return false;public sic void reload()viewTypeNameMap.clear(); viewReferenceMap.clear(); viewInputersMap.clear(); itemTypeFiles.clear();INSTANCE = new ECPViewInputerManager();public ECPViewInputerManager() load();private

48、void load() initItemTypeFiles();for(IFileDelegate fileDelegate:itemTypeFiles) InputStream inputStream = null;try inputStream = fileDelegate.getContents();StringjsonContent=IOUtils.toString(inputStream,ECPViewMContent.View_Inputer_Encoding);JSONArray jsonArray=new JSONArray(jsonContent);for(i=0 ;ijso

49、nArray.length();i+)JSONObject viewTypeJson = jsonArray.getJSONObject(i);if(!viewTypeJson.has(ECPViewM continue;Content.View_Inputer_Name)StringviewTypeJson.getString(ECPViewMviewTypeNameContent.View_Inputer_Name);=viewTypeNameMap.put(viewTypeName,viewTypeJson.getString(ECPViewMContent.View_Inputer_C

50、aption);if(viewTypeJson.has(ECPViewMContent.View_Inputer_RefType)viewReferenceMap.put(viewTypeName,viewTypeJson.getString(ECPViewMContent.View_Inputer_RefType);JSONArrayviewTypeJson.getJSONArray(ECPViewMinputersContent.View_Inputer_Inputers);=List viewInputers=parserECPViewInputers(inputers);viewInp

51、utersMap.put(viewTypeName, viewInputers); catch (ResourceException e) e.prStackTrace(); catch (Exception e) e.prStackTrace(); finally IOUtils.closeQuietly(inputStream);privaist parserECPViewInputers(JSONArray inputers) List viewInputers=new ArrayList(); List nameList = new ArrayList();.return viewIn

52、puters;private void paserInputerJson(JSONObject inputerJson, ECPViewInputer viewInputer) .public Map getViewTypeMap(String showType) Map keyValue = new HashMap(); List viewTypes = viewTypeLists.get(showType); if(viewTypes = null)String type = parseOtherType(showType); viewTypes = viewTypeLists.get(t

53、ype);if(viewTypes = null) return keyValue;for(String key : viewTypes)if(viewTypeNameMap.containsKey(key)keyValue.put(key, viewTypeNameMap.get(key);return keyValue;private String parseOtherType(String showType) String type = ;.return type;public Map getInputersMapByViewType(String viewType) Map Input

54、ersMap=new HashMap(); List inputers=viewInputersMap.get(viewType); for(ECPViewInputer viewInputer: inputers)String inputerCaption = viewInputer.getInputerCaption();if(inputerCaption=null)inputerCaption = viewInputer.getInputerName();InputersMap.put(viewInputer.getInputerName(), inputerCaption);retur

55、n InputersMap;publicisReferenceViewType(String viewType)String refType=viewReferenceMap.get(viewType);if(refType!=null&1.equals(refType) return true;return false;public String getDefaultViewType(String showType)String viewType = ECPViewM.return viewType;Content.View_Inputer_DefaultType;public String

56、 getDefaultInputerName(String viewType) List list = viewInputersMap.get(viewType);.return ECPViewMContent.View_Inputer_Default;public ECPViewInputer getViewInputerByName(String viewType,String inputerName,String showType)List inputers=viewInputersMap.get(viewType);.return viewInputer;private JSONArr

57、ay getEnumData(IType enumType) throws JavaM JSONArray data = new JSONArray();.return data;Exception private ECPViewInputer cloneViewInputer(ECPViewInputer inputer) ECPViewInputer viewInputer=new ECPViewInputer();.return viewInputer;/* return*/private sic List initItemTypeFiles() List contributionPro

58、jects = new ArrayList();IContributionProjectconProject=EclipseRootDelegate.getInstance().getExternalECPContributionProject(ConfigBundleId);if(conProject != null) contributionProjects.add(conProject);IContributionProjectworkspaceProjects=EclipseRootDelegate.getInstance().getWorkspaceContributionProje

59、cts();for(IContributionProject project:workspaceProjects)if(EcpRuntimeHelper.isImplementContribution(project) contributionProjects.add(project);for(IContributionProject contributionProject:contributionProjects)IFolderDelegate itemTypeFolder=contributionProject.getMetaInfFolder().getFolder(ECPViewMER

60、_FILDDIR);Content.INPUT4 VO 元模型文件生成4.1 功能描述在完成 VO 模型的高級(jí)屬性的設(shè)置后,生成的元模型項(xiàng)目屬性將保存到對(duì)應(yīng)配置文件(.mdmx) 中,生成樣例如下:_ver:2.0,caption: 用戶信息表,cla: ecp.system,typeId:XTYHXX,for(IResourceDelegate delegate:itemTypeFolder.getChildren()if(delegate.getType()!=IFile.FILE) continue;IFileDelegate dtxFile = (IFileDelegate)deleg

溫馨提示

  • 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)論