/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.control; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Combo; import com.hundsun.ares.studio.ui.util.ImporveControlWithDitryStateContext; /** * ��ǩ-Combo�ؼ��顣 * * @author liuning. Created on 2008-9-18. Modified by xx on xx. */ public class ComboAdaptor extends ControlWithShowControl<Combo> { String[] items; SelectionAdapter selectionAdapter; /** * @param ��ʾ�ֶ� * @param �ؼ���ʽ * @param ������ * @param combo��ѡ�� * @param ���ֶ����� */ public ComboAdaptor(String label,int controlStyle,ImporveControlWithDitryStateContext context,String[] items,String beanFieldName) { super(label,controlStyle,context,context.getInfo(),beanFieldName); initCombo(items); } /** * @param ��ʾ�ֶ� * @param �ؼ���ʽ * @param ������ * @param combo��ѡ�� */ public ComboAdaptor(String label,int controlStyle,ImporveControlWithDitryStateContext context,String[] items) { super(label,controlStyle,context); initCombo(items); } /** * @param ��ʾ�ֶ� * @param �ؼ���ʽ * @param ������ * @param combo��ѡ�� * @param ��ģ�� * @param ���ֶ����� */ public ComboAdaptor(String label,int controlStyle,ImporveControlWithDitryStateContext context,String[] items,Object model,String beanFieldName) { super(label,controlStyle,context,model,beanFieldName); initCombo(items); } private void initCombo(String[] items){ this.items = items; for(String item:items){ getControl().add(item); } syncControl(); } @Override public Object getValue() { return this.control.getText(); } @Override public void setValue(Object object) { if(object instanceof String){ this.control.setText((String)object); } } @Override protected Combo initControl() { Combo combo = new Combo(parent, controlStyle); if (null != this.toolkit) { combo.setBackground(toolkit.getColors().getBackground()); } return combo; } @Override public void addModifyListener() { if (null != this.control) { if(selectionAdapter == null){ selectionAdapter = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fireControlValueChange(); } }; } this.control.addSelectionListener(selectionAdapter); } } @Override public void removeModifyListener() { if (null != this.control) { this.control.removeSelectionListener(selectionAdapter); } } @Override protected void addMouseListener() { } public void setItems(String[] items) { this.items = items; getControl().removeAll(); for(String item:items){ getControl().add(item); } } }