I think your issue is the use of 'this' inside the eventlistener. At that
point, 'this' might not refer to what you think it does. I suggest creating
a variable of 'this' prior to the eventlistener code and use the variable
inside the function. That should clear up any ambiguity it might have.

Jim

On 2/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

On Wednesday 07 February 2007 00:11, you wrote:
> var element = document.getElementById(id);
>
> the above line will not work until the object has been rendered. At the
> point you are trying to use it, the object has been created but not
> rendered. You need to place the entire for loop into a function that is
> called in the layout event 'appear'. This way it does not get called
until
> the rest of the screen is rendered.
Well, I tried your suggestion, it returns valid Element, but now I got
another
problem. I did this:

    layout.addEventListener('appear', function() {
        count = 300;
        for(var i = 0; i < count; i++) {
            var id = 'p' + i;
            this.debug(id);
            var element = document.getElementById(id);
            this.debug(i + ' = ' + element);
            if(element == null) continue;
            for(var j = 0, list = this.controls[i], len = list.length; j <
len; j++) {
                this.debug('c = ' + list[j].getElement());
                element.appendChild(list[j].getElement());
            }
        }
        qx.ui.core.Widget.flushGlobalQueues();
    }, this);

And now list[j].getElement() returns null... Actually, is there a way to
generate the elemnt of widget inplace? I thought that flushGlobalQueues
should help? I even added:

qx.ui.core.Widget.addToGlobalWidgetQueue(text);
qx.ui.core.Widget.addToGlobalElementQueue(text);

But nothing  helps.

Thanks,
        Alexei Golovko

> On 2/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > This should work. But this is really not a thing qooxdoo supports.
> > > The element property can be seen as protected - even if not declared
> > > as this currently.
> >
> > Unfortunatelly, this code doesn't work (getElementById always returns
> > null).
> > Maybe I'm doing something wrong? Could you plz correct me then?
> >
> > Here is the main method of my application (it is just a brief
testing):
> >
> > qx.Proto.main = function(e) {
> >     var layout = new qx.ui.layout.VerticalBoxLayout();
> >     layout.set({top:0, bottom:0, left:0, right:0, overflow:'scrollY',
> > allowStretchY:true});
> >     layout.addToDocument();
> >
> >     var count = 300;
> >     var controls = {};
> >     var html = '<table width="100%" border="1"><th width="0"></th><th
> > width="50%"></th><th width="0"></th><th width="50%
> > "></th>';
> >     for(var i = 0; i < count; i++) {
> >         html += '<tr><td>Label:</td><td><div style="height: 30px;"
id="p'
> > + i
> > + '"></div></td><td>Another&nbsp;Label:</t
> > d><td><input></td></tr>' + "\n";
> >
> >         var text = new qx.ui.form.TextField('TextField ' + i);
> >         text.set({left:0, right:30, top:0});
> >         text.setStyleProperty('position', 'relative');
> >         controls[i] = [text];
> >     }
> >     html += "</table>";
> >
> >     this.controls = controls;
> >
> >     var embed = new qx.ui.embed.HtmlEmbed(html);
> >     layout.add(embed);
> >
> >     qx.ui.core.Widget.flushGlobalQueues();
> >
> >
> >     for(var i = 0; i < count; i++) {
> >         var id = 'p' + i;
> >         this.debug(id);
> >         var element = document.getElementById(id);
> >         this.debug(i + ' = ' + element);
> >         if(element == null) continue;
> >         for(var j = 0, list = controls[i], len = list.length; j < len;
> > j++) {
> >             element.appendChild(list[j].getElement());
> >         }
> >     }
> >     qx.ui.core.Widget.flushGlobalQueues();
> > };
> >
> > Thanks,
> >         Alexei Golovko
> >
> >
-------------------------------------------------------------------------
> > Using Tomcat but need to do more? Need to support web services,
security?
> > Get stuff done quickly with pre-integrated technology to make your job
> > easier.
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> >
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > _______________________________________________
> > qooxdoo-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to