2016-05-10 108 views
0

我正在开发一个eclipse插件,其中NatCombo(下拉框)位于NatTable的内部。我需要动态更改组合框过滤器下拉菜单。我可以使用natCombo.setItems()方法(我可以添加过滤器的过滤列表)将项目设置为组合框。从NatCombo删除项目

但是我找不到删除项目的方法,或者在添加新项目之前清空组合框中的以前项目的方法。我只能添加无限项目到我的组合框下拉菜单。

是否有删除项目的方法?我可以执行一个吗?如果是这样,我可以如何?

+1

你能解释一下你正在做什么吗?我从来没有听说有人仅仅在NatTable内部使用NatCombo。既没有添加也没有删除方法,因为它是在ICellEditor中使用的。并且每次都创建它,在打开时不需要修改。所以我不明白你的用例。 –

+0

对不起,如你所说,NatCombo在ICellEditor内部。我既不能处理natcombo,也不能用新的下拉值重新创建它(在这种情况下抛出异常),也不能修改组合框。即在使用natCombo.setItems()添加新值之前,从下拉列表中删除旧值。请帮助我,我对natTable/natCombo生命周期没有足够的了解.. – Raj

+0

更具体地说,我将自动完成功能添加到已有的natCombo(由我的高级人员完成,已退出其工作)..我是无法追查事情并继续。当按下键时,natCombo下拉菜单中的结果应该动态变化。我动态地(在keyListener内natCombo)获取所需的值,并设置这些值,但只是无法从natCombo删除旧值之前设置新的值。任何解决方案? – Raj

回答

0

我不知道您的用例,以及您是使用我们的默认编辑器实现还是创建了自己的用例。但基本上有两种答案,取决于你的使用情况:

  1. 你要提供动态内容的组合框 - 这是通过IComboBoxDataProvider完成,在我们的常见问题解释https://www.eclipse.org/nattable/documentation.php?page=faq
  2. 你想要的内容过滤器一个打开的组合框 - 这在版本< = 1.3.0中不受支持,但将在写这个答案的同时添加到NatTable 1.4.0中。快照已经可用,如果你想尝试一下。
+0

感谢您的宝贵信息.. – Raj

+0

是的我想通过IComboBoxDataProvider提供动态内容到组合框。我也这样做了,但是natcombo的动态内容仅在您首次选择组合(cellEditor)时添加,而不是动态地针对每个KEY PRESSED添加。所以,我使用了一个关键的监听器来调用getValues()中的natcombo,我试图设置组合的值。 – Raj

+0

同样,你正在尝试做的事情是行不通的。无论您想实现内容辅助,然后使用TextCellEditor的NatTable 1.4内容辅助或您想实现过滤,然后使用NatTable 1.4可过滤的NatCombo。 –