Hi Roman,

i am using Safari on Mac OS X 10.5.6. Safar has a good Developement Konsole but in this case i got no Error there. Thank you for the hint with the "this." in front of the login Button, i really forgot this. I don't know how i could oversee this.

Thank you

Am 18.01.2009 um 17:33 schrieb Roman Schmid:

Hi Tom

Well, you're actually assigning the listener to a invalid variable. You never assigned a value to "this.loginButton". You should set it in your
addContent method, like this:
this.loginButton = new qx.ui.form.Button("Login");

Note the "this." in front of "loginButton" :)

What kind of development/testing environment do you use? I think you
should have gotten some error messages in your logs? I strongly
recommend you to use Firefox/Firebug.. helps a lot in JS development.

Cheers - Roman

Thomas Schober wrote:
Hi Roman,

thanks for the help. But the listener is still not executed. I tried the things you described already (without adding the third parameter ,this).
But that did not help. Do you have any other tipps ? When i click the
button nothing happens.

Regards
-Tom

Am 18.01.2009 um 17:19 schrieb Roman Schmid:

Hi

You should always add the listener as reference to the function, like
this:
this.loginListener

NOT: this.loginListener()
the second example will actually call the function and return the
functions return value which is clearly not what you want.

Other than that, i advise you to bind the function to "this" (to make
sure, the function execution takes place in the right context).
Like:
this.loginButton.addListener("execute", this.loginListener, this);
Notice the third parameter here.

Cheers
- Roman

Thomas Schober wrote:
Hi again :)

i try to make some sort of model, view , controler with a login window,
but i have a little problem.

In my Application.js i create an instance of my Controler like this :

var loginContrl = new firstapp.controler.loginControler();
loginContrl.showLogin();


The source of the Controler looks like :

qx.Class.define("firstapp.controler.loginControler",
{
extend : qx.core.Object,



construct : function()
{
  this.loginWindow = new firstapp.ui.loginBox("LoginWindow",null);
},







members :
{
  loginWindow : null,



  performLogin : function()
  {
      alert("blub");
  },



  showLogin : function()
  {
      this.loginWindow.open();
      this.loginWindow.addLoginListener(this.performLogin);
  }



}



});

Additionally i have a loginWindow class, that looks like this :

/*
************************************************************************

 Copyright:

 License:

 Authors:

************************************************************************
*/

/*
************************************************************************

#asset(firstapp/*)

************************************************************************
*/

/**
* This is the main application class of your custom application
"firstapp"
*/
qx.Class.define("firstapp.ui.loginBox",
{
extend : qx.ui.window.Window,



/*

*****************************************************************************
   MEMBERS

*****************************************************************************
*/
construct : function(name,icon)
{
  this.base(arguments,name,icon);
  this.set
  ({
      modal         : true,
      showMinimize  : false,
      showMaximize  : false,
      allowMaximize : false,
      allowClose    : false



  });



  this.addContent();
},



members :
{



   loginButton   : null,
   loginListener : null,



  /**
* This method contains the initial application code and gets called
   * during startup of the application
   */
   addContent : function()
   {
      var windowLayout = new qx.ui.layout.VBox(10);
      this.setLayout(windowLayout);
      this.setMinWidth(300);
      var loginField = new qx.ui.form.TextField("Enter
Login").set({width: 260});
      var passField = new qx.ui.form.PasswordField("Enter
Passw").set({width : 260});
      loginButton = new qx.ui.form.Button("Login");
      this.add(loginField);
      this.add(passField);
      this.add(loginButton);
      this.addListenerOnce("resize", this.center, this);
   },



   addLoginListener : function (listener)
   {
      this.loginListener = listener;
      this.loginButton.addListener("execute",this.loginListener());

   }
}
});

When the loginControler is instantiated, it creates an instance of the login window, registers a listener for the button and then it opens the
window. But the registered listener is not called, when i press the
button. Nothing happens ? Is it not allowed to hand over a function
pointer from another class as listener ?

Thank you
Tom


------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword


------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel


------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword


------------------------------------------------------------------------

_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to