gpt4 book ai didi

eclipse - 在 Eclipse SWT/JFace 中具有自动完成功能的 TextCellEditor?

转载 作者:行者123 更新时间:2023-12-04 12:27:54 24 4
gpt4 key购买 nike

我想要一个 TextCellEditor使用标准的自动完成行为,现在任何用户在输入带有建议字符串列表的输入单元格时都期望这种行为。对于我所追求的一个很好的工作示例,在 Javascript 中,请参阅 jQuery autocomplete widget .

我找不到一个很好的例子。
我只发现(除了一些微小的变化)这个TextCellEditorWithContentProposal snippet .但这还有很多不足之处:

  • 它列出了所有单词,无论在单元格中键入的“部分单词”如何(没有部分匹配)
  • 选择所需单词时,将其附加到部分单词,而不是替换它
  • 交互是丑陋且不直观的。例如,人们会期望
    退出键撕掉建议列表;再次,请参阅 Javascript 示例;在这里,它还删除了键入的字母。

  • 我觉得奇怪的是,没有这样一个标准且有用的组件。或者它是可用的?有人可以指出我更贴切的片段或示例吗?

    最佳答案

    您链接到的示例是一个代码片段,旨在展示 API 并指导您根据自己的喜好自定义控件。

    您的某些投诉要么无效,要么可以使用公共(public) API 轻松修复。

    让我们详细介绍一下。

    列出所有提案,无论键入的文本如何

    请注意,在片段中,org.eclipse.jface.fieldassist.SimpleContentProposalProvider用来:

    IContentProposalProvider contentProposalProvider = new SimpleContentProposalProvider(new String[] { "red",
    "green", "blue" });
    cellEditor = new TextCellEditorWithContentProposal(viewer.getTable(), contentProposalProvider, null, null);

    正如其 javadoc 中所建议的那样:

    designed to map a static list of Strings to content proposals



    要启用对片段内容的简单过滤,您可以调用: 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);

    取消提案不应删除键入的内容

    仅使用 API 很难做到这一点,因为 ContentProposalAdapter只会将击键传播到打开的 ContentProposalPopup不存储它们。

    你必须继承 ContentProposalAdapter ,以便访问 ContentProposalAdapter.ContentProposalPopup.filterText .

    此代码段中具有合理默认值的大部分功能也可以通过使用 org.eclipse.jface.fieldassist.AutoCompleteField 以更简单的方式获得。 .

    关于eclipse - 在 Eclipse SWT/JFace 中具有自动完成功能的 TextCellEditor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743309/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com