Hi tobi,
I don't know exactly your use case but if you can use the grid instead, do
so.
No matter what way you will go, i'm sure everyone is interested in the
outcome. ;)
Best,
Martin
oetiker wrote:
>
> Hi Martin,
>
> I was meditating on this problem tonight, and I see two scenarios:
>
> a) create a cellrenderer.Canvas which adds a canvas tag with a
> running id into the table and adds the values with the id into a
> queue.
>
> _getContentHtml : function(cellInfo) {
> var id = this.__id+cellInfo.row+'x'+cellInfo.col;
> this.__queue.push([id,cellInfo.value]);
> return "<canvas id='"+id+"'></canvas>";
> },
>
> using the paneReloadsData I would then call the new 'update'
> method on the cellrenderer object, causing it to render all the
> canvas elements in the __queue, much like you suggested below.
>
> on the other hand,
>
> b) my use case is such that I am updateing the table every few
> seconds with new data coming from the server. Since I am
> replacing the entire table content on every update I wonder if
> this is the most efficient thing todo, especially since the table
> is only 10 - 100 lines long. I can see the browser using an
> increassing amount of memory as the table is being updated ...
>
> if the table aproach does not work I will try the grid layout
> instead. This would would also solve the canvas issue since the
> grid can contain normal widgets ...
>
> cheers
> tobi
>
> Yesterday MartinWittemann wrote:
>
>>
>> Hello Tobi,
>>
>> I just tried reproduce your problem but I guess there is no event exactly
>> dedicated to such a scenario. I tried the paneReloadsData of the table
>> pane
>> and it worked more or less. Take a look at the modified table playground
>> example to see how you could do it.
>>
>> function createRandomRows(rowCount) {
>> var rowData = [];
>> var nextId = 0;
>> for (var row = 0; row < rowCount; row++) {
>> rowData.push([ nextId++, " abc " ]);
>> }
>> return rowData;
>> }
>>
>> // window
>> var win = new qx.ui.window.Window("Table").set({
>> layout : new qx.ui.layout.Grow(),
>> contentPadding: 0
>> });
>> this.getRoot().add(win);
>> win.open();
>>
>> // table model
>> var tableModel = new qx.ui.table.model.Simple();
>> tableModel.setColumns([ "ID", "HTML" ]);
>> tableModel.setData(createRandomRows(10));
>>
>> // table
>> var table = new qx.ui.table.Table(tableModel).set({
>> decorator: null
>> })
>> win.add(table);
>>
>> // table column model
>> var tcm = table.getTableColumnModel();
>> tcm.setDataCellRenderer(1, new qx.ui.table.cellrenderer.Html());
>>
>> var scroller = table.getPaneScroller(0);
>> var pane = scroller.getTablePane();
>> pane.addListener("paneReloadsData", function() {
>> console.log(document.getElementById("xx1"));
>> }, this);
>>
>> Anyway, I will talk to Fabian, who is our Table maintainer. Perhaps he
>> has a
>> more elegant solution to this.
>> Best,
>> Martin
>>
>>
>> oetiker wrote:
>> >
>> > Folks,
>> >
>> > I would like to place a canvas element into a table cell. Putting
>> > the <canvas></canvas> html there is simple, but since I need access
>> > to the DOM element to paint on the canvas and in the cellrenderer
>> > I am only dealing with a html string I am a bit lost as to the best
>> > aproach for this ...
>> >
>> > is there some event which I could listen for as to when the cells
>> > html is put into the DOM ?
>> >
>> > cheers
>> > tobi
>> >
>> >
>> > --
>> > Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
>> > http://it.oetiker.ch [email protected] ++41 62 775 9902 / sb: -9900
>> >
>> >
>> ------------------------------------------------------------------------------
>> > 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
>> >
>> >
>>
>>
>
> --
> Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
> http://it.oetiker.ch [email protected] ++41 62 775 9902 / sb: -9900
>
> ------------------------------------------------------------------------------
> 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/canvas-in-a-table-cell-tp4054585p4056520.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