leo*_*loy 7 eclipse swt textbox jface
我想要一个具有标准自动完成行为的TextCellEditor,这是当前任何用户在输入单元格中键入建议字符串列表时所期望的.有关我正在使用的一个很好的工作示例,在Javascript中,请参阅此jQuery自动完成小部件.
我找不到一个很好的例子.我只发现了(除了一些微小的变化)这个TextCellEditorWithContentProposal片段.但这还有很多不足之处:
我觉得这样一个标准和有用的组件是不可用的.或者也许它可用?有人能指出我更贴切的片段或例子吗?
您链接到的示例是一个代码片段,旨在展示 API 并指导您根据自己的喜好自定义控件。
您的一些投诉要么无效,要么可以使用公共 API 轻松修复。
让我们详细了解一下它们。
请注意,在代码片段中org.eclipse.jface.fieldassist.SimpleContentProposalProvider
使用了 an:
IContentProposalProvider contentProposalProvider = new SimpleContentProposalProvider(new String[] { "red",
"green", "blue" });
cellEditor = new TextCellEditorWithContentProposal(viewer.getTable(), contentProposalProvider, null, null);
Run Code Online (Sandbox Code Playgroud)
正如其 javadoc 中所建议的那样:
旨在将静态字符串列表映射到内容提案
要启用对片段内容的简单过滤,您可以调用:contentProposalProvider.setFiltering(true);
对于任何更复杂的事情,您必须将其替换为您自己的org.eclipse.jface.fieldassist.IContentProposalProvider
.
内容提案行为在org.eclipse.jface.fieldassist.ContentProposalAdapter
. 再次简单的方法调用org.eclipse.jface.fieldassist.ContentProposalAdapter.setProposalAcceptanceStyle(int)
将实现您的目标行为:
contentProposalAdapter = new ContentProposalAdapter(text, new TextContentAdapter(), contentProposalProvider, keyStroke, autoActivationCharacters);
contentProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
Run Code Online (Sandbox Code Playgroud)
仅使用 API 很难做到这一点,因为 APIContentProposalAdapter
只会将击键传播到打开的窗口ContentProposalPopup
而不存储它们。
您必须子类化才能ContentProposalAdapter
访问 ContentProposalAdapter.ContentProposalPopup.filterText
.
此代码片段中的大多数具有合理默认值的功能也可以通过使用org.eclipse.jface.fieldassist.AutoCompleteField
.
归档时间: |
|
查看次数: |
298 次 |
最近记录: |