Hi Carsten,

I just saw the answers to Siarhei's post right  now ...

Carsten Harnisch schrieb:
> Siarhei!
> We had started to work with QxTransformer and picked the
> "DataProvider"-stuff here as a starter for our own implementation. I just
> summarize a few issues that we encountered here. Please feel free to adapt
> these issue to your concept :
>
> 1) Internal Transport-Format 
> The usage of "sub-arrays" for the data-transport is not very handy. The
> current "MDataManager.js" will (JSON-)serialize the data in structures like
> obj.TextFieldName.value = 'data;
>
> as for ComboBoxes this will be :
> obj.ComboBoxFieldName.value = 'data;
> obj.ComboBoxFieldName.selected.value = 'data;
>
> than for Checkboxes:
> obj.CheckBoxFieldName.checked = true/false;
>
> As for writing a backend (e.g. a database storage) this is not very handy,
> as you have to know how get/set the data depending on the clientside used
> widget. So we remodeled this part to always return a "flat" value, so the
> clientside widget is responsible how to "bind" the value to its internal
> "values".
>
> So we have only :
>
> obj.TextFieldName = 'data';  // uses setValue
> obj.ComboBoxFieldName = 123; // selects the ListItem with the value 123 
> obj.CheckBoxFieldName = 1;   // transforms to setChecked(true);
>
> This is much easier on the backside as a "SQL-resultset" could be mapped
> back and force.
>   
As I wrote in my last email, you certainly have a point here - it is not 
a good idea to have the property names widget-specific. However, I would 
not use completely flat values since even though it simplifies things 
quite a bit, you loose the ability to set several properties at once for 
more complex widgets - for example, widgets can be checked and enabled, 
have text and a validation regex, and so on and so on, stuff that could 
change dynamically. I like the idea to be able to keep this flexibility.

Christian

> 2) Error Handling
> Normally a backend would not only store the data but also add some
> validation logic. So we changed the return format of the backend to give the
> ability to return "validation-message" back to the client. This regards
> simply return "error-message" that are routed back to the widget. So the
> widget gets an event (implemented with a MixIn) with the validation error.
> The widget then might do an action e.g. changing the background-color,
> showing an alert, popup a tooltip, or delegate the error to another widget.
> (Here we have a .NET inspired ValidationError-Widget).
>
> 3) Formbased Validation Errors
> In conjunction to 2) we have also situation where the validation has to be
> done on a form-based level. E.g. a "Change Password"-UseCase would need to
> check if 2 password fields ("repeat password") have the same values. Here a
> validation-feedback might need to postback the validation to 2 client-side
> widgets. Our implementation will return also a "Script"-Field that could be
> eval'ed and does the feedback to the user, e.g. :
>
> (done on the serverside) 
> result.script = '
> this.pwd1.setColor('red');
> this.pwd2.setColor('red');
> alert('The passwords have to match');
> ';
>
> ----
> The clientside then just does an eval(result.script);
>   
>
> greetings
>
> Carsten Harnisch
> -----------------------------------
> InTradeSys Limited
>
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag von Siarhei
> Barysiuk
> Gesendet: Mittwoch, 25. Juli 2007 19:46
> An: qooxdoo Development
> Cc: Christian Boulanger
> Betreff: [qooxdoo-devel] Data Binding Mechanism. Qooxdoo and QxTransformer.
>
> Hello folks!
>
> For few last day I was thinking about data binding functionality for qooxdoo
> (including 'plain html forms'
> emulation and auto completion) and I would like to present results of my
> work for discussion.
> I will be really appreciated for any remarks and suggestions from all
> developers. If you have any questions fell free to ask. Hope it will be
> interesting for you.
>
> I would like to notice that this is only concept. I've already implemented
> few parts but not everything.
> I'm working at this task at present. This is last part of work before
> initial release of QxTransformer.
> (In document I didn't pay attention to backend because you can implement
> backend in different ways.
> Would like to concentrate only on JavaScript qooxdoo API and QxTransformer
> syntax.)
>
> The concept is based on functionality which we have now in QxTransformer
> (written by Christian Boulanger) with improvements (which make API more
> flexible).
>
> Please find attached Data Binding Mechanism Concept document.
>
> Thanks for any remarks and suggestions.
>
> Best regards,
> Siarhei Barysiuk
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>   


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to