Java 如何使用SmartGWT以手动/编程方式打开ComboboxItem/SelectItem的选取列表?

Java 如何使用SmartGWT以手动/编程方式打开ComboboxItem/SelectItem的选取列表?,java,combobox,smartgwt,Java,Combobox,Smartgwt,我将SmartGWT2.5与Java和Mozilla FF 3.6.x一起使用。 我想手动打开ComboboxItem的pickList或SelectItem,即通过编程方式打开。可能吗?如果我需要使用JavaScript来实现这一点,那也没关系。任何提示或解决方案都将不胜感激。我终于得到了答案。在这里发布可能对其他人有用。我用过 comboxItem.showPicker(); 要在SmartGWT 2.4中手动打开ComboboxItem(我没有检查较新版本),SelectItem的sho

我将SmartGWT2.5与Java和Mozilla FF 3.6.x一起使用。
我想手动打开ComboboxItempickListSelectItem,即通过编程方式打开。可能吗?如果我需要使用JavaScript来实现这一点,那也没关系。任何提示或解决方案都将不胜感激。

我终于得到了答案。在这里发布可能对其他人有用。我用过

comboxItem.showPicker();
要在SmartGWT 2.4中手动打开
ComboboxItem

(我没有检查较新版本),SelectItem的
showPicker()
方法只显示一个空div,而不显示SelectItem的拾取列表。(它确实适用于ComboBoxItem,如RAS的回答所述)

对底层SmartClient代码的深入研究表明,在JavaScript方面,有一个
showPickList()
方法,当单击图标时(或在某些其他事件上)会调用该方法,但Java类不会公开该方法

因此,我使用了一段JSNI(从
SelectItem.showPicker
的源代码中修改)来调用此方法:

public static native void showPickList(SelectItem item) /*-{
   var jsItem = item.@com.smartgwt.client.core.DataClass::getJsObj()();
   if(jsItem.showPickList) {
      jsItem.showPickList();
   }
}-*/

调用任何此类选取列表的
showPickList(item)
现在会打开选取器。

这似乎对SelectItem不起作用,但是(至少在SmartGWT 2.4中).@jewbix.cube,可以尝试
ComboboboxItem.getPicker().isVisible()
?@RAS尝试过,但
getPicker()
似乎总是返回
null
,即使
showPicker()
可以工作。@jewbix.cube,在这种情况下,我认为没有任何这样的方法可以为我们提供comboboxitem的状态。