0

How to catch onSize event for listheader?

asked 2010-07-24 12:12:13 +0800

Arsen gravatar image Arsen
384 5

updated 2010-07-24 12:12:48 +0800

Good day, everyone.
I've got Listbox with sizable listhead and I want to save listheaders' sizes after user changes them to restore next time user opens my form. But I can't do it...
Here is sample code

<zk xmlns="http://www.zkoss.org/2005/zul">
    <window width="100%" height="100%">
        <zscript>
            ListModel model = new ListModelArray(new String[]{"str1", "str2"});
        </zscript>
        <listbox width="200px" model="${model}">
            <listhead id="head" sizable="true">
                <listheader id="header1" label="1"/>
                <listheader id="header2" label="2"/>
            </listhead>
        </listbox>

        <zscript>
            head.addEventListener(Events.ON_SIZE, new EventListener(){
                public void onEvent(Event event) throws Exception {
                    System.out.println("width"+header1.getWidth());
                }
            });
        </zscript>
        
        <button label="show size">
            <attribute name="onClick">
            System.out.println("width"+header1.getWidth());
            </attribute>
        </button>
    </window>
</zk>

And I've got few questions
1. If button is clicked before header1 is resized then header1.getWidth()=null. After header1 is resized method getWidth() returns actual width in pixels. How should I get actual width before header1 is resized?
2. Second zscript tries to add listener for onSize event, but as far as I understand this event is only for window. How can I add listener for listheader resizing? My listbox is totaly created by java code, there is no zul-file, so I shall be grateful for java-side solutions.

Thanks in advance.

delete flag offensive retag edit

3 Replies

Sort by ยป oldest newest

answered 2010-07-25 21:46:02 +0800

samchuang gravatar image samchuang
4084 4

Hi,

use the "onColSize" event

	<window title="Sample" border="normal" height="100%">
			<zscript><![CDATA[
			import org.zkoss.zk.ui.event.EventListener;
			]]></zscript>
			<zscript>
				ListModel model = new ListModelArray(new String[] { "str1", "str2" });
			</zscript>
			<listbox id="listbox" width="200px" model="${model}">
				<listhead id="head" sizable="true">
					<listheader id="header1" label="1" />
					<listheader id="header2" label="2" />
				</listhead>
			</listbox>

			<zscript>
				head.addEventListener("onColSize", new EventListener() {
					public void onEvent(Event event) throws Exception {
						System.out.println("width" + header1.getWidth());
					}
				});
			</zscript>

			<button label="show size">
				<attribute name="onClick">
					System.out.println("width" + header1.getWidth());
				</attribute>
			</button>
	</window>

link publish delete flag offensive edit

answered 2010-07-26 03:03:37 +0800

Arsen gravatar image Arsen
384 5

Thanks a lot, samchuang.

link publish delete flag offensive edit

answered 2014-06-13 09:24:15 +0800

ryg78 gravatar image ryg78
29 2

Hi,

Related to 1st question: 1. If button is clicked before header1 is resized then header1.getWidth()=null. After header1 is resized method getWidth() returns actual width in pixels. How should I get actual width before header1 is resized?

Is the answer solving the problem? In my case the header1.getWidth still returns null if header1 never been resized.

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2010-07-24 12:12:13 +0800

Seen: 329 times

Last updated: Jun 13 '14

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More