/** * <p>Copyright: Copyright (c) 2012</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.jres.script.internal.useroption; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.eclipse.swt.widgets.Combo; /** * @author lvgao * */ public class UserOptionControlCombo extends UserOptionControl{ List<String> values = new ArrayList<String>(); List<String> options = new ArrayList<String>(); /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.UserOptionControl#setValue(java.lang.String) */ @Override public void setValue(String value) { super.setValue(value); for(String item:StringUtils.split(value, ',')){ options.add(item); if(StringUtils.contains(item, '_')){ values.add(StringUtils.split(item, '_')[0]); }else{ values.add(item); } } } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.UserOptionControl#setDefaultValue(java.lang.String) */ @Override public void setDefaultValue(String defaultValue) { if(values.contains(defaultValue)){ this.defaultValue = defaultValue; }else{ this.defaultValue = values.get(0); } } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.UserOptionControl#setControl(java.lang.Object) */ @Override public void setControl(Object control) { super.setControl(control); ((Combo)control).setItems(options.toArray(new String[0])); int index = values.indexOf(defaultValue); if(index >= 0){ ((Combo)control).setText(options.get(index)); } } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.UserOptionControl#setOptionValue(java.util.Map) */ @Override public void setOptionValue(Map<String, Object> option) { super.setOptionValue(option); if(null != getControl()){ option.put(getID(), StringUtils.split(((Combo)control).getText(), '_')[0]); } } }