`
收藏列表
标题 标签 来源
25 25
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;
    }
}
Global site tag (gtag.js) - Google Analytics