litesoft
@ 948
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.gen2.table.client; import com.google.gwt.user.client.*; import java.util.*; /** * Helper class to bulk load {@link FixedWidthGrid} tables. * * @param <RowType> the data type of the row values */ public class FixedWidthGridBulkRenderer<RowType> extends SelectionGridBulkRenderer<RowType> { /** * Constructor. Takes in the number of columns in the table to allow efficient * creation of the header row. * * @param grid {@link FixedWidthGrid} to be be bulk rendered * @param tableDef the table definition that should be used during rendering */ public FixedWidthGridBulkRenderer( FixedWidthGrid grid, TableDefinition<RowType> tableDef ) { super( grid, tableDef ); } /** * Constructor. Takes in the number of columns in the table to allow efficient * creation of the header row. * * @param grid {@link FixedWidthGrid} to be be bulk rendered * @param sourceTableDef the external source of the table definition */ public FixedWidthGridBulkRenderer( FixedWidthGrid grid, HasTableDefinition<RowType> sourceTableDef ) { super( grid, sourceTableDef ); } /** * Gets the new ghost element from the table. * * @param table the table * * @return the new ghost row */ protected native Element getBulkLoadedGhostRow( HTMLTable table ) /*-{ return table.@com.google.gwt.gen2.table.client.HTMLTable::getBodyElement()( table ).rows[0]; }-*/; @Override protected void renderRows( Iterator<RowType> iterator, final RenderingOptions options ) { FixedWidthGrid table = (FixedWidthGrid) super.getTable(); options.headerRow = DOM.toString( table.getGhostRow() ); super.renderRows( iterator, options ); } @Override protected void renderRows( String rawHTMLTable ) { super.renderRows( rawHTMLTable ); // Update the ghost row variable after the num columns has been set Element newGhostRow = getBulkLoadedGhostRow( getTable() ); FixedWidthGrid grid = (FixedWidthGrid) getTable(); grid.setGhostRow( newGhostRow ); grid.updateGhostRow(); } } |