ViewModel.java 2.36 KB
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<Map<String, String>> fields = new ArrayList<Map<String, String>>(); 
	
	private ViewModel(){}	
	public static ViewModel createViewModel(String controllerPathMap, String webRootPath,Vector<TableColumn> tableColumns){
		ViewModel model = new ViewModel();
		model.controllerPathMap = controllerPathMap;
		model.webRootPath = webRootPath;
		for(TableColumn column : tableColumns){
			String fieldName = column.getColumBeanLName();
			String fieldType = column.getJAVADataType();
			
			Map<String, String> columnMap = new HashMap<String, String>();
			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<Map<String, String>> getFields() {
		return fields;
	}
	public void setColumns(List<Map<String, String>> fields) {
		this.fields = fields;
	}
}