Skip to content

Commit

Permalink
12/27 split 2 logic Treeitem & TreeNode | merge extra method into upd…
Browse files Browse the repository at this point in the history
…ateNodePartialSelection()
  • Loading branch information
JamsonChan committed Dec 27, 2023
1 parent 9653c09 commit 9e56b46
Show file tree
Hide file tree
Showing 11 changed files with 954 additions and 35 deletions.
2 changes: 2 additions & 0 deletions zkdoc/release-note
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ZK 10.0.0
ZK-5048: MVVM DebuggerFactory should log via SLF4J
ZK-5595: Upgrade Servlet version from 2.4 to 3.1 aligned with Java EE 7
ZK-5596: Simplify the JavaScript url when enable embedded mode
ZK-3853: Tree supports 3-states selection

* Bugs
ZK-5393: Update ZK jars to jakarta-friendly uploads
Expand All @@ -29,6 +30,7 @@ ZK 10.0.0
+ Remove all deprecated Java APIs and the legacy module "zkplus-legacy".
+ Use /zkEmbedded url (or specify yourself) to simply include embedded.js, instead of specify the real path to embedded.js,
simplifying the source to enable embedded mode.
+ Tree support tri-state selection, use new boolean attribute `indeterminate` to enable.

--------
ZK 10.0.0-Beta
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/* F100_ZK_3853Composer.java
Purpose:
Description:
History:
Fri Dec 15 17:53:26 CST 2023, Created by jamson
Copyright (C) 2023 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.zktest.test2;

import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.DefaultTreeModel;
import org.zkoss.zul.DefaultTreeNode;
import org.zkoss.zul.Tree;
import org.zkoss.zul.Window;

public class F100_ZK_3853Composer extends SelectorComposer<Window> {

DefaultTreeModel model;
@Wire
Tree tree;
@Override
public void doAfterCompose(Window component) throws Exception {
super.doAfterCompose(component);
model = new DefaultTreeModel(
new DefaultTreeNode(null,
new DefaultTreeNode[] {
new DefaultTreeNode("1",
new DefaultTreeNode[] {
new DefaultTreeNode("1-1"),
new DefaultTreeNode("1-2")
}),
new DefaultTreeNode("2"),
new DefaultTreeNode("3",
new DefaultTreeNode[] {
new DefaultTreeNode("3-1",
new DefaultTreeNode[] {
new DefaultTreeNode("3-1-1"),
new DefaultTreeNode("3-1-2"),
new DefaultTreeNode("3-1-3",
new DefaultTreeNode[] {
new DefaultTreeNode("3-1-3-1"),
new DefaultTreeNode("3-1-3-2"),
new DefaultTreeNode("3-1-3-3"),
}
)
}
),
new DefaultTreeNode("3-2"),
new DefaultTreeNode("3-3")
}
)
}
)
);
tree.setModel(model);
tree.setIndeterminate(true);
}

@Listen("onClick=#b1")
public void b1() {
tree.setModel(tree.getModel() == null ? model : null);
}

@Listen("onClick=#b2")
public void b2() {
tree.setIndeterminate(!tree.isIndeterminate());
}

@Listen("onClick=#b3")
public void b3() {
model.setIndeterminate(!model.isIndeterminate());
}

@Listen("onClick=#b4")
public void b4() {
tree.setMultiple(!tree.isMultiple());
}

@Listen("onClick=#b5")
public void b5() {
model.setMultiple(!model.isMultiple());
}
}
124 changes: 124 additions & 0 deletions zktest/src/main/webapp/test2/F100-ZK-3853.zul
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
F100-ZK-3853.zul
Purpose:
Description:
History:
Thu Dec 14 15:36:18 CST 2023, Created by jamson
Copyright (C) 2023 Potix Corporation. All Rights Reserved.
-->
<zk>
<!--
cols -> col -> * row -> cell -> *
/ /
tree -> children -> item
\ \
foot -> footer -> * children
-->
<window apply="org.zkoss.zktest.test2.F100_ZK_3853Composer">
<button id="b1" label="toggle model"/>
<button id="b2" label="Comp toggle ind"/>
<button id="b3" label="Model toggle ind"/>
<button id="b4" label="Comp toggle mul"/>
<button id="b5" label="Model toggle mul"/>
<tree id="tree">
<treecols>
<treecol label="Name" />
</treecols>
</tree>
</window>

<tree indeterminate="true">
<treecols>
<treecol label="Name" />
</treecols>
<treechildren>
<treeitem open="false">
<treerow>
<treecell label="1" />
</treerow>
<treechildren>
<treeitem>
<treerow>
<treecell label="1-1" />
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="1-2" />
</treerow>
</treeitem>
</treechildren>
</treeitem>
<treeitem>
<treerow>
<treecell label="2" />
</treerow>
</treeitem>
<treeitem open="false">
<treerow>
<treecell label="3" />
</treerow>
<treechildren>
<treeitem open="false">
<treerow>
<treecell label="3-1" />
</treerow>
<treechildren>
<treeitem open="false">
<treerow>
<treecell label="3-1-1" />
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="3-1-2" />
</treerow>
</treeitem>
<treeitem open="false">
<treerow>
<treecell label="3-1-3" />
</treerow>
<treechildren>
<treeitem>
<treerow>
<treecell label="3-1-3-1" />
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="3-1-3-2" />
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="3-1-3-3" />
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</treeitem>
<treeitem>
<treerow>
<treecell label="3-2" />
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="3-3" />
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
<treefoot>
<treefooter label="Count" />
<treefooter label="Summary" />
</treefoot>
</tree>
</zk>
Loading

0 comments on commit 9e56b46

Please sign in to comment.