package com.itown.rcp.basicdata.view;
import com.itown.rcp.basicdata.view.BDLookupTextUI;
import com.itown.rcp.swing.lookup.Lookupable;
import com.itown.rcp.swing.lookup.TextFieldUI;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.plaf.TextUI;
import javax.swing.text.JTextComponent;
/**
*
* @author yingwl
*/
public class BasicDataTextFieldUI implements TextFieldUI {
public void buildUI(JButton button, JTextComponent textField, Lookupable lookupable) {
if (textField != null && lookupable != null) {
if (BasicDataLookupDialog.class.equals(lookupable.getClass())) {
String entityName = getEntityName(lookupable);
textField.setUI((TextUI) BDLookupTextUI.createUI(textField, entityName));
}
}
}
private static String getEntityName(final Lookupable lookupable) {
String basicDataId = lookupable.getParams();
int location = basicDataId.indexOf("{");
String entityName = basicDataId.substring(0, location);
return entityName;
}
/**
* 解析参数,格式如: SysCompany{code:companyCode,name:companyName}
* 解析后存放到entityName及propsMap
*/
private static Map parseParams(String params) {
Map propsMap = new HashMap();
int location = params.indexOf("{");
String others = params.substring(location);
others = others.substring(1, others.lastIndexOf("}"));
String[] arrays = others.split(",");
for (int i = 0; i < arrays.length; i++) {
propsMap.put(arrays[i].substring(0, arrays[i].indexOf(":")).trim(), arrays[i].substring(arrays[i].indexOf(":") + 1).trim());
}
return propsMap;
}
}
|