ComboBoxPropertyDescriptor 中使用枚举类型

来源:互联网 发布:教学白板软件多少钱 编辑:程序博客网 时间:2024/06/05 10:40

只贴出枚举相关的代码

1、实现了IPropertySource类的一部分

       protected static final String PROPERTY_TEXT = "text"; //$NON-NLS-1$protected static final String PROPERTY_ENABLE = "enable"; //$NON-NLS-1$protected static final String PROPERTY_LEVEL="level"; //$NON-NLS-1$//protected static final String PROPERTY_DEVICES = "devices";private EnumCompareType enumCompareType = EnumCompareType.GREAT_AND_EQUAL;private final Object PropertiesTable[][] = {   { PROPERTY_TEXT, new TextPropertyDescriptor(PROPERTY_TEXT,Messages.ServerObject_servername)},  { PROPERTY_ENABLE, new CheckBoxPropertyDescriptor(PROPERTY_ENABLE,Messages.ServerObject_status)},  {PROPERTY_LEVEL,new ComboBoxPropertyDescriptor(PROPERTY_LEVEL, Messages.ServerObject_level, EnumCompareType.names())} //$NON-NLS-2$ //$NON-NLS-3$    };

设置部分

public void setPropertyValue(Object id, Object value) {if(id.equals(PROPERTY_TEXT)){this.setName(String.valueOf(value));}if(id.equals(PROPERTY_ENABLE)){this.setEnable(Boolean.parseBoolean(String.valueOf(value)));}if(id.equals(PROPERTY_LEVEL)){enumCompareType =EnumCompareType.fromValue(Integer.valueOf(String.valueOf(value))); //枚举值类型转换}}


获取部分

public Object getPropertyValue(Object id) {if(id.equals(PROPERTY_TEXT)){return this.getName();}if(id.equals(PROPERTY_ENABLE)){System.out.println(isEnable());return this.isEnable();}if(id.equals(PROPERTY_LEVEL)){return Integer.valueOf(enumCompareType.getCode()); //枚举值类型转换/*System.out.println(enumCompareType.name());return this.enumCompareType.name();*/}return null;}

2、枚举类

package cn.net.anna.model.type;public enum EnumCompareType {ENUAL(0),GREAT_AND_EQUAL(1),LESS_AND_EQUAL(2);private int code;private EnumCompareType(int code) {this.code = code;}//获取枚举值的序号public int getCode() {return code;}public String toString() {return ""+this.code;}public  static EnumCompareType fromValue(int value){for (EnumCompareType iterable_element : EnumCompareType.values()) {if(iterable_element.code==value){return iterable_element;}} return null;}
//ComboBox 显示名称要用public static  String[] names(){String[] strings = new String[EnumCompareType.values().length];for (int i = 0; i < EnumCompareType.values().length; i++) {strings[i]=EnumCompareType.values()[i].name();}                              return strings;}}


0 0
原创粉丝点击