亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? genericbeaninfo.java

?? SWING的界面UI包 SWING的界面UI包
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * GenericBeanInfo.java
 *
 * Created on 2007年8月12日, 下午8:47
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package dyno.swing.designer.beaninfo;

import dyno.swing.designer.beans.Util;
import dyno.swing.designer.properties.items.ItemProvider;
import dyno.swing.designer.properties.wrappers.ColorWrapper;
import dyno.swing.designer.properties.wrappers.Decoder;
import dyno.swing.designer.properties.wrappers.FontWrapper;
import dyno.swing.designer.properties.wrappers.InsetsWrapper;
import dyno.swing.designer.properties.wrappers.ItemWrapper;
import dyno.swing.designer.properties.wrappers.primitive.BooleanWrapper;
import dyno.swing.designer.properties.wrappers.primitive.ByteWrapper;
import dyno.swing.designer.properties.wrappers.primitive.CharWrapper;
import dyno.swing.designer.properties.wrappers.primitive.DoubleWrapper;
import dyno.swing.designer.properties.wrappers.primitive.FloatWrapper;
import dyno.swing.designer.properties.wrappers.primitive.IntegerWrapper;
import dyno.swing.designer.properties.wrappers.primitive.LongWrapper;
import dyno.swing.designer.properties.wrappers.primitive.ShortWrapper;
import dyno.swing.designer.properties.wrappers.primitive.StringWrapper;
import java.awt.Color;
import java.awt.Font;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.awt.Image;
import java.awt.Insets;
import java.beans.BeanDescriptor;
import java.beans.BeanInfo;
import java.beans.Beans;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.beans.SimpleBeanInfo;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilderFactory;


/**
 *
 * @author William Chen
 */
public abstract class GenericBeanInfo extends SimpleBeanInfo {

    private static String[] lnf_names = {"Windows", "Metal", "JGoodies Plastic 3D", "JGoodies Plastic XP"};
    private static HashMap<Class, Decoder> decoders;
    private static HashMap<String, BeanInfoDesc> beanInfoDescs;
    static {
        initBeanInfoDescs();
        initTypeDecoders();
    }

    private static void initTypeDecoders() {
        decoders = new HashMap<Class, Decoder>();
        decoders.put(byte.class, new ByteWrapper());
        decoders.put(short.class, new ShortWrapper());
        decoders.put(char.class, new CharWrapper());
        decoders.put(int.class, new IntegerWrapper());
        decoders.put(long.class, new LongWrapper());
        decoders.put(float.class, new FloatWrapper());
        decoders.put(double.class, new DoubleWrapper());
        decoders.put(boolean.class, new BooleanWrapper());
        decoders.put(String.class, new StringWrapper());
        decoders.put(Color.class, new ColorWrapper());
        decoders.put(Font.class, new FontWrapper());
        decoders.put(Insets.class, new InsetsWrapper());
    }
    private Class beanClass;
    private boolean isabstract;
    private BeanDescriptor beanDescriptor;
    private Image icon16;
    private Image icon32;

    /** Creates a new instance of JButtonBeanInfo */
    public GenericBeanInfo() {
        try {
            beanClass = getBeanClass();
            beanDescriptor = new BeanDescriptor(beanClass);
            initBeanProperties();
            String isAbstract = (String) beanDescriptor.getValue("abstract");
            isabstract = isAbstract != null && isAbstract.equals("true");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private static void parseBeaninfo(Element eBeaninfo) {
        String classname = eBeaninfo.getAttribute("class");
        String resourceName = eBeaninfo.getAttribute("resource");
        ArrayList<PropertyDesc> array = new ArrayList<PropertyDesc>();
        NodeList list = eBeaninfo.getElementsByTagName("property");

        if ((list != null) && (list.getLength() > 0)) {
            for (int i = 0; i < list.getLength(); i++) {
                Element eProperty = (Element) list.item(i);
                PropertyDesc prop = new PropertyDesc();
                prop.setPropertyName(eProperty.getAttribute("name"));

                String pcn = eProperty.getAttribute("editor");

                if ((pcn != null) && (pcn.trim().length() > 0)) {
                    prop.setPropertyEditor(pcn.trim());
                }


                NodeList defaultList = eProperty.getElementsByTagName("default");
                if ((defaultList != null) && (defaultList.getLength() > 0)) {
                    ArrayList<Element> defaults = new ArrayList<Element>();
                    for (int j = 0; j < defaultList.getLength(); j++) {
                        Element eDefault = (Element) defaultList.item(j);
                        defaults.add(eDefault);
                    }
                    prop.setDefaults(defaults);
                }

                Properties properties = parseProperties(eProperty);
                prop.setProperties(properties);
                array.add(prop);
            }
        }

        PropertyDesc[] props = array.toArray(new PropertyDesc[0]);
        BeanInfoDesc desc = new BeanInfoDesc();
        Properties properties = parseProperties(eBeaninfo);
        desc.setClassname(classname);
        desc.setProperties(props);
        desc.setResourceName(resourceName);
        desc.setBeanProperties(properties);
        beanInfoDescs.put(classname, desc);
    }

    private static void parseBeanInfos(Element eBeaninfos) {
        NodeList list = eBeaninfos.getElementsByTagName("beaninfo");

        if ((list != null) && (list.getLength() > 0)) {
            for (int i = 0; i < list.getLength(); i++) {
                Element eBeaninfo = (Element) list.item(i);
                parseBeaninfo(eBeaninfo);
            }
        }
    }

    private static void initBeanInfoDescs() {
        try {
            beanInfoDescs = new HashMap<String, BeanInfoDesc>();

            InputStream input = GenericBeanInfo.class.getResourceAsStream("beaninfo.xml");
            Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(input);
            Element eBeaninfos = document.getDocumentElement();
            parseBeanInfos(eBeaninfos);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private BeanInfoDesc getBeanInfoDesc(Class beanClass) {
        BeanInfoDesc biDesc = beanInfoDescs.get(beanClass.getName());
        if (biDesc == null) {
            Class beanInfoClass = getClass();
            String bicName = beanInfoClass.getName();
            String name = bicName;
            int dot = bicName.lastIndexOf('.');
            if (dot != -1) {
                name = bicName.substring(dot + 1);
            }
            try {
                InputStream bis = beanInfoClass.getResourceAsStream(name + ".xml");
                if (bis != null) {
                    Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(bis);
                    Element eBeaninfos = document.getDocumentElement();
                    parseBeanInfos(eBeaninfos);
                    biDesc = beanInfoDescs.get(beanClass.getName());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return biDesc;
    }

    private void initBeanProperties() {
        BeanInfoDesc desc = getBeanInfoDesc(beanClass);

        if (desc != null) {
            Properties props = desc.getBeanProperties();
            Enumeration names = props.propertyNames();

            while (names.hasMoreElements()) {
                String key = (String) names.nextElement();
                beanDescriptor.setValue(key, props.get(key));
            }
        }
    }

    public BeanDescriptor getBeanDescriptor() {
        return beanDescriptor;
    }

    public Image getIcon(int iconKind) {
        if ((iconKind == ICON_COLOR_16x16) || (iconKind == ICON_MONO_16x16)) {
            if (icon16 == null) {
                BeanInfoDesc desc = getBeanInfoDesc(beanClass);

                if (desc != null) {
                    String resource = "resources/" + desc.getResourceName() + "_16.png";
                    icon16 = super.loadImage(resource);
                }
            }

            return icon16;
        } else {
            if (icon32 == null) {
                BeanInfoDesc desc = getBeanInfoDesc(beanClass);

                if (desc != null) {
                    String resource = "resources/" + desc.getResourceName() + "_32.png";
                    icon32 = super.loadImage(resource);
                }
            }

            return icon32;
        }
    }

    private PropertyDescriptor cloneProperty(PropertyDescriptor source) {
        try {
            String propertyName = source.getName();
            PropertyDescriptor prop = new PropertyDescriptor(propertyName, beanClass);

            Class clazz = source.getPropertyEditorClass();
            if (clazz != null) {
                prop.setPropertyEditorClass(clazz);
            }
            String desc = source.getShortDescription();
            if (!Util.isStringNull(desc)) {
                prop.setShortDescription(desc);
            }
            Enumeration names = source.attributeNames();

            while (names.hasMoreElements()) {
                String key = (String) names.nextElement();
                Object value = source.getValue(key);
                if (value != null) {
                    prop.setValue(key, value);
                }
            }

            prop.setValue("bean-class", beanDescriptor.getBeanClass());
            return prop;
        } catch (Exception ex) {
            return null;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合精品自拍| 国产精品短视频| 91麻豆国产精品久久| 亚洲综合另类小说| 久久久久久久久99精品| 欧美一二三区在线观看| 成人午夜精品一区二区三区| 人妖欧美一区二区| 性做久久久久久免费观看| 亚洲日韩欧美一区二区在线| 91精品国产色综合久久不卡蜜臀| 精品久久久久久久人人人人传媒| 国产精品欧美综合在线| 国产精品美女久久久久久| 欧美高清www午色夜在线视频| 国产风韵犹存在线视精品| 99久久777色| 国产精品久久午夜夜伦鲁鲁| 麻豆精品一区二区三区| 欧美国产1区2区| av不卡一区二区三区| 亚洲第一久久影院| 2020国产精品自拍| 色综合天天综合在线视频| 亚洲国产精品一区二区久久恐怖片| 欧美一二三在线| 91在线观看一区二区| 日韩高清国产一区在线| 国产精品成人免费精品自在线观看| 欧美视频日韩视频在线观看| 国产在线麻豆精品观看| 亚洲综合激情另类小说区| 久久久99久久| 欧美高清激情brazzers| 99久久婷婷国产综合精品| 免费观看30秒视频久久| 亚洲免费av高清| 久久综合九色综合欧美98| 日本道在线观看一区二区| 国产综合久久久久久鬼色| 亚洲gay无套男同| 国产精品国产三级国产有无不卡| 欧美一二三四在线| 欧美性色黄大片| 成人高清免费观看| 国产亚洲一二三区| 99热精品一区二区| 亚洲欧美偷拍三级| 在线精品视频一区二区| 亚洲一区二区三区四区五区中文| 成人在线视频一区| 亚洲天堂av一区| 国产91在线看| 国产精品久久福利| 成人动漫在线一区| 亚洲一区二区三区四区不卡 | 亚洲精品乱码久久久久久久久| 日韩亚洲欧美综合| 欧美性做爰猛烈叫床潮| proumb性欧美在线观看| 国产一区二区调教| 日本vs亚洲vs韩国一区三区二区| 一区二区三区欧美亚洲| 国产精品日日摸夜夜摸av| 国产午夜精品久久久久久久| 2020国产精品自拍| 日韩精品一区二区三区蜜臀| 91精品免费观看| 欧美精品18+| 91精品国产综合久久久久久| 欧美日韩精品欧美日韩精品一| 色欧美88888久久久久久影院| 成人听书哪个软件好| 国产成人精品一区二| 国产成人综合视频| 国产精品66部| 国产成人激情av| kk眼镜猥琐国模调教系列一区二区 | 欧美影片第一页| 欧美三级在线播放| 欧美一区二区视频观看视频| 欧美一区二区三区免费观看视频| 91精品国产福利在线观看 | 国产资源在线一区| 韩国女主播一区二区三区| 国产综合色产在线精品| 国产成人在线看| 成人高清伦理免费影院在线观看| 99久久婷婷国产精品综合| 色av成人天堂桃色av| 欧美精品黑人性xxxx| 欧美xxxxx裸体时装秀| 久久久激情视频| 日韩理论片网站| 午夜视频在线观看一区二区| 免费一级欧美片在线观看| 激情综合五月婷婷| 99久久精品免费看国产| 欧美视频在线观看一区| 日韩你懂的在线观看| 国产日韩精品久久久| 亚洲欧美激情小说另类| 亚洲 欧美综合在线网络| 久草在线在线精品观看| 成人午夜碰碰视频| 欧美日韩亚州综合| 久久久无码精品亚洲日韩按摩| 中文字幕一区免费在线观看| 亚洲图片有声小说| 国产一区二区毛片| 在线观看一区二区精品视频| 精品少妇一区二区三区视频免付费 | 国产精品国产精品国产专区不片| 亚洲午夜免费视频| 国产一区二区精品久久| 色综合久久久网| 久久亚洲捆绑美女| 一区二区高清在线| 韩国三级中文字幕hd久久精品| 99精品偷自拍| 欧美大度的电影原声| 亚洲丝袜制服诱惑| 国产一区在线观看麻豆| 色婷婷激情综合| 欧美精品一区二区三区一线天视频 | 亚洲日本丝袜连裤袜办公室| 欧美96一区二区免费视频| 91在线观看污| 久久色在线观看| 亚洲123区在线观看| 99久久99久久精品国产片果冻| 精品久久久久久久久久久久久久久久久 | 国产一区二区在线看| 欧美日韩一级黄| 国产精品久久久久aaaa| 久久精工是国产品牌吗| 在线精品视频免费观看| 国产精品久久久久婷婷| 国产精品99久久久久| 337p亚洲精品色噜噜| 亚洲美女一区二区三区| 国产白丝精品91爽爽久久| 欧美变态tickle挠乳网站| 亚洲成a人在线观看| 99久久精品国产麻豆演员表| 国产日韩影视精品| 国产综合色在线| 日韩精品一区二区在线观看| 婷婷成人激情在线网| 日本韩国欧美三级| 亚洲欧美国产三级| 99精品视频一区二区| 日本一区二区三区dvd视频在线| 开心九九激情九九欧美日韩精美视频电影| 在线观看区一区二| 艳妇臀荡乳欲伦亚洲一区| 97se亚洲国产综合自在线观| 中文字幕亚洲不卡| 99re热视频精品| 亚洲欧洲国产日本综合| av在线一区二区三区| 欧美激情自拍偷拍| 不卡免费追剧大全电视剧网站| 国产精品网曝门| 成人的网站免费观看| 中文字幕不卡在线观看| 波多野结衣欧美| 中文字幕制服丝袜一区二区三区| av一区二区久久| 日韩伦理av电影| 色老汉一区二区三区| 久久久久久久久岛国免费| 播五月开心婷婷综合| 日本福利一区二区| 91免费视频网| 韩国一区二区视频| 亚洲午夜精品一区二区三区他趣| 在线不卡欧美精品一区二区三区| 黄色资源网久久资源365| 亚洲精品成a人| 日韩美女在线视频| 一本色道**综合亚洲精品蜜桃冫 | 亚洲国产精品一区二区久久| 日韩中文字幕亚洲一区二区va在线 | 午夜激情一区二区| 欧美精品视频www在线观看 | 中文字幕一区二区三区av | 欧美一区二区福利视频| 蜜桃av一区二区| 国产精品私人影院| 欧美在线观看视频一区二区| 日本美女一区二区三区| 国产清纯白嫩初高生在线观看91 | 国产亚洲欧洲一区高清在线观看| 99久久精品免费| 青青青爽久久午夜综合久久午夜| 久久久精品国产免费观看同学| 色哟哟国产精品免费观看| 日韩一区精品视频| 国产欧美视频在线观看|