/** * */ package com.hundsun.ares.studio.ui.editor.celleditors; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.widgets.Composite; /** * @author gongyf * */ public class StringCheckboxCellEditor extends CheckboxCellEditor { /** * */ public StringCheckboxCellEditor() { super(); } /** * @param parent * @param style */ public StringCheckboxCellEditor(Composite parent, int style) { super(parent, style); } /** * @param parent */ public StringCheckboxCellEditor(Composite parent) { super(parent); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.CheckboxCellEditor#doGetValue() */ @Override protected Object doGetValue() { Object value = super.doGetValue(); if (value == null) { return StringUtils.EMPTY; } else { return value.toString(); } } /* (non-Javadoc) * @see org.eclipse.jface.viewers.CheckboxCellEditor#doSetValue(java.lang.Object) */ @Override protected void doSetValue(Object value) { if (value instanceof String) { value = Boolean.valueOf((String)value); } super.doSetValue(value); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.CheckboxCellEditor#activate(org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent) */ @Override public void activate(ColumnViewerEditorActivationEvent activationEvent) { // ��굥��ʱ��ֻ�е�������Ŵ��������¼�����������м����Ҽ��¼� if (activationEvent.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION) { MouseEvent event = (MouseEvent) activationEvent.sourceEvent; if (event.button != 1) { return; } } super.activate(activationEvent); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.CheckboxCellEditor#activate() */ @Override public void activate() { if ((getStyle() & SWT.READ_ONLY) == 0) { super.activate(); } } }