/**
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.ui.control;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Spinner;
import com.hundsun.ares.studio.ui.util.ImporveControlWithDitryStateContext;
/**
* ����ť������
*
* @author mawb
*/
public class SpinnerAdaptor extends ControlWithShowControl<Spinner> {
ModifyListener modifyListener;
private Boolean isModify = false;
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum) {
super(label, controlStyle, context);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, 1);
}
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param beanFieldName ���ֶ�����
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum, String beanFieldName) {
super(label, controlStyle, context, context.getInfo(), beanFieldName);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, 1);
}
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param model ��ģ��
* @param beanFieldName ���ֶ���
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum, Object model, String beanFieldName) {
super(label, controlStyle, context, model, beanFieldName);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, 1);
}
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param increment ����ֵ
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum, int increment) {
super(label, controlStyle, context);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, increment);
}
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param increment ����ֵ
* @param beanFieldName ���ֶ���
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum, int increment, String beanFieldName) {
super(label, controlStyle, context, context.getInfo(), beanFieldName);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, increment);
}
/**
* ����ť���캯��
*
* @param label ��ʾ�ֶ�
* @param controlStyle �ؼ���ʽ
* @param context �����Ļ���
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param increment ����ֵ
* @param model ��ģ��
* @param beanFieldName ���ֶ�����
*/
public SpinnerAdaptor(String label, int controlStyle, ImporveControlWithDitryStateContext context, int mininum, int maxinum, int increment, Object model, String beanFieldName) {
super(label, controlStyle, context, model, beanFieldName);
this.controlStyle = controlStyle;
initControl(mininum, maxinum, increment);
}
/**
* ��ʼ������ť����
*
* @param mininum ��Сֵ
* @param maxinum ���ֵ
* @param increment ����ֵ
*/
protected void initControl(int mininum, int maxinum, int increment) {
synchronized (isModify) {
isModify = false;
getControl().setMinimum(mininum);
getControl().setMaximum(maxinum);
getControl().setIncrement(increment);
syncControl();
isModify = true;
}
}
@Override
public void addModifyListener() {
if(modifyListener == null){
modifyListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
fireControlValueChange(isModify);
}
};
}
control.addModifyListener(modifyListener);
}
/**
* �����ؼ�ֵ�仯�¼�
*
* @param isModify Spinner���������Сֵʱ�ᴥ��ModifyListener���˴���isModify���������Ƿ����¼�
*/
protected void fireControlValueChange(boolean isModify) {
if (isModify) {
super.fireControlValueChange();
}
}
@Override
protected void addMouseListener() {
}
@Override
public Object getValue() {
return control.getSelection();
}
@Override
public void setValue(Object object) {
if (object instanceof Integer) {
control.setSelection((Integer) object);
}
}
@Override
protected Spinner initControl() {
Spinner spinner = new Spinner(parent, controlStyle);
if (toolkit != null) {
spinner.setBackground(toolkit.getColors().getBackground());
}
return spinner;
}
@Override
public void removeModifyListener() {
if (control != null) {
control.removeModifyListener(modifyListener);
}
}
}