gpt4 book ai didi

gwt - 使用 TreeItem 和 FlexTable 自定义 GWT 树表

转载 作者:行者123 更新时间:2023-12-02 17:51:22 26 4
gpt4 key购买 nike

GWT不包含TreeTable,但我的项目要求包含树表。所以我使用 Tree 创建它和 FlexTable .

这里 Bean 类:Item

class Item
{
ItemType itemType; //Parent,Child Enum type
long parentId;
long amount;
String itemName;
String qty;
String rate;
//Setter / Getter Methods
}

这是自定义 TreeItem 类,它在父项和子项之间具有关系。我已经使用 TreeItemNode 创建了一行。

 public class TreeItemNode extends TreeItem {
private FlexTable table; //this will use to access child
private FlexTable parentTable; //This will use to access parent of particular child.
//This constructor create parent node
public TreeItemNode(FlexTable parentTable) {
setWidget(parentTable);
this.parentTable=parentTable;
setState(true);
}
//The method used to add Child items in parent
public TreeItem addItem(Widget widget) {
this.table=(FlexTable) widget;
TreeItem ret = new TreeItem(widget);
addItem(ret);
return ret;
}
}

使用 Item List,该方法正在创建具有父子节点关系的树。

class CustomTreeTable extends Tree
{
public void createTreeTable() {
//This map store parent id and tree item object for letter fetch the parent node and add child node in it
treeItemMap = new HashMap<Long, BOQTreeItem>();
for (Item item : itemList) {
if (item.getParentItemId() == 0) {
//Create new parent node
TreeItemNode itemTreeItem = new TreeItemNode(addChildItem(item,
new FlexTable(), true),
"gwt-TreeNode");
treeItemMap.put(item.getId(), treeItem);
addItem(itemTreeItem);
} else {
//Add child node
if (treeItemMap.containsKey(item.getParentItemId())
&& treeItemMap.get(item.getParentItemId()) != null) {
FlexTable dataFlextable = treeItemMap.get(
item.getParentItemId()).getTable();
if (dataFlextable == null) {
dataFlextable = new FlexTable();
treeItemMap.get(item.getParentItemId()).setTable(
dataFlextable);
}
FlexTable treeTable = addChildItem(item, dataFlextable,
false);
treeItemMap.get(item.getParentItemId()).addItem(treeTable);
}
}
}
}

}

使用这个我的表格如下。 + 我的树节点打开/关闭如下:

ItemName qty rate amount
+ item1 11 1 11 //parent item
---------------------------
- item2 11 2 22
--------------------------------
SubItemName qty rate amount //child item
subItem1 5 2 10
subItem2 8 5 40
------------------------------------

问题是,当我想计算一个原始(子项目)中的数量*比率时,我可以使用行索引来计算,但如果我想计算所有子项目并显示在父行中。那么逻辑就变得如此复杂。所以我只想知道我实现的逻辑,例如将实例存储在 map 中并进行管理。合适吗?我正朝着正确的方向或错误的方向前进。

最佳答案

也许使用 DataGrid 小部件会更简单地实现您想要实现的目标。

查看 GWT 展示:here

在 DataGrid 上,当您单击 ShowFriends 链接时,父行下会显示子行。

希望有帮助。 :)

关于gwt - 使用 TreeItem 和 FlexTable 自定义 GWT 树表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com