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.zk.ui.util.Clients; import org.zkoss.zkmax.zul.Rowchildren; import org.zkoss.zkmax.zul.Rowlayout; import org.zkoss.zul.Button; import org.zkoss.zul.Spinner; import org.zkoss.zul.Window; public class F80_ZK_2708_Composer extends SelectorComposer<Window> { @Wire("#win") private Window _win; @Wire("#colspan") private Spinner _colspan; @Wire("#offset") private Spinner _offset; @Wire("#add") private Button _add; // available space in the current row private int _avail = 0; // current row private Rowlayout _curRow = null; @Listen("onClick = #add") public void addChild() { int colspan = _colspan.getValue(); int offset = _offset.getValue(); if (_avail < colspan+offset) { _curRow = new Rowlayout(); _curRow.setParent(_win); _avail = 12; } Rowchildren rc = new Rowchildren(); rc.setColspan(colspan); rc.setOffset(offset); Window win = new Window(); win.setBorder("normal"); win.setTitle("colspan=" + colspan); win.setHflex("1"); win.setParent(rc); rc.setParent(_curRow); _avail -= colspan+offset; String js = "jq('.z-window-embedded-cnt').attr('contentEditable', '').css('min-height', '30px')"; Clients.evalJavaScript(js); } }