我在新应用程序上使用GWT 2.4。我做了一个docklayoutpanel,我在它的西段插入了一个celllist。我需要创建一个事件,每当用户点击页面西侧的celllist元素时,特定小部件将加载到docklayoutpanel的内容。
有什么建议吗?
谢谢
答案 0 :(得分:0)
以下示例应该是自解释的
// Create a cell to render each value.
TextCell textCell = new TextCell();
// Create a CellList that uses the cell.
CellList<String> cellList = new CellList<String>(textCell);
cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
// Add a selection model to handle user selection.
final SingleSelectionModel<String> selectionModel = new SingleSelectionModel<String>();
cellList.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
String selected = selectionModel.getSelectedObject();
if (selected != null) {
Window.alert("You selected: " + selected);
}
}
});
您需要更改面板东侧显示的小部件,而不是Window.alert("You selected: " + selected);
。
这可以通过多种方式完成,其中一种方法是通过将Panel声明为类的字段(不是类的构造函数中的局部变量)或者作为一个方法将Dockpanel公开给Selection Change Event构造函数中的最终局部变量。
另一种方法是通过事件处理来完成此操作。关于MVP设计模式的eventBus方法是执行所有这些here的正确方法,以获取更多信息。