package com.taover.base.template.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.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); String cnName = fieldName; if(remarkPart.length > 0){ cnName = remarkPart[0]; } columnMap.put("cnName", cnName); String easyuiSearchDom = ""; String layuiSearchDom = ""; String layuiFormDom = ""; if(remarkPart.length > 1){ easyuiSearchDom = ViewModel.parseEasyuiSearchSelect(fieldName, cnName, remarkPart[1]); layuiSearchDom = ViewModel.parseLayuiSearchSelect(fieldName, cnName, remarkPart[1]); layuiFormDom = ViewModel.parseLayuiFormSelect(fieldName, cnName, remarkPart[1]); }else if("java.util.Date|java.sql.Time|java.sql.Timestamp".indexOf(fieldType) != -1){ easyuiSearchDom = ViewModel.parseEasyuiSearchDatetime(fieldName, cnName); layuiSearchDom = ViewModel.parseLayuiSearchDatetime(fieldName, cnName); layuiFormDom = ViewModel.parseLayuiFormDatetime(fieldName, cnName); }else if("Byte|Long|Integer|Short".indexOf(fieldType) != -1){ easyuiSearchDom = ViewModel.parseEasyuiSearchNumber(fieldName, cnName); layuiSearchDom = ViewModel.parseLayuiSearchNumber(fieldName, cnName); layuiFormDom = ViewModel.parseLayuiFormNumber(fieldName, cnName); }else{ easyuiSearchDom = ViewModel.parseEasyuiSearchText(fieldName, cnName); layuiSearchDom = ViewModel.parseLayuiSearchText(fieldName, cnName); layuiFormDom = ViewModel.parseLayuiFormText(fieldName, cnName); } //构造easyui筛选栏元素 columnMap.put("easyui-search-item", easyuiSearchDom); //构造layui筛选栏元素 columnMap.put("layui-search-item", layuiSearchDom); //构造layui表单栏元素 columnMap.put("layui-form-item", layuiFormDom); //构造layui表格表头 columnMap.put("layui-table-item", ViewModel.parseLayuiTableHeader(fieldName, cnName)); model.fields.add(columnMap); } return model; } public static String parseEasyuiSearchSelect(String name, String cnName, String optionStr){ String easyuiSearchEle = "
" + ""+cnName+"" + "
"; return easyuiSearchEle; } public static String parseEasyuiSearchDatetime(String name, String cnName){ String dateBoxDom = "
" + ""+cnName+"" + "" + "
"; return dateBoxDom; } public static String parseEasyuiSearchNumber(String name, String cnName){ String dateBoxDom = "
" + ""+cnName+"" + "" + "
"; return dateBoxDom; } public static String parseEasyuiSearchText(String name, String cnName){ String dateBoxDom = "
" + ""+cnName+"" + "" + "
"; return dateBoxDom; } /** *
* @param name * @param cnName * @param optionStr * @return */ public static String parseLayuiSearchSelect(String name, String cnName, String optionStr){ String LayuiSearchEle = "
" + "" + "
" + "
"; return LayuiSearchEle; } /** *
* @param name * @param cnName * @return */ public static String parseLayuiSearchDatetime(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiSearchNumber(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiSearchText(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiFormSelect(String name, String cnName, String optionStr){ String LayuiFormEle = "
" + "" + "
" + "
"; return LayuiFormEle; } /** *
* @param name * @param cnName * @return */ public static String parseLayuiFormDatetime(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiFormNumber(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiFormText(String name, String cnName){ String dateBoxDom = "
" + "" + "
" +"" + "
"; return dateBoxDom; } public static String parseLayuiTableHeader(String name, String cnName){ String header = "{title:'"+cnName+"', field:'"+name+"', width:100, sort: true},"; return header; } 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; } }