0

como puedo invocar un componente desde otra ventana zk

asked 2014-08-14 21:50:09 +0800

M11gu33l gravatar image M11gu33l
1

quisiera que me ayuden tengo este codigo de ejemplo:

este es mi controlador .java

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.Menuitem;
import org.zkoss.zul.Window;

public class zprueba extends SelectorComposer<window>{

private static final long serialVersionUID = 1L;

@Wire
   private Button deshabilitar;
@Wire
   private Menuitem ejemplo2;

@Listen("onClick = #deshabilitar1")    
   public void habilitar(){
    ejemplo2.setDisabled(false);
   }

}

y esta es mi vista :

<window apply="poo.zprueba"> 

 <menubar style="font-size:13pt">
    <menuitem id="ejemplo1" label="ejemplo1" >
              <attribute name="onClick"><![CDATA[
                   if (!win.isVisible())
                    win.setVisible(true);
                    win.doHighlighted();
                   ]]></attribute>
        </menuitem>
            <menuitem id="ejemplo2" label="ejemplo2" disabled="true"/>
  </menubar>    

     <window id="win" title="ventana" visible="false" minimizable="true" border="normal" width="200px" height="100px" apply="poo.zprueba">
        <hbox align="center" >
         <button id="deshabilitar1" label="deshabilitar" style="font-size:13pt"/>
        </hbox>
    </window>
 </window>

y me sale el siguiente error

     ago 14, 2014 3:24:36 PM org.zkoss.zk.ui.impl.UiEngineImpl handleError
     GRAVE: 
     java.lang.NullPointerException
       at poo.zprueba.habilitar(zprueba.java:21)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)...............

el problema indica que es incorrecta la manera en la que habilito el menuitem="ejemplo2" asi que quisiera que me ayuden con ese inconveniente les quedo agradecido de antemano.

delete flag offensive retag edit

Comments

ayudenme porfa!!!

M11gu33l ( 2014-08-14 22:06:51 +0800 )edit

comenten :/

M11gu33l ( 2014-08-15 15:33:24 +0800 )edit

2 Answers

Sort by » oldest newest most voted
0

answered 2014-08-17 21:30:37 +0800

LuisVelez gravatar image LuisVelez
12

Hola

Te sugiero lo siguiente

<zk xmlns="&lt;a href=" http:="" www.zkoss.org="" 2005="" zul"="">http://www.zkoss.org/2005/zul"> <window apply="poo.Zprueba"> <menubar style="font-size:13pt"> <menuitem id="ejemplo1" label="ejemplo1" &gt;="" <attribute="" name="onClick"> </menuitem> <menuitem id="ejemplo2" label="ejemplo2" disabled="true"/> </menubar>

    <groupbox mold="3d" closable="false">
        <hbox align="center" >
            <button id="deshabilitar1" label="deshabilitar" style="font-size:13pt"/>
        </hbox>
    </groupbox>
</window>

</zk>

public class Zprueba extends GenericForwardComposer{

Menuitem ejemplo2;

@Override
public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp); //To change body of generated methods, choose Tools | Templates.
}

public void onClick$deshabilitar1(){
    ejemplo2.setDisabled(false);
}

}

link publish delete flag offensive edit
0

answered 2014-08-18 22:57:30 +0800

M11gu33l gravatar image M11gu33l
1

gracias por responder, probé tu codigo y si funciona pero en la misma ventana, asi ya lo habia hecho pero eso es lo que no quiero yo necesitaba habilitarlo pero desde otra ventana, queria saber si se podia pero hasta ahora no puedo, en realidad realice esta pequeña aplicacion solo para demostrarte que es lo que quiero ya que en realidad era para habilitar ciertas opciones segun el usuario que ingrese (esto es en la app original). Si puedes ayudarme en esa parte como yo la quiero hacer te lo agradeceria mucho ya que lo puedo estar aplicando en otra parte de mi app, pero si no no te preocupes que ya decidi hacerlo en la misma ventana principal para no tener que llamarlo desde otra.

link publish delete flag offensive edit
Your answer
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
1 follower

RSS

Stats

Asked: 2014-08-14 21:50:09 +0800

Seen: 72 times

Last updated: Aug 18 '14

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