我在一个合成中有一个部分和formtoolkit
。当我在搜索框(Text
字段)中输入一些文本时,它应根据用户输入进行过滤并显示以下结果。我在过滤数据时遇到一个问题。当用户在“文本”字段中输入文本时,如何刷新合成中的数据。
我想要一个与
中的工作方式相同的解决方案偏好设置 - >编译器 - >错误/警告?
示例:
如果我输入" null"在搜索框中,它将显示所有相关的" null"价值如下。
如何实现过滤/刷新复合数据的实现?
答案 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
调用。