| /* |
| * Copyright 2007 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.user.client.ui; |
| |
| import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter; |
| |
| import java.util.HashMap; |
| |
| /** |
| * TODO: document me. |
| */ |
| public abstract class HTMLTableProfile extends WidgetProfile { |
| |
| public abstract HTMLTable createTable(int rows, int columns); |
| |
| public void addStyleName(int rows, int columns) { |
| HTMLTable HTMLTable = createTable(rows, columns); |
| resetTimer(); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| HTMLTable.getCellFormatter().addStyleName(row, column, "foo"); |
| } |
| } |
| timing("addStyleName(" + rows + "," + columns + ")"); |
| } |
| |
| public void setStyleName(int rows, int columns) { |
| System.out.println("Hybrid mode"); |
| HTMLTable HTMLTable = createTable(rows, columns); |
| resetTimer(); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| HTMLTable.getCellFormatter().setStyleName(row, column, |
| row + "," + column); |
| } |
| } |
| timing("setStyleName(" + rows + "," + columns + ")"); |
| } |
| |
| public void createTableTiming(int rows, int columns) { |
| resetTimer(); |
| createTable(rows, columns); |
| timing("createTable(" + rows + "," + columns + ")"); |
| } |
| |
| public void getStyleName(int rows, int columns) { |
| System.out.println("Hybrid mode"); |
| HTMLTable HTMLTable = createTable(rows, columns); |
| resetTimer(); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| HTMLTable.getCellFormatter().getStyleName(row, column); |
| } |
| } |
| timing("getStyleName(" + rows + "," + columns + ")"); |
| } |
| |
| public void hashMapShare(int rows, int columns) { |
| resetTimer(); |
| HashMap m = new HashMap(); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| Label label = new Label(column + "i"); |
| m.put(row + "," + column, label); |
| } |
| } |
| timing("hashMapShare(" + rows + "," + columns + ")"); |
| } |
| |
| public void setHTMLTiming(int rows, int columns) { |
| resetTimer(); |
| HTMLTable HTMLTable = createTable(rows, columns); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| HTMLTable.setHTML(row, column, "test"); |
| } |
| } |
| timing("setHTML(" + rows + "," + columns + ")"); |
| } |
| |
| public void setTextTiming(int rows, int columns) { |
| resetTimer(); |
| HTMLTable HTMLTable = createTable(rows, columns); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| HTMLTable.setText(row, column, "test"); |
| } |
| } |
| timing(" setText(" + rows + "," + columns + ")"); |
| } |
| |
| public void setWidgetTiming(int rows, int columns) { |
| resetTimer(); |
| HTMLTable HTMLTable = createTable(rows, columns); |
| RootPanel.get().add(HTMLTable); |
| for (int row = 0; row < rows; row++) { |
| for (int column = 0; column < columns; column++) { |
| Label label = new Label(column + "i"); |
| HTMLTable.setWidget(row, column, label); |
| } |
| } |
| timing("setWidgetTiming(" + rows + "," + columns + ")"); |
| } |
| |
| public void columnAddStyleName(int rows, int cols) { |
| HTMLTable table = createTable(rows, cols); |
| resetTimer(); |
| ColumnFormatter formatter = table.getColumnFormatter(); |
| for (int i = 0; i < cols; i++) { |
| formatter.addStyleName(i, "fooStyle"); |
| } |
| timing("column.addStyleName(" + rows + ", " + cols + ")"); |
| } |
| |
| public void testTimings() throws Exception { |
| timing(10, 10); |
| timing(20, 10); |
| timing(20, 20); |
| timing(40, 20); |
| timing(40, 40); |
| timing(80, 40); |
| timing(80, 80); |
| |
| throw new Exception("Finished Profile"); |
| } |
| |
| public void timing(int rows, int columns) { |
| columnAddStyleName(rows, columns); |
| } |
| |
| } |