Hi,

you can use the function bind (has nothing to do with data binding) to set
the scope of every method. Take a look at
http://demo.qooxdoo.org/current/apiviewer/#qx.lang.Function~bind to see how
you can use it.

Regards,
Martin



Krycek wrote:
> 
> Hi Martin,
> 
> Thanks for the code.
> But I was hoping to have all the bindings created by
> qx.data.controller.Object.It's a little bit strange to have just that case
> treated different.
> Here what I've done:
> 
>       var fields = this._fields;
>       controller.addTarget(this._fields["type"], "selection", "type",
> true,
> {
>       converter : function(data) {
>        for (var i=0, len=fields["type"].getChildren().length; i < len;
> i++)
>        {
>        if (fields["type"].getChildren()[i].getModel() == data)
>        return [fields["type"].getChildren()[i]];
>        }
>        }
>       }, {
>       converter : function(data) {
>        return data[0].getModel();
>        }
>       });
> 
> It works but I have one last question: how to change the converter scope?
> the default for "this" is the options map. I want to change that scope to
> be
> able to remove the first line: var fields = this._fields;
> 
> On Fri, Sep 4, 2009 at 4:44 AM, MartinWittemann
> <[email protected]>wrote:
> 
>>
>> Hello,
>>
>> there are two reasons why your code can not work. First, there is no
>> event
>> for ModelSelection. So you can not bind that like you did. Second,
>> ModelSelection always wraps its selections in an array.
>> Take a look at the following code to see how you can set up a proper two
>> way
>> binding for a RadioButtonGroup using the ModelSelection:
>>
>> qx.Class.define("Model", {
>>  extend : qx.core.Object,
>>  properties : {
>>    name : {
>>      event : "changeName",
>>      init : "r0"
>>    }
>>  }
>> });
>>
>> var rc = new qx.ui.form.RadioButtonGroup();
>> for (var i = 0; i < 10; i++) {
>>  var rb = new qx.ui.form.RadioButton("r" + i);
>>  rb.setModel("r" + i);
>>  rc.add(rb);
>> }
>> this.getRoot().add(rc);
>>
>>
>> var model = new Model();
>>
>> model.bind("name", rc, "modelSelection", {
>> converter : function(data) {
>>  return [data];
>> }});
>>
>> rc.bind("selection", model, "name", {
>>  converter : function(data) {
>>  return data[0].getModel();
>> }});
>>
>> This code works when the property stored in the model is the same than
>> stored in the RadioButtons model. If you have something different, you
>> have
>> to change the coverter for this. But take care, this code only works for
>> RadioButtonGroups and other single selection widget with the selection
>> mode
>> of "one".
>>
>> To your missing else case... right. :D I must have missed that one
>> completely! Just updated the trunk with it. Thanks for the hint!
>>
>> Regards,
>> Martin
>>
>>
>>
>> Krycek wrote:
>> >
>> > Hi,
>> > I'm trying to use the new "model" property in RadioButtons, here is
>> what
>> I
>> > have done so far:
>> >
>> >
>> > --code--
>> >
>> >       var types =
>> >       {
>> >         "r" : "Type 1",
>> >         "c" : "Type 2",
>> >         "d": "Type 3"
>> >       };
>> >
>> >       this._fields["type"] = new qx.ui.form.RadioButtonGroup();
>> >       this._fields["type"].setLayout(new qx.ui.layout.HBox(5));
>> >
>> >       for (var type in types)
>> >       {
>> >         var radioButton = new qx.ui.form.RadioButton(types[type]);
>> >         radioButton.setValue(type == 'r');
>> >         radioButton.setModel(type);
>> >         radioButton.setUserData("value", type);
>> >
>> >         this._fields["type"].add(radioButton);
>> >       }
>> >
>> > -- code --
>> >
>> > if I call: this._fields["type"].setModelSelection(['c']), "Type 2" is
>> > selected as expected (very good).
>> >
>> > But later on the code I have some bindings like:
>> >
>> >   controller.addTarget(this._fields["relevance"], "value", "relevance",
>> > true);
>> >
>> > How do I set the binding to auto select the right choice depending on
>> the
>> > model.type value?
>> >
>> > Do I need to use converters? I hope I don't need to use converters
>> every
>> > time I'm going to use RadioButtons.
>> >
>> > By the way, new qx.ui.form.RadioButtonGroup(new qx.ui.layout.HBox(5))
>> > doesn't work, is that suppose to be like that? Setting the layout later
>> > works ok, though.
>> >
>> > I guess an "else" is missing here:
>> >
>> >     if (layout == null) {
>> >       this.setLayout(new qx.ui.layout.VBox(4));
>> >     }
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> > 30-Day
>> > trial. Simplify your report design, integration and deployment - and
>> focus
>> > on
>> > what you do best, core application coding. Discover what's new with
>> > Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> > _______________________________________________
>> > qooxdoo-devel mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>> >
>> >
>>
>> --
>> View this message in context:
>> http://n2.nabble.com/RadioButtonGroup-and-ModelSelection-tp3573156p3578159.html
>> Sent from the qooxdoo mailing list archive at Nabble.com.
>>
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and
>> focus
>> on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day 
> trial. Simplify your report design, integration and deployment - and focus
> on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/RadioButtonGroup-and-ModelSelection-tp3573156p3584611.html
Sent from the Q&A mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to