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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? propertyeditorregistry.java

?? java swing控件
?? JAVA
字號(hào):
/**
 * L2FProd.com Common Components 6.9.1 License.
 *
 * Copyright 2005-2006 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
      }
    }
  }

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣亚洲| 在线观看日韩电影| 人人精品人人爱| 一区二区三区四区高清精品免费观看 | 欧美电视剧在线看免费| 欧美在线视频不卡| 成人黄色777网| 99视频有精品| 欧美性色黄大片| 在线观看91av| 精品免费一区二区三区| 久久午夜色播影院免费高清| 欧美激情综合在线| 亚洲视频在线观看三级| 一区二区三区电影在线播| 亚洲国产精品久久久久秋霞影院| 香蕉久久一区二区不卡无毒影院 | 午夜精品久久久久久久| 日韩精品免费专区| 狠狠色综合日日| 国产成人免费网站| 91免费观看在线| 欧美日韩中文字幕一区| 91精品国产综合久久久久久| 精品久久五月天| 中文字幕免费不卡在线| 一区二区久久久久| 午夜精品福利一区二区蜜股av | 欧美日韩精品欧美日韩精品一| 91精品国模一区二区三区| 精品日韩在线观看| 国产精品你懂的在线欣赏| 亚洲精品高清视频在线观看| 日本不卡一二三| 国产69精品久久久久777| 色94色欧美sute亚洲线路二| 日韩一区二区三区在线观看| 欧美激情综合五月色丁香| 亚洲一区二区三区激情| 精品午夜久久福利影院| av不卡一区二区三区| 欧美片网站yy| 国产日韩欧美综合在线| 亚洲一区中文在线| 国产一区二区三区不卡在线观看 | 欧美亚洲动漫另类| 久久婷婷国产综合精品青草| 综合久久一区二区三区| 日本一不卡视频| 成人免费毛片嘿嘿连载视频| 欧美日韩免费高清一区色橹橹 | 亚洲国产成人高清精品| 国产精品一区二区不卡| 欧美日韩亚洲丝袜制服| 国产欧美一区二区精品久导航 | 成人av综合在线| 欧美精选一区二区| 中文字幕一区二区三区精华液| 日韩av在线免费观看不卡| 成人免费视频国产在线观看| 91精品婷婷国产综合久久竹菊| 中文字幕在线不卡国产视频| 日韩av中文在线观看| 色哟哟精品一区| 久久久久久日产精品| 午夜精品久久久久久久99樱桃| 波多野结衣一区二区三区| 精品国产污污免费网站入口| 午夜视频在线观看一区二区| www.成人网.com| 久久久精品综合| 毛片av中文字幕一区二区| 欧洲亚洲国产日韩| 国产精品久久久爽爽爽麻豆色哟哟| 免费人成在线不卡| 精品国产a毛片| 天天爽夜夜爽夜夜爽精品视频| 福利一区二区在线观看| 91精品国产日韩91久久久久久| 亚洲男人的天堂一区二区| 激情丁香综合五月| 欧美一区二区二区| 亚洲观看高清完整版在线观看 | 国产亚洲精品资源在线26u| 日本欧美一区二区三区| 欧美性三三影院| 一区二区三区中文免费| av在线不卡电影| 日本一区二区成人在线| 国产精品性做久久久久久| 欧美成人aa大片| 美女视频黄 久久| 91精品国产综合久久福利软件| 亚洲第四色夜色| 欧美视频一区二区三区四区| 亚洲一区二区三区精品在线| 在线观看视频一区二区| 亚洲精品精品亚洲| 色综合av在线| 一区二区三区**美女毛片| 91久久国产最好的精华液| 亚洲同性gay激情无套| 99国产精品久久久久久久久久| 国产精品久久久久久久久久久免费看 | 中文字幕永久在线不卡| 99精品欧美一区二区蜜桃免费 | 国产精品电影一区二区三区| 国产成人精品aa毛片| 中国色在线观看另类| 成人一区在线看| 国产精品网站导航| 国产白丝网站精品污在线入口| 国产亲近乱来精品视频| jlzzjlzz国产精品久久| 一区二区日韩电影| 欧美日韩日日夜夜| 久久电影网站中文字幕| 精品99一区二区三区| 成人免费精品视频| 亚洲黄网站在线观看| 欧美日韩亚洲综合在线 | 国产福利不卡视频| 中文字幕在线不卡| 欧美在线不卡视频| 蜜桃视频一区二区三区| 久久久精品tv| 99国产精品一区| 婷婷六月综合网| 精品成人一区二区| 99久久精品一区二区| 亚洲一区免费观看| 欧美va亚洲va| 丰满少妇在线播放bd日韩电影| 日韩毛片视频在线看| 在线播放亚洲一区| 国产电影一区在线| 亚洲一区二区三区中文字幕| 日韩欧美在线影院| 成人午夜私人影院| 亚洲国产精品麻豆| 久久久久久97三级| 欧美丝袜丝交足nylons| 麻豆高清免费国产一区| 国产精品久久久久久户外露出| 欧美三级日韩在线| 国产老妇另类xxxxx| 亚洲精品成人在线| 亚洲精品在线网站| 欧美亚洲禁片免费| 国产a久久麻豆| 亚洲h在线观看| 欧美激情一区二区三区不卡| 欧美三级电影在线观看| 国产精品一区二区在线看| 亚洲激情图片一区| 久久久久久黄色| 欧美人xxxx| 色综合久久久久综合99| 韩日精品视频一区| 亚洲国产色一区| 欧美国产精品v| 91精品国产欧美一区二区18 | 日韩欧美专区在线| 91在线云播放| 国内精品嫩模私拍在线| 亚洲午夜久久久久久久久久久 | 国产精品国产三级国产a| 日韩欧美在线不卡| 91官网在线观看| 国产一区二区毛片| 天堂在线一区二区| 亚洲三级在线看| 中文无字幕一区二区三区| 91精品国产高清一区二区三区 | 国内精品免费**视频| 国产一区二区三区国产| 亚洲成人动漫av| 成人免费在线视频| 久久久久国产精品麻豆 | 免费一级片91| 亚洲超碰97人人做人人爱| 亚洲三级理论片| 国产三级欧美三级| 精品1区2区在线观看| 日韩欧美高清dvd碟片| 精品视频在线免费看| 色综合久久中文综合久久97| 成人教育av在线| 国产高清不卡二三区| 国内外成人在线| 蜜臀91精品一区二区三区| 性做久久久久久久久| 亚洲中国最大av网站| 一区二区激情小说| 亚洲精品综合在线| 亚洲免费资源在线播放| 亚洲天堂免费看| 日韩毛片精品高清免费| 综合激情网...| 亚洲精品乱码久久久久久久久 |