|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
problems when setting tableModel at runtimeHi, I have a problem when I set my tableModel
and columnModels at runtime. All “special” cellrenderer are
not working (f.e. a Image-renderer just shows the real value instead of an
image) . After I clicked into a cell the whole
column is shown correctly again and everything works fine. Do I have to refresh something? Thanks Tobias ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@... https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel |
|
|
Re: problems when setting tableModel at runtimeOn Fri, Mar 14, 2008 at 9:30 AM, Tobias Koller (GERMO GmbH)
<tko@...> wrote: > I have a problem when I set my tableModel and columnModels at runtime. Unfortunately, changing the column model is not supported. If you look at the documentation for the tableColumnModel property, it specifies that. I once looked into making that run-time configurable, but there are just so many interactions that was would be really, really difficult to do. One of those interactions pertains to the cell renderers which, as you're finding, don't get re-bound as one would expect. Derrell ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@... https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel |
|
|
Re: problems when setting tableModel at runtimeI was thinking about setting cellrenderer at runtime just after my remote table is rendered.
I need to compare the cell value with the previous row's cell value. If there is a difference, I need to high light both of them in red color. This should happen for all visible rows in the Remote Table Can somebody give me some hints on how to do that?. I have some 15 columns. Thanks. Kanugula.
|
|
|
Re: problems when setting tableModel at runtime> I was thinking about setting cellrenderer at runtime just after my
> remote table is rendered. > > I need to compare the cell value with the previous row's cell > value. If there is a difference, I need to high light both of them > in red color. This should happen for all visible rows in the Remote > Table > > Can somebody give me some hints on how to do that?. I have some 15 > columns. The difficulty is accessing the previous row's information. I've got a custom cell renderer (and row renderer) and it has a cellInfo parameter being a map of the cell information. I can access the row information using cellInfo.rowData. In the row data there is a map from column name to column value which is accessed using knowledge from the column definition passed through to the table constructor. There's nothing stopping you putting more information in the row data using another key. Therefore when a row or cell renderer is called I can access that information and do special formatting. In your case the server needs to add information for each row, about whether the cells are equal or not, maybe in a bool array. That data can be retained in the row map and accessed by the cell renderers to set the data correctly. You could calculate the equality in the remote table model but you will have to access the previous row's data which won't be possible if you have just accessed a block in the middle of the table (e.g. the user has scrolled there using the thumb). You don't have the previous row's information. It's only the server that can do the calculation for you. Hugh ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@... https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel |
|
|
Re: problems when setting tableModel at runtimeHugh, thanks for your suggestion.
I was successfull in implementing cellrenderer. The following code works great. No performance issues. CustomCellRenderer.js _getCellStyle : function(cellInfo) { var tableModel = cellInfo.table.getTableModel(); var currRow_CellValue = tableModel.getValue(cellInfo.col, cellInfo.row); var siblingRow_CellValue; if (cellInfo.row % 2 == 0) { siblingRow_CellValue = tableModel.getValue(cellInfo.col, cellInfo.row+1); } else { siblingRow_CellValue = tableModel.getValue(cellInfo.col, cellInfo.row-1); } if (currRow_CellValue != siblingRow_CellValue) { return "color:FF0000"; } else { return arguments.callee.base.apply(this, arguments); } } I am also developing a custom row renderer to set even/odd colors for set of two rows instead of default one row. It is breaking when I do thumb scroll. This may be what your are saying about accessing about previous row's data. CustomRowRenderer.js // overriden createRowStyle : function(rowInfo) { var rowStyle = []; rowStyle.push(";"); rowStyle.push(this._fontStyleString); rowStyle.push("background-color:"); if (rowInfo.focusedRow && this.getHighlightFocusRow()) { rowStyle.push(rowInfo.selected ? this._colors.bgcolFocusedSelected : this._colors.bgcolFocused); } else { if (rowInfo.selected) { rowStyle.push(this._colors.bgcolSelected); } else { if (rowInfo.row % 2 == 0) { if (this._lastColor == this._colors.bgcolEven) { rowStyle.push(this._colors.bgcolOdd); this._lastColor = this._colors.bgcolOdd; } else if (this._lastColor == this._colors.bgcolOdd) { rowStyle.push(this._colors.bgcolEven); this._lastColor = this._colors.bgcolEven; } else { rowStyle.push(this._colors.bgcolEven); this._lastColor = this._colors.bgcolEven; } } else { rowStyle.push(this._lastColor); } } } rowStyle.push(';color:'); rowStyle.push(rowInfo.selected ? this._colors.colSelected : this._colors.colNormal); return rowStyle.join(""); } this._lastColor is my state variable to track the last row color. How do I reset it when the user scrolls the data? Also, I need to add the code for updateDataRowElement(). I am tryingto accomplish this at the client side, if possible. May be I should do some trick at the server side to add the color for each row. Thanks. Kanugula.
|
|
|
Re: problems when setting tableModel at runtime> if (rowInfo.row % 2 == 0) {
> if (this._lastColor == this._colors.bgcolEven) > { > rowStyle.push(this._colors.bgcolOdd); > this._lastColor = this._colors.bgcolOdd; > } > else > if (this._lastColor == this._colors.bgcolOdd) > { > rowStyle.push(this._colors.bgcolEven); > this._lastColor = this._colors.bgcolEven; > } > else > { > rowStyle.push(this._colors.bgcolEven); > this._lastColor = this._colors.bgcolEven; > } That's the problem for the row colour. You can jump around in the table and the last colour will be wrong. Do it like this: if ((rowInfo.row >> 1) % 2 == 0) { rowStyle.push(this._colors.bgcolEven); } else { rowStyle.push(this._colors.bgcolOdd); } ">>" is the shift operator - it does an integer division by 2. So you get: Row >> 1 % 2 colour 0 0 0 Even 1 0 0 Even 2 1 1 Odd 3 1 1 Odd 4 2 0 Even 5 2 0 Even etc. Hugh ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@... https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel |
| Free Forum Powered by Nabble | Forum Help |