|
DecoratedField用來實現(xiàn)對Control的裝飾,可以為button,combo,text等控件做出如下效果。
![]() 控件邊上提示的種類有4種,分別是Proposal, Required, error, warning.
代碼很簡單:
package jface;![]() import org.eclipse.jface.fieldassist.DecoratedField; import org.eclipse.jface.fieldassist.FieldDecoration; import org.eclipse.jface.fieldassist.FieldDecorationRegistry; import org.eclipse.jface.fieldassist.IControlCreator; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text;![]() ![]() /** *//** * This class demonstrates TableViewers */![]() public class FieldDecorationDemo ...{![]() ![]() public void run() ...{ Display display = new Display(); Shell shell = new Shell(display); shell.setSize(200, 200); shell.setText("Button Example"); shell.setLayout(new GridLayout());![]() createFieldDecoration(shell);![]() shell.open();![]() while (!shell.isDisposed()) ...{ if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }![]() ![]() private void createFieldDecoration(Shell shell) ...{ createCombo(shell); createButton(shell); createText(shell); }![]() ![]() private void createText(Shell shell) ...{![]() IControlCreator cbCtrl = new IControlCreator() ...{![]() ![]() public Control createControl(final Composite parent, final int style) ...{ Text text = new Text(parent, style); text.setText("text"); return text; } }; DecoratedField dField = new DecoratedField(shell, SWT.BORDER, cbCtrl); FieldDecoration decoration = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR); dField.addFieldDecoration(decoration, SWT.LEFT | SWT.TOP, false); }![]() ![]() private void createButton(Shell shell) ...{![]() IControlCreator cbCtrl = new IControlCreator() ...{![]() ![]() public Control createControl(final Composite parent, final int style) ...{ Button button = new Button(parent, style); button.setText("button"); return button; } }; DecoratedField dField = new DecoratedField(shell, SWT.BORDER, cbCtrl); FieldDecoration decoration = FieldDecorationRegistry.getDefault().getFieldDecoration( FieldDecorationRegistry.DEC_CONTENT_PROPOSAL); dField.addFieldDecoration(decoration, SWT.LEFT | SWT.TOP, false); }![]() ![]() private void createCombo(Shell shell) ...{![]() IControlCreator cbCtrl = new IControlCreator() ...{![]() ![]() public Control createControl(final Composite parent, final int style) ...{ Combo cb = new Combo(parent, style); cb.setText("combo"); return cb; } }; DecoratedField dField = new DecoratedField(shell, SWT.BORDER, cbCtrl); FieldDecoration decoration = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED); dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.TOP, false); }![]() ![]() public static void main(String[] args) ...{ new FieldDecorationDemo().run(); } }![]() |
|
|