Hi Janak, thank you for your reply. I was ill the last days, so my reply comes a little late.
The additional doc does clear up the topic a little, but i have still some questions. I did some research on the internet and also some testing with the IDirtyDataOwner and figured out the following: 1. My component implements IDirtyDataOwner and i tried to register it with the UISession once the basic object becomes created (in createBasicObject(Object[])). But it did not work as expected. The flushDirtyData() method became called only once (due to a round-trip while the dialog was open). Changes which had been made afterwards where not transfered to the server because flushDirtyData() was not called again. 2. So i tried to register my client component as IDirtyDataOwner with the UISession every time it has changed data in it. This yields the desired result, all changes become transmitted to the server. >From this experience i draw the conclusion that the UISession unregisters all >dirtyDataOwners once their 'dirty data' has been transmitted and that it is >only required to register a component as dirtyDataOwner when it has actual >'dirty data'. But the component must register as dirtyDataOwner each time it >becomes dirty or the latest changes will not become transmitted. If this is the case, then it should be noted in the API-doc as well. Otherwise the users/programmers might get confused (just as i). Can you confirm my observation or did i get it all wrong? Kind regards Maik Scheibler Sächsische Aufbaubank - Förderbank - (SAB) Informationstechnologie Pirnaische Str. 9 01069 Dresden Tel.: +49 (351) 4910 - 1352 mailto:[EMAIL PROTECTED] -----Ursprüngliche Nachricht----- Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Janak Mulani Gesendet: Freitag, 4. April 2008 11:24 An: [email protected] Betreff: RE: [ULC-developer] How to use IDirtyDataOwner Hi Maik, Recently we added the following Javadoc to IDirtyDataOwner for the next release. If a client side proxy of a component wishes to update the state of its corresponding server component, it can do that using an implementation of this interface. This is required when there is a state change on the client due to user interaction such as window resizing, button selection state, enabled state, etc. The component's client side proxy can register an object of the class implementing this interface with the <code>UISession</code> using <code>getSession().addDirtyDataOwner()</code>. During the next round-trip before sending the requests, <code>flushDirtyData()</code> is called on all <code>IDirtyDataOwner</code>s, wherein they can update the state of the server-side widget using a call like <code>updateStateULC("<attributeName>", getBasicComponent().get<AttributeName>())</code>. The <code>updateStateULC()</code> calls are handled and dispatched on the server side component by its <code>ULCProxyDispatcher</code>. Please let me know if this is helpful or you need more info. Thanks and regards, Janak > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:ulc-developer- > [EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] > Sent: Wednesday, April 02, 2008 7:17 PM > To: [email protected] > Subject: [ULC-developer] How to use IDirtyDataOwner > > Hi, > > i'm trying to understand the concept of the > IDirtyDataOwner.flushDirtyData() method. There is very little about it on > the Extension Guide or the API docs. > > My goal is to implement an widget which is a sophisticated HTML editor. So > i need to understand how and when to transfer the user input back to the > server, so that it is available when the next server-round-trip is > running. > > The extension guide does explain how to use the updateStateULC methods and > that they are causing seperate server-round-trips (which i want to avoid) > when they are 'called outside the context of a flushDirtyData() method > call'. > > The UISession offers the method 'addDirtyDataOwner(dirtyDataOwner)', but > it is not explained how the dirty detection works or how it is triggered. > > Can anyone clearify this? > > > > Best regards > Maik Scheibler > > Sächsische Aufbaubank - Förderbank - (SAB) > Informationstechnologie > Pirnaische Str. 9 > 01069 Dresden > Tel.: +49 (351) 4910 - 1352 > mailto:[EMAIL PROTECTED] > > > Sächsische Aufbaubank - Förderbank - Anstalt des öffentlichen Rechts, > Sitz Dresden, > Amtsgericht Dresden HRA 5353, > Ust-IdNr. DE179593934. > > _______________________________________________ > ULC-developer mailing list > [email protected] > http://lists.canoo.com/mailman/listinfo/ulc-developer Sächsische Aufbaubank - Förderbank - Anstalt des öffentlichen Rechts, Sitz Dresden, Amtsgericht Dresden HRA 5353, Ust-IdNr. DE179593934. _______________________________________________ ULC-developer mailing list [email protected] http://lists.canoo.com/mailman/listinfo/ulc-developer
