/** * <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.Arrays; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Text; /** * @author lvgao * */ public class UserOptionControlGroup extends UserOptionControl implements IControlContainer{ List<IControl> cList = new ArrayList<IControl>(); /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.UserOptionControl#setDefaultValue(java.lang.String) */ @Override public void setDefaultValue(String defaultValue) { IControl firstRadio = null; for(IControl item:cList){ if(StringUtils.equals(IControl.TYPE_RADIO, item.getType())){ //���õ�һ��Radio if(null != firstRadio){ firstRadio = item; } //Ĭ��ֵ��Radio�ؼ�ƥ�� if(StringUtils.equals(item.getValue(), defaultValue)){ this.defaultValue = defaultValue; } } } //Ĭ��ֵ��Radio�ؼ���ƥ�䣬ȡ��һ�� if(null == this.defaultValue){ if(null != firstRadio) { if(null != firstRadio.getControl()){ ((Button)firstRadio.getControl()).setSelection(true); this.defaultValue = firstRadio.getValue(); } }else {//��ֹgroup����û��radio�ؼ�ʱ��Ĭ��ֵΪ�� this.defaultValue =defaultValue; } } } /* (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); List<String> vList = null; if(null != defaultValue && defaultValue.contains(",")){ String[] values = defaultValue.split(","); vList = Arrays.asList(values);// } for(IControl item:cList){ //���chkeck�ؼ� if(StringUtils.equals(IControl.TYPE_CHECK, item.getType())){ if((null != vList && vList.contains(item.getValue())) //��� || StringUtils.equals(item.getValue(), defaultValue)){//һ�� if(null != item.getControl()){ ((Button)item.getControl()).setSelection(true); } } } if(StringUtils.equals(IControl.TYPE_RADIO, item.getType())){ //Ĭ��ֵ��Radio�ؼ�ƥ�� if(StringUtils.equals(item.getValue(), defaultValue)){ if(null != item.getControl()){ ((Button)item.getControl()).setSelection(true); } } } } } /* (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); StringBuffer valueBuffer = new StringBuffer();//����Ϊcheck�ؼ���ѡ��ֵ boolean hasCheckCtr = false; for(IControl item:cList){ if (StringUtils.equals(IControl.TYPE_MODULE, item.getType())) { option.put(getID(),((Text)item.getControl()).getText()); } if(StringUtils.equals(IControl.TYPE_RADIO, item.getType())){ if(null != item.getControl()){ //����ؼ�Ϊ�յ���� //��ȡradio��ֵ if(((Button)item.getControl()).getSelection()){ option.put(getID(), item.getValue()); } } }else{ item.setOptionValue(option); if(StringUtils.equals(IControl.TYPE_CHECK, item.getType())){ if(null != item.getControl()){ //����ؼ�Ϊ�յ���� hasCheckCtr = true; //��ȡCHECK��ֵ if(((Button)item.getControl()).getSelection()){ valueBuffer.append(","); valueBuffer.append(item.getValue()); } } } } } String value = valueBuffer.toString(); if(value.length() > 0) { option.put(getID(), value.substring(1));//��Ҫȥ����һ��,�� }else if(hasCheckCtr){ option.put(getID(), "");//����check�ؼ�������һ����û��ѡ�� } } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.IControlContainer#addChildren(com.hundsun.ares.studio.jres.script.internal.useroption.IControl) */ @Override public void addChildren(IControl control) { cList.add(control); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.script.internal.useroption.IControlContainer#getChildren() */ @Override public IControl[] getChildren() { return cList.toArray(new IControl[0]); } }