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

Reply via email to