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