thanks for the suggestion, i havenT thought bec. of tackling the problem :) you are right, this is an important point for the design of the application. i should pay attention this.
> > 2009/12/19 jamesr <[email protected]> > > Commenting on handlers, i like the way laszlo allows you to pull out api >> from base-class, by way of handlers. it's a very graceful way to set up >> state throughout the application and i always declare states first when >> defining a class i.e. it's not "connectionOK" it's "connected", which is a >> word with a yes/no connotation. If you look at these verb attributes as >> states a node can be in and you have other objects that all listen to those >> single nodes, you can solve a lot of UI problems by factoring all the states >> out from what-happens-when-state-changes, All UI's can be described that >> way. >> >> Think verbs (selected, clicked, completed, finished, connected, moved, >> moving, clicking, completing, finishing, etc) and you'll have a good design. >> YMMV :) >> >> cem sonmez wrote: >> >>> @P T Withington : I looked at your your solution for creating delegates. >>> When i need to use the delegates, i m going to use the way that you >>> mentioned. While looking at the developer documentation of openlaszlo, I >>> hadnT understand the meaning of delegates and the usage of it. it seemed to >>> me a bit confused :) Now, i think know more about delegates than before, >>> thanks >>> >>> @jamesr : also thank you for the information. I worked out the problem. I >>> used an attrbiute in the connection.lzx >>> >>> <attribute name="connectionOK" value="false" type="boolean"/> >>> >>> and in the case of "NetConnection.Connect.Success", i set it to true. >>> Then while creating an object of sharedObject, i used like that : >>> >>> <sharedObjectChat id="soChat"> >>> <handler name="onconnectionOK" reference="conn"> >>> Debug.info("connectionOK attribute operation, value >>> :%w",conn.connectionOK); >>> if (conn.connectionOK==true) { >>> //this.setAttribute("createSharedObject",true); >>> this.connect("chat", conn._conn, true); >>> this.so.client=this; >>> } >>> </handler> >>> </sharedObjectChat> >>> >>> So itS ok now. İt is impossible to learn something wihout making mistakes >>> :) >>> >>> Best regards. >>> >>> 2009/12/18 P T Withington <[email protected] <mailto:[email protected]>> >>> >>> >>> I have a proposed "solution" for the LZX programmer having to >>> create delegates in script in: >>> >>> http://jira.openlaszlo.org/jira/browse/LPP-7816 >>> >>> Basically, I want you to be able to declare a handler without >>> attaching it to an event at declaration time (and you would later >>> use script to register the handler on the event it is to handle). >>> The main purpose for this change is that <handler /> will >>> automatically be managed, whereas delegates must be manually >>> managed (and destroyed) or they can lead to memory leaks. >>> >>> On 2009-12-18, at 16:03, jamesr wrote: >>> >>> > for the record, the two use cases for making a delegate are >>> > >>> > 1) you want to compute what object to latch onto >>> programmatically and >>> > 2) you want to latch onto something that is not yet created at >>> the handler init phase. >>> > >>> > don't see any other use, although the two above are obviously >>> important >>> > >>> > cem sonmez wrote: >>> >> you are exactly right. I want to make some operations when the >>> netconnection successful event is fired. Actually i m trying to >>> get the shared object on the server side, so at first i need a >>> netconnection instance to do that. ThatS why i thought that i >>> should try delegates. I havenT used delegates before, but i >>> thought that this is the just one solution to handle the >>> operations depend on the related event. >>> >> >>> >> The method you said, using an attribute in the connection class >>> seems the better way. Till now, i havenT needed the delegates. I >>> hope using connection status attribute in the connection class >>> will fix the problem. >>> >> >>> >> I m going to post back the results here of course. >>> >> Thanks for the reply J >>> >> >>> >> 2009/12/18 jamesr <[email protected] >>> <mailto:[email protected]> <mailto:[email protected] >>> >>> <mailto:[email protected]>>> >>> >> >>> >> I can tackle it. let's see; i'd write the following, after an >>> >> introduction (all code is untested and represents a pattern, >>> adapt >>> >> it as you will) >>> >> >>> >> Your problem: You want to do is send a "connection successful" >>> >> event that you can catch, signaling that a method is to be >>> called >>> >> to continue using the connection. You seem to be trying to >>> do it >>> >> by setting up the delegate manually, when i think, looking >>> at your >>> >> code, that you have hooks to fire events on laszlo nodes >>> that can >>> >> communicate this state change. >>> >> >>> >> Solution: An event is anytime you use x.setAttribute() by >>> the way >>> >> - that's what it does, makes sure that handlers are fired. That >>> >> said, if you declare an attribute of any laszlo node and in your >>> >> code, when you have success on your net connection, you say >>> >> "somenode.setAttribute('success, true);" then in another >>> node you >>> >> can say, <handler name="onfoo" >>> reference="somenode">...</handler> >>> >> and in that code you can then do what ever other steps are >>> >> required to use the connection. >>> >> >>> >> Further thought if i'm wrong: can you say why it is you >>> decided to >>> >> use manual delegates? it might make things clearer for me, i've >>> >> not used the net connection code you have there but make >>> guesses. >>> >> >>> >> .j. >>> >> cem sonmez wrote: >>> >> >>> >> doesnT anyone have any idea. I got stuck here. Waiting for >>> >> someones advices. >>> >> Thanks >>> >> >>> >> 2009/12/18 cem sonmez <[email protected] >>> <mailto:[email protected]> >>> >> <mailto:[email protected] >>> <mailto:[email protected]>> <mailto:[email protected] >>> >>> <mailto:[email protected]> >>> >> <mailto:[email protected] >>> <mailto:[email protected]>>>> >>> >> >>> >> >>> >> hi >>> >> when i try do use the delegate such like : >>> >> >>> >> if( typeof this.del == "undefined" ) { >>> >> this.del = new LzDelegate(this, >>> "connect('chat', conn, >>> >> true)" ); >>> >> } this.del.register(conn, >>> >> "netStatusHandler('NetConnection.Connect.Success')" ); >>> >> } >>> >> >>> >> I m getting the error on the debug like : >>> >> >>> >> *soChat.connect('chat', conn, true) => (void 0) (must >>> be a >>> >> function)* >>> >> >>> >> Actually i want to do this : call the *connect* >>> method on the >>> >> class when the netStatusHandler method of the *conn* >>> object has >>> >> been completed. I m not sure that am i using the delegate >>> >> correctly (as i m getting the error, of course not :)). >>> >> >>> >> I have attached the relevant files. >>> >> Can anyone help me what i m missing to do. >>> >> >>> >> Kind regards. >>> >> >>> >> -- Cem SONMEZ >>> >> >>> >> >>> >> >>> >> >>> >> -- Cem SONMEZ >>> >> >>> >> >>> >> >>> >> >>> >> -- >>> >> Cem SONMEZ >>> >>> >>> >>> >>> -- >>> Cem SONMEZ >>> >> > > > -- > Cem SONMEZ > -- Cem SONMEZ
