Here the exception:
An error occurred at line number 10 in file 
/D:/DVPT/PIVOT/src/test/ButtonPressTest.bxml:
java.lang.NullPointerException: null script
        at 
com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:122)
        at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
        at 
org.apache.pivot.beans.BXMLSerializer.processEndElement(BXMLSerializer.java:1250)
        at 
org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:440)
        at 
org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:614)
        at 
org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:568)
        at 
org.apache.pivot.beans.BXMLSerializer.readObject(BXMLSerializer.java:534)
        at test.ButtonPressTest.startup(ButtonPressTest.java:37)
        at 
org.apache.pivot.wtk.DesktopApplicationContext$2.run(DesktopApplicationContext.java:594)
        at 
org.apache.pivot.wtk.ApplicationContext$QueuedCallback.run(ApplicationContext.java:1474)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Here is the code: ButtonPressTest.java
package test;
import org.apache.pivot.beans.BXMLSerializer;
import org.apache.pivot.collections.Map;
import org.apache.pivot.wtk.*;
public class ButtonPressTest implements Application {
  public static final class ButtonPress implements ButtonPressListener {
    public void buttonPressed(Button button) {
      System.out.println("button pressed");
    }
  }
  private Window window = null;
  public void startup(Display display, Map<String, String> properties) throws 
Exception {
    BXMLSerializer bxmlSerializer = new BXMLSerializer();
    window = (Window) bxmlSerializer.readObject(ButtonPressTest.class, 
"ButtonPressTest.bxml");
((PushButton)bxmlSerializer.getNamespace().get("Button2")).getButtonPressListeners().add( new ButtonPress());
    window.open(display);
  }
  public boolean shutdown(boolean optional) throws Exception {
    if (window != null) {
      window.close();
    }
    return false;
  }
  public void suspend() throws Exception {
  }
  public void resume() throws Exception {
  }
  public static void main(String[] args) {
    DesktopApplicationContext.main(ButtonPressTest.class, args);
  }
}
And the BXML: ButtonPressTest.bxml
<Window title="Test" maximized="true"
    xmlns:bxml="http://pivot.apache.org/bxml";
    xmlns:test="test"
    xmlns="org.apache.pivot.wtk">
<BoxPane orientation="horizontal">
<PushButton bxml:id="Button1" buttonData="Listener added in BXML">
<buttonPressListeners>
<test:ButtonPressTest.ButtonPress/>
</buttonPressListeners>
</PushButton>
<PushButton bxml:id="Button2" buttonData="Listener added in Java">
</PushButton>
</BoxPane>
</Window>



On 31/01/2011 21:16, Chris Bartlett wrote:
I am pretty sure that it is possible, and the syntax looks OK to me. I don't have a dev environment in front of me to check though.

What exception are you seeing? Can you try to post a short example of a simple listener and BXML which demonstrate the exception.

Chris

On 1 February 2011 02:13, anton dos santos <[email protected] 
<mailto:[email protected]>> wrote:

    Hi
    I want to add a listener coded in java to a button. I tried following 
syntax:

    |||<||PushButton| |buttonData||=||"Click Me!"||>|
    |||<||buttonPressListeners||>|
    |<utils:MyListener/>|
    |||</||buttonPressListeners||>|
    |||</||PushButton||>|

    but got an exception.
    It seems to me that only scripts can be added as listeners in BXML. Is this 
right or am I
    doing something wrong in the above code ?

    Regards
    Anton



Reply via email to