GWT MenuItem-List 选定值
Posted
技术标签:
【中文标题】GWT MenuItem-List 选定值【英文标题】:GWT MenuItem-List selected value 【发布时间】:2013-03-22 12:15:41 【问题描述】:我有一点问题。就像在代码中一样,我正在尝试创建一个动态 MenuItem 列表。这没问题,但我想要选择/单击的项目。但我不确定如何正确实施。所有这一切都发生在我的视图中,我想将值设置为在演示者中继续。谢谢任何帮助。
chooseProfileMenuBar = new MenuBar(true);
for (int i = 0; i<names().size(); i++)
final MenuItem menuItemChoose = new MenuItem(names.get(i), new Command()
@Override
public void execute()
// TODO set the onClicked value/name at index i
);
chooseProfileMenuBar.addItem(menuItemChoose);
return chooseProfileMenuBar;
【问题讨论】:
如果有帮助的话。我正在从演示者设置列表,并从演示者调用此方法(creatingMenuItemList)。因为我的事情/想法是正确的概念方法。或者从 menuItemChoose 获取值是否正确? 【参考方案1】:如果可能的话,你可以多做一件事, 我有创建运行时的下载菜单,所以我添加了 HashMap,并在该 HashMap 中添加了 names.get(i) 和下载链接,所以它看起来像
map.put(names.get(i),"link"),
现在在 execute() 中,我添加了 Window.open(map.get(menuItem.gettext()),"_blank");
我的项目中还有一个菜单是报告菜单,因此来自数据库的报告列表即将到来,并且
for(final Temp report : listReports)
MenuItem menuItem = new MenuItem(report.getType().toString(), new Command()
@Override
public void execute()
getUiHandlers().showReportPanel(report);
);
reportMenuBar.addItem(menuItem);
【讨论】:
【参考方案2】:利用UIHandler
Concept 的优势在视图和演示者之间进行通信。
创建界面:
import com.gwtplatform.mvp.client.UiHandlers;
public interface MyUiHandler extends UiHandlers
void onMenuSelected(MenuItem menuitem);
那么在你看来
public class MyMVPView extends ViewWithUiHandlers<MyUiHandler> implements
MyMvPPresenter.MyView
.
.
.
.
并且用 Presenter 实现 uihandler 接口
public class MyMvPPresenter
extends
Presenter<MyMVPPresenter.MyView, MyMVPPresenter.MyProxy>
implements MyUiHandler
//in the same presenter
public interface MyView extends View, HasUiHandlers<UserDashboardUiHandler>
//
.
.
.
然后你会在presenter中得到override方法,比如
@Override
public voidonMenuSelected(MenuItem menuitem)
//Your implementation here
用法
@Override
public void execute()
getUiHandlers().showReportPanel(menuItemChoose );
【讨论】:
【参考方案3】:你是对的vicR,从menuItemChoose中获取值是正确的。 你可以这样做
public void execute()
onclickMenu(menuItemChoose);
void onclickMenu(MenuItem menuItemChoose)
if(menuItemChoose.gettext().equals("abc")
//call handler method that implemented you in presenter
【讨论】:
ok 是有道理的,但是 menuItemChoose 只是在这个范围内初始化,所以这是不可能的,或者?! 有可能..我已经尝试过..我还有一个可能有帮助的建议,所以请检查一下。以上是关于GWT MenuItem-List 选定值的主要内容,如果未能解决你的问题,请参考以下文章