)]}'
{
  "commit": "6bef5d4e6db1e71a18fafcd5723af4285163f8e7",
  "tree": "644d2c3d5ef4835e38a83805d8d07b48a039942a",
  "parents": [
    "3596051358c9837073961e748a496a4587ed586c"
  ],
  "author": {
    "name": "pengzhuang@google.com",
    "email": "pengzhuang@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Thu Aug 18 14:20:07 2011 +0000"
  },
  "committer": {
    "name": "pengzhuang@google.com",
    "email": "pengzhuang@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Thu Aug 18 14:20:07 2011 +0000"
  },
  "message": "Revise CellTableBuilder API. In the earlier version, a Utility class is used to\nrender the rows/cells. The utility performs various checks to ensure the proper\nDOM structure. It also appends a cell id to each TD element so that it can\nretrieve the Column quickly during event handling. These introduce additional\nrendering latency and could become problematic for tables of extremely large\nsize and/or in slow browsers. This change removes the Utility class and replace\nit with AbstractCellTableBuilder. This makes the CellTableBuilder API more\nflexible. Users can choose to implement a CellTableBuilder without the above\nmentioned overheads, or subclass AbstractCellTableBuilder, in a way almost\nidentical to the earlier table builder version.\n\nA method getColumn(Context context, T rowValue, Element elem) is added to the\nCellTableBuilder interface. User can implement this method to tell the CellTable\nwhich column contains a particular element (e.g., the event target element). If\nall columns are renderer, users may simply return\nCellTable.getColumn(context.col). Or, users can \"replay\" the row building logic\nto locate the column for the element. Of course the cell id based approach is\nstill supported and is now in AbstractCellTableBuilder. Two similar methods\nisColumn and getColumns are also added. Please see javadoc for more details.\n\nThe buildRows method is refactored to remove the utility. Users can choose to\nstill use an element builder based approach (see AbstractCellTableBuilder), in\nwhich each time a cell is rendered, checks are performed to ensure the proper\nDOM structure. Or, users can choose to use a simple string builder based\napproach and create a TableSectionBuilder in the new \"finish()\" method (e.g.,\nusing the new FastHtmlTableSectionBuilder in this change). This\nwill be much faster, won\u0027t be able to detect a malformed html.\n\nReview at http://gwt-code-reviews.appspot.com/1527803\n\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10550 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2386841b94340a5d112e18a7053030958b603bf0",
      "old_mode": 33188,
      "old_path": "samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java",
      "new_id": "0b6daa43a663dbe4d4069dbac7006348f06e95b0",
      "new_mode": 33188,
      "new_path": "samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/CwCustomDataGrid.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "abfabfcb7f2692b6159ac30eb835acaf1505638e",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/dom/builder/shared/HtmlOnlyTableSectionBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "0cd4dbc1f06c5a18363dba2d19df0628ff184a4f",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java",
      "new_id": "2653ae2d55912b269dad69245e5029f0bfd48445",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e4fde0f8b8d9be64003841a9884a23c9b2dbb34",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/AbstractCellTableBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "4ba4b1d9f7b48066eab4e03f0fe62fe2b0f3a3be",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/CellTableBuilder.java",
      "new_id": "2b82062b808a8cd9f99f3e8f094ad95b449b25b8",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/CellTableBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "487f4313788a61ff0a3ce89890ada67258585973",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/user/cellview/client/AbstractCellTableTestBase.java",
      "new_id": "f828f2eda6d463a53f97dc4c63999091774ffd03",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/client/AbstractCellTableTestBase.java"
    }
  ]
}
