在使用New Project Wizard的时候,可以看到在一些输入框左边有个小灯泡,把鼠标移到上面会有一些提示“Content assist Alt+/”;在框中使用 alt+/ 就是会出现一个提示。
Eclipse提供了一套对control的包装API,可以很简单的实现上述功能。如下:
增加decoration
ControlDecoration decoration = new ControlDecoration(control,
SWT.LEFT);
decoration.setImage(decorationImage);
decoration.setDescriptionText(decorationDescription);
Eclipse也提供了一些通用的decoration image和text,可以如下获取:
FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
.getFieldDecoration(
FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
decorationDescription = fieldDecoration.getDescription() + "(. Alt+/)";
decorationImage = fieldDecoration.getImage();
增加输入提示:
char[] autoActivationCharacters = new char[] { '.' };
KeyStroke keyStroke = null;
try {
keyStroke = KeyStroke.getInstance("Alt+/");
} catch (ParseException e) {
logError(e.getMessage(), e);
}
SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(
proposalProviders);
new ContentProposalAdapter(control, new TextContentAdapter(),
proposalProvider, keyStroke, autoActivationCharacters);
这里的proposalProvider即在提示列表里出现在提示列。
这样就实现了一个简单的带提示标签和输入提示功能的控件。