/**
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.ui.editor;
import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.ui.forms.widgets.FormToolkit;
import com.hundsun.ares.studio.ui.control.IEditable;
import com.hundsun.ares.studio.ui.control.TextAdaptor;
import com.hundsun.ares.studio.ui.util.ImporveControlWithDitryStateContext;
/**
* �ַ����͵���չ�ֶε�ʵ��
* @author sundl
*/
public class TextExtensionFieldEditor extends SingleExtensionFieldEditor implements IEditable{
private static final String COLON = ":";
protected TextAdaptor textAdapter;
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.ExtensionField#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit)
*/
@Override
public void createControls(FormToolkit toolkit, ImporveControlWithDitryStateContext context) {
// parent.setLayout(FormLayoutFactory.createClearTableWrapLayout(false, 2));
// toolkit.createLabel(parent, getName() + COLON);
// text = toolkit.createText(parent, properties.getString(getId(), ""));
// text.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
// text.addModifyListener(new ModifyListener() {
// public void modifyText(ModifyEvent e) {
// properties.setValue(getId(), text.getText());
//
// }
// });
textAdapter = new TextAdaptor(getName() + COLON, SWT.BORDER, context) {
@Override
public void syncControl() {
text.setText(StringUtils.defaultString(properties.getString(getId())));
}
@Override
public void syncModel() {
properties.setValue(getId(), text.getText());
}
};
textAdapter.syncControl();
context.getDirtyStatus().setValue(false);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.ExtensionField#refresh()
*/
@Override
public void refresh() {
// text.setText(properties.getString(getId(), ""));
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.control.IEditable#setEditable(boolean)
*/
public void setEditable(boolean editable) {
if (textAdapter != null)
textAdapter.setEditable(editable);
}
}