-
Notifications
You must be signed in to change notification settings - Fork 208
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ZK-3853: Tree supports 3-states selection(WIP)
- Loading branch information
1 parent
ba03820
commit 3c2b90b
Showing
22 changed files
with
1,938 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
149 changes: 149 additions & 0 deletions
149
zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853Composer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
/* 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.Button; | ||
import org.zkoss.zul.DefaultTreeModel; | ||
import org.zkoss.zul.DefaultTreeNode; | ||
import org.zkoss.zul.Tree; | ||
import org.zkoss.zul.TreeNode; | ||
import org.zkoss.zul.Treechildren; | ||
import org.zkoss.zul.Treeitem; | ||
import org.zkoss.zul.Window; | ||
|
||
public class F100_ZK_3853Composer extends SelectorComposer<Window> { | ||
|
||
DefaultTreeModel model; | ||
@Wire | ||
Tree tree, tree2; | ||
@Wire | ||
Button b6, b13; | ||
@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("2"), | ||
new DefaultTreeNode("3") | ||
}), | ||
new DefaultTreeNode("4"), | ||
new DefaultTreeNode("5", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("6", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("7"), | ||
new DefaultTreeNode("8"), | ||
new DefaultTreeNode("9", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("10"), | ||
new DefaultTreeNode("11"), | ||
new DefaultTreeNode("12"), | ||
} | ||
) | ||
} | ||
), | ||
new DefaultTreeNode("13"), | ||
new DefaultTreeNode("14") | ||
} | ||
) | ||
} | ||
) | ||
); | ||
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()); | ||
} | ||
|
||
@Listen("onClick=#b6") | ||
public void b6() { | ||
b6.setLabel("sel:" + String.valueOf(tree.getSelectedCount()) + " par:" + String.valueOf(tree.getPartialCount())); | ||
} | ||
|
||
@Listen("onClick=#b7") | ||
public void b7() { | ||
TreeNode root = (TreeNode) model.getRoot(), | ||
targetParent = root.getChildAt(2).getChildAt(0).getChildAt(2), | ||
newNode = new DefaultTreeNode("Model inserted"); | ||
targetParent.insert(newNode, 1); | ||
} | ||
|
||
@Listen("onClick=#b8") | ||
public void b8() { | ||
TreeNode root = (TreeNode) model.getRoot(), | ||
targetParent = root.getChildAt(2).getChildAt(0).getChildAt(2); | ||
targetParent.remove(1); | ||
} | ||
|
||
@Listen("onClick=#b11") | ||
public void b11() { | ||
tree2.setIndeterminate(!tree2.isIndeterminate()); | ||
} | ||
|
||
@Listen("onClick=#b12") | ||
public void b12() { | ||
tree2.setMultiple(!tree2.isMultiple()); | ||
} | ||
|
||
@Listen("onClick=#b13") | ||
public void b13() { | ||
b13.setLabel("sel:" + String.valueOf(tree2.getSelectedCount()) + " par:" + String.valueOf(tree2.getPartialCount())); | ||
} | ||
|
||
@Listen("onClick=#b14") | ||
public void b14() { | ||
Treechildren treechildren = tree2.getTreechildren(); | ||
Treeitem t1 = (Treeitem) treechildren.getFirstChild(), | ||
t4 = (Treeitem) t1.getNextSibling(), | ||
t5 = (Treeitem) t4.getNextSibling(); | ||
|
||
Treeitem ti = new Treeitem(); | ||
ti.setLabel("inserted"); | ||
ti.setSelected(true); | ||
treechildren.insertBefore(ti, treechildren.getFirstChild()); | ||
} | ||
|
||
@Listen("onClick=#b15") | ||
public void b15() { | ||
Treechildren treechildren = tree2.getTreechildren(); | ||
treechildren.removeChild(treechildren.getFirstChild()); | ||
} | ||
} |
70 changes: 70 additions & 0 deletions
70
zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853_2Composer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
/* F100_ZK_3853_2Composer.java | ||
Purpose: | ||
Description: | ||
History: | ||
Tue Jan 02 18:48:59 CST 2024, Created by jamson | ||
Copyright (C) 2024 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_3853_2Composer 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("0", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("1"), | ||
new DefaultTreeNode("2") | ||
} | ||
), | ||
new DefaultTreeNode("3"), | ||
new DefaultTreeNode("4", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("5", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("6"), | ||
new DefaultTreeNode("7"), | ||
new DefaultTreeNode("8", | ||
new DefaultTreeNode[] { | ||
new DefaultTreeNode("9"), | ||
new DefaultTreeNode("10"), | ||
new DefaultTreeNode("11"), | ||
} | ||
) | ||
} | ||
), | ||
new DefaultTreeNode("12"), | ||
new DefaultTreeNode("13") | ||
} | ||
) | ||
} | ||
) | ||
); | ||
tree.setModel(model); | ||
tree.setIndeterminate(true); | ||
} | ||
|
||
@Listen("onClick=#btn") | ||
public void toogleModel() { | ||
tree.setModel(tree.getModel() == null ? model : null); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
F100-ZK-3853-1.zul | ||
Purpose: | ||
Description: | ||
History: | ||
Tue Jan 02 16:00:24 CST 2024, Created by jamson | ||
Copyright (C) 2024 Potix Corporation. All Rights Reserved. | ||
--> | ||
<zk> | ||
<label multiline="true"> | ||
Tri-State Tree Pure Component Test. | ||
click checkbox and check whether all updates are correct. | ||
</label> | ||
<tree indeterminate="true"> | ||
<treecols> | ||
<treecol label="treecol" /> | ||
</treecols> | ||
<treechildren> | ||
<treeitem open="false"> | ||
<treerow> | ||
<treecell label="0" /> | ||
</treerow> | ||
<treechildren> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="1"/> | ||
</treerow> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="2" /> | ||
</treerow> | ||
</treeitem> | ||
</treechildren> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="3" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem open="false"> | ||
<treerow> | ||
<treecell label="4" /> | ||
</treerow> | ||
<treechildren> | ||
<treeitem open="false"> | ||
<treerow> | ||
<treecell label="5" /> | ||
</treerow> | ||
<treechildren> | ||
<treeitem open="false"> | ||
<treerow> | ||
<treecell label="6" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="7" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem open="false"> | ||
<treerow> | ||
<treecell label="8" /> | ||
</treerow> | ||
<treechildren> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="9" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="10" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="11" /> | ||
</treerow> | ||
</treeitem> | ||
</treechildren> | ||
</treeitem> | ||
</treechildren> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="12" /> | ||
</treerow> | ||
</treeitem> | ||
<treeitem> | ||
<treerow> | ||
<treecell label="13" /> | ||
</treerow> | ||
</treeitem> | ||
</treechildren> | ||
</treeitem> | ||
</treechildren> | ||
</tree> | ||
</zk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
F100-ZK-3853-2.zul | ||
Purpose: | ||
Description: | ||
History: | ||
Tue Jan 02 18:38:49 CST 2024, Created by jamson | ||
Copyright (C) 2024 Potix Corporation. All Rights Reserved. | ||
--> | ||
<zk> | ||
<label multiline="true"> | ||
Tri-State Tree with Model Test. | ||
1. click checkbox and check whether all updates are correct. | ||
2. click `toggle model` button, check the model save all state correctly after un-bind and re-bind. | ||
</label> | ||
<window apply="org.zkoss.zktest.test2.F100_ZK_3853_2Composer"> | ||
<button id="btn" label="toggle model"/> | ||
<tree id="tree"> | ||
<treecols> | ||
<treecol label="treecol" /> | ||
</treecols> | ||
</tree> | ||
</window> | ||
</zk> |
Oops, something went wrong.