如何在通过文本字段过滤时刷新复合材料?

时间:2016-06-07 05:10:49

标签: java eclipse-plugin swt eclipse-rcp jface

我在一个合成中有一个部分和formtoolkit。当我在搜索框(Text字段)中输入一些文本时,它应根据用户输入进行过滤并显示以下结果。我在过滤数据时遇到一个问题。当用户在“文本”字段中输入文本时,如何刷新合成中的数据。

我想要一个与

中的工作方式相同的解决方案
  

偏好设置 - >编译器 - >错误/警告?

示例:

enter image description here

如果我输入" null"在搜索框中,它将显示所有相关的" null"价值如下。

如何实现过滤/刷新复合数据的实现?

1 个答案:

答案 0 :(得分:2)

您引用的首选项页面使用包含要过滤的所有控件的Composite来执行此操作。 Composite使用GridLayout布局。

每个控件都有GridData布局数据。要将控件设置为可见或不可见,请使用:

control.setVisible(visible);
((GridData)control.getLayoutData()).exclude = !visible;

完成后,它会调用:

composite.layout(true, true);

完全重做Composite的布局。

此代码大部分位于org.eclipse.jdt.internal.ui.preference.OptionsConfigurationBlock

要进行过滤,请为过滤器创建Text字段,并添加ModifyListener以收听文本中的更改。

每次文本更改时,您都会将每个控件的文本与过滤器匹配,并将控件设置为可见/不可见,如上所述。在过滤结束时,您执行layout调用。