0

Get value from another Window Modal and fill in textbox

asked 2012-07-21 07:09:16 +0800

onsir gravatar image onsir
132 2

How to get value from Window modal and fill in textbox ?

i have code like this
file Window1.zul for show Window2

<?xml version="1.0" encoding="UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./window1" ?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<zk xmlns="http://www.zkoss.org/2005/zul"                                       xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.zkoss.org/2005/zul
       http://www.zkoss.org/2005/zul/zul.xsd">

<zscript>
<![CDATA[
    import controller.window1Controller;
    import controller.window2Controller;
]]>
</zscript>

    <window id="window1t" width="650px"   title="Input" border="normal" apply="${Window1Controller}">
        <textbox id="txtDisc" /> <!-- I wan fill this textboxt from window2 
        <button id="btnShowWindow2"   label="Show Window2" forward="onClick=onBtnClick(evt)" />

    </window>
</zk>


Window1Controller.java

@org.springframework.stereotype.Component("Window1Controller")
@Scope("prototype")
public class Window1Controller extends GenericForwardComposer {

@Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
   }

 public void onBtnClick(Event evt) {
       try {

              //show window2
            Executions.createComponents("/WEB-INF/zk/Windows2.zul",window1,null);

        } catch (Exception ex) {
            ex.printStackTrace();
         }
    }
}


Window2.zul

<?xml version="1.0" encoding="UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./window2" ?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>

<zk xmlns="http://www.zkoss.org/2005/zul"
    xmlns:h="http://www.w3.org/1999/xhtml"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.zkoss.org/2005/zul  http://www.zkoss.org/2005/zul/zul.xsd">


    <zscript>
<![CDATA[
    import controller.Windows2Controller;
    ]]>
    </zscript>

    <window id="window2 title="List" border="normal" width="400px"  height="450px" closable="true"
        mode="modal" apply="${Window2Controller"}>


            <div>
                <button id="btnClose"   label="Close"  forward="onClick=onClickClose(evt)" />
            </div>

        </window>
    </zk>


Window2Controller.java

@org.springframework.stereotype.Component("Window2Controller")
@Scope("prototype")
public class Window2Controller extends GenericForwardComposer {

    //close window2
    public void onClickClose(Event evt) {
     
      String typeDisc="InternalDisc"; //this value i want send to Window1, and fill in textbox txtDisc
                                                              //when this window close
      
       Window window2=(Window) evt.getTarget();
       window2.detach();

    }
}

thanks

delete flag offensive retag edit

3 Replies

Sort by ยป oldest newest

answered 2012-07-21 12:05:37 +0800

terrytornado gravatar image terrytornado flag of Germany
9393 3 7 16
http://www.oxitec.de/

This is working by overhanding the controllers (setter/getter)

Look here.

best
Stephan

link publish delete flag offensive edit

answered 2012-07-23 02:07:42 +0800

onsir gravatar image onsir
132 2

updated 2012-07-23 02:09:39 +0800

I have modified my code like this in file Composer/controller

Window1Controller.java
Extend
@org.springframework.stereotype.Component("Window1Controller")
@Scope("prototype")
public class Window1Controller extends GenericForwardComposer {


private Window2Controller window2Controller;

// protected Textbox txtDisc; //first i made protected, got error then i change to private got error
private static Textbox txtDisc;


@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}

public void onBtnClick(Event evt) {
try {

//show window2
Executions.createComponents("/WEB-INF/zk/Windows2.zul",window1,null);

} catch (Exception ex) {
ex.printStackTrace();
}
}
}


//seter geter Window2Controller




Window2Controller.java
Extend
@org.springframework.stereotype.Component("Window2Controller")
@Scope("prototype")
public class Window2Controller extends GenericForwardComposer {


private Window1Controller window1Controller;


//close window2
public void onClickClose(Event evt) {

String typeDisc="InternalDisc"; //this value i want send to Window1, and fill in textbox txtDisc
//when this window close

getWindow1Controller().txtDisc.setValue(typeDisc);

Window window2=(Window) evt.getTarget();
window2.detach();

}
}


//setter getter window1Controller




i got error
error: txtDisc has private access in Window1Controller

thanks

link publish delete flag offensive edit

answered 2012-07-23 03:44:20 +0800

onsir gravatar image onsir
132 2

solved i use EventQueue

thanks

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: 2012-07-21 07:09:16 +0800

Seen: 199 times

Last updated: Jul 23 '12

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