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

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

?? propertyeditorregistry.java

?? 精美開源Swing組件
?? JAVA
字號:
/**
 * L2FProd.com Common Components 7.3 License.
 *
 * Copyright 2005-2007 L2FProd.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.l2fprod.common.propertysheet;

import com.l2fprod.common.beans.editor.*;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Rectangle;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * Mapping between Properties, Property Types and Property Editors.
 */
public class PropertyEditorRegistry implements PropertyEditorFactory {

  private Map typeToEditor;
  private Map propertyToEditor;

  public PropertyEditorRegistry() {
    typeToEditor = new HashMap();
    propertyToEditor = new HashMap();
    registerDefaults();
  }

  public PropertyEditor createPropertyEditor(Property property) {
    return getEditor(property);
  }
  
  /**
   * Gets an editor for the given property. The lookup is as follow:
   * <ul>
   * <li>if propertyDescriptor.getPropertyEditorClass() returns a valid value, 
   * it is returned, else, 
   * <li>if an editor was registered with
   * {@link #registerEditor(Property, PropertyEditor)}, it is
   * returned, else</li>
   * <li>if an editor class was registered with
   * {@link #registerEditor(Property, Class)}, it is returned, else
   * <li>
   * <li>look for editor for the property type using
   * {@link #getEditor(Class)}.it is returned, else
   * </li>
   * <li>look for editor using PropertyEditorManager.findEditor(Class);
   * </li>
   * </ul>
   * 
   * @param property
   * @return an editor suitable for the Property.
   */
  public synchronized PropertyEditor getEditor(Property property) {
    PropertyEditor editor = null;
    if (property instanceof PropertyDescriptorAdapter) {
      PropertyDescriptor descriptor = ((PropertyDescriptorAdapter) property).getDescriptor();
      if (descriptor != null) {
        Class clz = descriptor.getPropertyEditorClass();
        if (clz != null) {
          editor = loadPropertyEditor(clz);
        }
      }
    }
    if (editor == null) {
      Object value = propertyToEditor.get(property);
      if (value instanceof PropertyEditor) {
        editor = (PropertyEditor) value;
      } else if (value instanceof Class) {
        editor = loadPropertyEditor((Class) value);
      } else {
        editor = getEditor(property.getType());
      }
    }
    if ((editor == null) && (property instanceof PropertyDescriptorAdapter)) {
      PropertyDescriptor descriptor = ((PropertyDescriptorAdapter) property).getDescriptor();
      Class clz = descriptor.getPropertyType();
      editor = PropertyEditorManager.findEditor(clz);
    }
    return editor;
  }

  /**
   * Load PropertyEditor from clz through reflection.
   * @param clz Class to load from.
   * @return Loaded propertyEditor
   */
  private PropertyEditor loadPropertyEditor(Class clz) {
    PropertyEditor editor = null;
    try {
      editor = (PropertyEditor) clz.newInstance();
    } catch (Exception e) {
      e.printStackTrace();
    }
    return editor;
  }

  /**
   * Gets an editor for the given property type. The lookup is as
   * follow:
   * <ul>
   * <li>if an editor was registered with
   * {@link #registerEditor(Class, PropertyEditor)}, it is returned,
   * else</li>
   * <li>if an editor class was registered with
   * {@link #registerEditor(Class, Class)}, it is returned, else
   * <li>
   * <li>it returns null.</li>
   * </ul>
   * 
   * @param type
   * @return an editor suitable for the Property type or null if none
   *         found
   */
  public synchronized PropertyEditor getEditor(Class type) {
    PropertyEditor editor = null;
    Object value = typeToEditor.get(type);
    if (value instanceof PropertyEditor) {
      editor = (PropertyEditor)value;
    } else if (value instanceof Class) {
      try {
        editor = (PropertyEditor)((Class)value).newInstance();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    return editor;
  }

  public synchronized void registerEditor(Class type, Class editorClass) {
    typeToEditor.put(type, editorClass);
  }

  public synchronized void registerEditor(Class type, PropertyEditor editor) {
    typeToEditor.put(type, editor);
  }

  public synchronized void unregisterEditor(Class type) {
    typeToEditor.remove(type);
  }

  public synchronized void registerEditor(Property property, Class editorClass) {
    propertyToEditor.put(property, editorClass);
  }

  public synchronized void registerEditor(Property property,
      PropertyEditor editor) {
    propertyToEditor.put(property, editor);
  }

  public synchronized void unregisterEditor(Property property) {
    propertyToEditor.remove(property);
  }

  /**
   * Adds default editors. This method is called by the constructor
   * but may be called later to reset any customizations made through
   * the <code>registerEditor</code> methods. <b>Note: if overriden,
   * <code>super.registerDefaults()</code> must be called before
   * plugging custom defaults. </b>
   */
  public void registerDefaults() {
    typeToEditor.clear();
    propertyToEditor.clear();

    // our editors
    registerEditor(String.class, StringPropertyEditor.class);

    registerEditor(double.class, DoublePropertyEditor.class);
    registerEditor(Double.class, DoublePropertyEditor.class);

    registerEditor(float.class, FloatPropertyEditor.class);
    registerEditor(Float.class, FloatPropertyEditor.class);

    registerEditor(int.class, IntegerPropertyEditor.class);
    registerEditor(Integer.class, IntegerPropertyEditor.class);

    registerEditor(long.class, LongPropertyEditor.class);
    registerEditor(Long.class, LongPropertyEditor.class);

    registerEditor(short.class, ShortPropertyEditor.class);
    registerEditor(Short.class, ShortPropertyEditor.class);

    registerEditor(boolean.class, BooleanAsCheckBoxPropertyEditor.class);
    registerEditor(Boolean.class, BooleanAsCheckBoxPropertyEditor.class);

    registerEditor(File.class, FilePropertyEditor.class);

    // awt object editors
    registerEditor(Color.class, ColorPropertyEditor.class);
    registerEditor(Dimension.class, DimensionPropertyEditor.class);
    registerEditor(Insets.class, InsetsPropertyEditor.class);
    try {
      Class fontEditor =
        Class.forName("com.l2fprod.common.beans.editor.FontPropertyEditor");
      registerEditor(Font.class, fontEditor);
    } catch (Exception e) {
      // FontPropertyEditor might not be there when using the split jars
    }
    registerEditor(Rectangle.class, RectanglePropertyEditor.class);

    
    //
    // Date Editors based on what we have in the classpath
    //
    
    boolean foundDateEditor = false;
    
    // if JCalendar jar is available, use it as the default date
    // editor
    try {
      Class.forName("com.toedter.calendar.JDateChooser");
      registerEditor(Date.class, Class
        .forName("com.l2fprod.common.beans.editor.JCalendarDatePropertyEditor"));
      foundDateEditor = true;
    } catch (ClassNotFoundException e) {
      // No JCalendar found
    }
    
    if (!foundDateEditor) {
      // try NachoCalendar
      try {
        Class.forName("net.sf.nachocalendar.components.DateField");
        registerEditor(
          Date.class,
          Class
            .forName("com.l2fprod.common.beans.editor.NachoCalendarDatePropertyEditor"));
        foundDateEditor = true;
      } catch (ClassNotFoundException e) {
        // No NachoCalendar found
      }
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久777精品电影网影网| 高清国产一区二区| 偷拍日韩校园综合在线| 亚洲男同性恋视频| 一区二区在线观看免费视频播放| 亚洲天堂a在线| 亚洲精品视频一区二区| 亚洲综合在线免费观看| 一级日本不卡的影视| 亚洲一区二区三区自拍| 三级成人在线视频| 青草国产精品久久久久久| 久久精品国产99| 国产精品88av| jizzjizzjizz欧美| 色噜噜偷拍精品综合在线| 欧美日韩在线观看一区二区| 欧美日产在线观看| 精品成人一区二区三区四区| 国产三级久久久| 亚洲欧洲另类国产综合| 一区二区在线观看av| 亚洲成va人在线观看| 麻豆国产91在线播放| 国产成人夜色高潮福利影视| 99国产精品国产精品毛片| 欧美日韩午夜在线视频| 日韩视频免费观看高清完整版| 欧美精品一区男女天堂| 国产精品二三区| 午夜视频在线观看一区二区| 紧缚奴在线一区二区三区| 成人美女在线视频| 欧美三级午夜理伦三级中视频| 欧美mv日韩mv国产网站| 综合在线观看色| 日韩和欧美一区二区| 丰满白嫩尤物一区二区| 欧美日韩一区 二区 三区 久久精品| 欧美一级高清大全免费观看| 亚洲国产成人午夜在线一区| 亚洲国产精品视频| 国产一本一道久久香蕉| 欧美视频一区二| 国产情人综合久久777777| 香港成人在线视频| 处破女av一区二区| 欧美一卡二卡在线| 国产精品国产自产拍高清av王其| 日日噜噜夜夜狠狠视频欧美人| 国产91丝袜在线18| 欧美高清视频www夜色资源网| 国产偷v国产偷v亚洲高清| 香蕉成人啪国产精品视频综合网| 大胆欧美人体老妇| 欧美一级一区二区| 一区二区三区电影在线播| 国产伦精品一区二区三区免费| 在线精品视频一区二区三四| 国产亚洲精品精华液| 日本美女一区二区| 一本色道亚洲精品aⅴ| 久久久国际精品| 婷婷丁香激情综合| 色综合亚洲欧洲| 久久精品人人做| 久久精品久久久精品美女| 欧美三区免费完整视频在线观看| 国产精品私人自拍| 国产一区二区三区| 91精品国产综合久久久久久 | 国产精品无人区| 男女男精品网站| 欧美三级电影网站| 亚洲欧美日韩综合aⅴ视频| 国产精品一区二区男女羞羞无遮挡| 欧美性淫爽ww久久久久无| 中文字幕亚洲综合久久菠萝蜜| 国产一区二区伦理| 日韩精品专区在线| 日本91福利区| 欧美精品日韩综合在线| 一区二区三区四区激情| 91亚洲精品久久久蜜桃网站| 亚洲国产精品成人久久综合一区| 国产在线播放一区二区三区| 日韩欧美卡一卡二| 日韩一区精品视频| 欧美日韩午夜影院| 性感美女久久精品| 欧美日韩亚洲综合在线| 一区二区三区四区高清精品免费观看 | 午夜精品一区二区三区电影天堂| 91视频www| 亚洲色图制服丝袜| 一本色道久久综合亚洲aⅴ蜜桃 | 麻豆精品一区二区三区| 欧美一区二区福利视频| 蜜臀va亚洲va欧美va天堂| 7777女厕盗摄久久久| 视频一区欧美精品| 欧美丰满高潮xxxx喷水动漫| 日日夜夜免费精品| 欧美一区二区三区视频在线观看 | 欧美精品粉嫩高潮一区二区| 亚洲成人自拍一区| 7777精品伊人久久久大香线蕉最新版| 午夜精品福利视频网站| 91精品国产aⅴ一区二区| 免费欧美日韩国产三级电影| 日韩欧美电影一二三| 国产在线不卡一区| 中文字幕中文字幕在线一区| 99久久精品免费看| 亚洲国产综合91精品麻豆| 欧美日韩小视频| 青青草国产成人av片免费| 精品免费99久久| 成人午夜视频在线| 一区二区久久久| 91麻豆精品国产自产在线观看一区 | 国产一区二区三区免费播放 | 免费在线观看视频一区| 欧美成人a∨高清免费观看| 国产露脸91国语对白| ㊣最新国产の精品bt伙计久久| 一本色道a无线码一区v| 视频在线观看一区| 久久婷婷成人综合色| 成人短视频下载| 亚洲影视在线播放| 欧美大片一区二区| 成人午夜视频在线| 一个色妞综合视频在线观看| 欧美一区二区网站| 国产老妇另类xxxxx| 亚洲欧美另类小说视频| 51精品秘密在线观看| 国产一区二区三区免费播放| 综合电影一区二区三区| 在线成人免费视频| 国产成人精品亚洲777人妖| 一区二区三区精品| 精品国产91九色蝌蚪| 色婷婷久久久久swag精品| 日本亚洲视频在线| 亚洲手机成人高清视频| 欧美一级欧美三级在线观看| 国产东北露脸精品视频| 亚洲永久免费视频| 久久这里只有精品首页| 一本大道av伊人久久综合| 日本不卡的三区四区五区| 欧美激情中文字幕一区二区| 欧美日韩在线精品一区二区三区激情| 国产一区二区三区香蕉| 亚洲网友自拍偷拍| 欧美国产成人精品| 日韩一区二区三区在线视频| 91丨porny丨国产| 老司机精品视频线观看86| 亚洲精品视频一区二区| 久久久久国产精品麻豆| 欧美日韩免费在线视频| 成人黄色小视频| 奇米影视一区二区三区小说| 一区二区三区欧美| 中文字幕不卡在线| 精品国精品国产| 欧美精品乱人伦久久久久久| jiyouzz国产精品久久| 国产一区二区三区电影在线观看| 午夜日韩在线观看| 亚洲人成电影网站色mp4| 2024国产精品视频| 7777精品伊人久久久大香线蕉的| eeuss鲁片一区二区三区| 韩国精品免费视频| 蜜桃av噜噜一区| 亚洲成人一区二区在线观看| 亚洲天堂av老司机| 国产日韩欧美综合一区| 精品国产伦一区二区三区免费 | 亚洲国产精品影院| 中文字幕在线不卡一区| 国产日韩欧美电影| 欧美tk丨vk视频| 欧美剧情片在线观看| 色婷婷国产精品| 99re视频这里只有精品| 成人永久aaa| 春色校园综合激情亚洲| 国产不卡视频一区二区三区| 国产在线精品一区二区不卡了 | 国产专区综合网| 蜜臀av一区二区| 美国欧美日韩国产在线播放| 免费一区二区视频| 日韩高清不卡一区| 蜜臀国产一区二区三区在线播放|