/* B80_ZK_3308composer.java Purpose: Description: History: Fri Dec 2 14:44:11 CST 2016, Created by wenninghsu Copyright (C) 2016 Potix Corporation. All Rights Reserved. This program is distributed under LGPL Version 2.1 in the hope that it will be useful, but WITHOUT ANY WARRANTY. */ package org.zkoss.zktest.test2; import org.zkoss.zk.ui.Component; 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.Grid; import org.zkoss.zul.GroupsModelArray; import org.zkoss.zul.Listbox; import java.util.Comparator; /** * * @author wenninghsu */ public class B80_ZK_3308composer extends SelectorComposer<Component> { @Wire private Grid grid; @Wire private Listbox lb; @Wire private Button btn1; @Wire private Button btn2; GroupsModelArray myModel1 = new GroupsModelArray(new String[]{"a", "a", "b", "b", "c", "c"}, new MyComparator()); GroupsModelArray myModel2 = new GroupsModelArray(new String[]{"a", "a", "b", "b", "c", "c"}, new MyComparator()); class MyComparator implements Comparator { public int compare(Object o1, Object o2) { String str1 = (String) o1; String str2 = (String) o2; return str1.compareToIgnoreCase(str2); } } @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); grid.setModel(myModel1); lb.setModel(myModel2); } @Listen("onClick = #btn1") public void showHideGridGroup(){ int all_group = myModel1.getGroupCount(); for (int i = 0; i < all_group; i++) { boolean showHide = !myModel1.isGroupOpened(i); if(showHide){ myModel1.addOpenGroup(i); }else{ myModel1.removeOpenGroup(i); } } } @Listen("onClick = #btn2") public void showHideListboxGroup(){ int all_group = myModel2.getGroupCount(); for (int i = 0; i < all_group; i++) { boolean showHide = !myModel2.isGroupOpened(i); if(showHide){ myModel2.addOpenGroup(i); }else{ myModel2.removeOpenGroup(i); } } } }