GWT框架 tree节点只能选择一次!

jfrankie 2014-10-15 10:02:24
只有刷新了 才能再选,但也是只能选择一次,再点其他,也还是加载不出来页面。
请大神帮忙看看。



public class TypeConfigPage extends ContentPanel {

private static final IssueTypeProperties ISSUE_TYPE_PROPERTIES = GWT
.create(IssueTypeProperties.class);
private static final CarTypeProperties CAR_TYPE_PROPERTIES = GWT
.create(CarTypeProperties.class);

private SystemServiceAsync service;

private Folder lastFolder;

// 垂直组件
HorizontalLayoutContainer hlc = new HorizontalLayoutContainer();
BorderLayoutContainer container = new BorderLayoutContainer();
class KeyProvider implements ModelKeyProvider<Folder> {
@Override
public String getKey(Folder item) {
return (item instanceof Folder ? "f-" : "m-")
+ item.getId().toString();
}
}

public TypeConfigPage(Folder folder, SystemServiceAsync systemServiceAsync) {
this.service = systemServiceAsync;
setHeadingText(folder.getName());
ToolTipCreator.create(folder, getHeader(),
"此页面主要配置一些系统基本信息,如<font color='red'>阿斯多夫</font>");

hlc.setScrollMode(ScrollMode.AUTO);

hlc.add(createLeftTree(), new HorizontalLayoutData(300, 1, new
Margins(
5, 5, 5, 5)));
hlc.add(craeteIssueTypeGrid(), new HorizontalLayoutData(1360, 1,
new Margins(5, 5, 5, 0)));

add(hlc);
}

private FramedPanel createLeftTree() {
FramedPanel panel = new FramedPanel();
panel.setHeadingText("选择类别");
TreeStore<Folder> store = new TreeStore<Folder>(new KeyProvider());

List<Folder> typelist = new ArrayList<Folder>();
typelist.add(new Folder(
"<i class='fa fa-star fa-lg light-blue'></i> 卡片操作类型", "",
"", 1));
typelist.add(new Folder(
"<i class='fa fa-star fa-lg light-blue'></i> 车辆类型", "",
"", 2));
for (Folder base : typelist) {
store.add(base);
}

final Tree<Folder, String> tree = new Tree<Folder, String>(store,
new ValueProvider<Folder, String>() {

@Override
public String getValue(Folder object) {
return object.getName();
}

@Override
public void setValue(Folder object, String value) {

}

@Override
public String getPath() {
return "name";
}
});
tree.setWidth(280);

tree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

SelectionChangedHandler<Folder> ts = new SelectionChangedHandler<Folder>() {

@Override
public void onSelectionChanged(SelectionChangedEvent<Folder> event) {
Folder f = (Folder) event.getSelection().get(0);
if (f != lastFolder) {
lastFolder = f;
hlc.remove(1);
if (f.getId() == 1) {
hlc.add(craeteIssueTypeGrid(),
new HorizontalLayoutData(1360, 1, new Margins(
5, 5, 5, 0)));
} else if (f.getId() == 2) {
hlc.add(craeteCarTypeGrid(), new HorizontalLayoutData(
1360, 1, new Margins(5, 5, 5, 0)));
}
hlc.forceLayout();
}
}

};
tree.getSelectionModel().addSelectionChangedHandler(ts);
panel.add(tree);
return panel;
}
...全文
122 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧