package com.taover.codegenerate.model.bussiness; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Vector; import com.taover.codegenerate.db.TableColumn; public class ViewModel { private String webRootPath; private String controllerPathMap; //map结构如下 //name:"",easyui:"numberbox|validatebox|datetimebox",required:true|false,precision:0,min:0,max:32767,validType private List> fields = new ArrayList>(); private ViewModel(){} public static ViewModel createViewModel(String controllerPathMap, String webRootPath,Vector tableColumns){ ViewModel model = new ViewModel(); model.controllerPathMap = controllerPathMap; model.webRootPath = webRootPath; for(TableColumn column : tableColumns){ String fieldName = column.getColumBeanLName(); String fieldType = column.getJAVADataType(); Map columnMap = new HashMap(); columnMap.put("name", fieldName); if("Byte|Long|Integer|Short".indexOf(fieldType) != -1){ columnMap.put("easyui", "numberbox"); columnMap.put("attr", " precision=\"0\" "); }else if("Float|Double".indexOf(fieldType) != -1){ columnMap.put("easyui", "numberbox"); columnMap.put("attr", " precision=\"2\" "); }else if("java.util.Date|java.sql.Time|java.sql.Timestamp".indexOf(fieldType) != -1){ columnMap.put("easyui", "datetimebox"); columnMap.put("attr", ""); }else{ columnMap.put("easyui", "validatebox"); columnMap.put("attr", " validType=\"length[0,"+column.getColumnSize()+"]\""); } if(!column.isNullable()){ columnMap.put("required", " required=\"true\" "); } String remarks = column.getRemarks(); String splitStr = ":"; if(remarks.contains(":")){ splitStr = ":"; } String remarkPart[] = remarks.split(splitStr); if(remarkPart.length > 0){ columnMap.put("cnName", remarkPart[0]); }else{ columnMap.put("cnName", fieldName); } model.fields.add(columnMap); } return model; } public String getControllerPathMap() { return controllerPathMap; } public void setControllerPathMap(String controllerPathMap) { this.controllerPathMap = controllerPathMap; } public List> getFields() { return fields; } public void setColumns(List> fields) { this.fields = fields; } }