)]}'
{
  "commit": "e1139ae54be241d20af83f59a7da8240a4d4df8b",
  "tree": "d8a63829bba3694a72d7b9fb65555708f4a2dfe3",
  "parents": [
    "083ddf25989d461378233847e0d7d694bb2dd7a2"
  ],
  "author": {
    "name": "jlabanca@google.com",
    "email": "jlabanca@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Aug 25 00:28:21 2010 +0000"
  },
  "committer": {
    "name": "jlabanca@google.com",
    "email": "jlabanca@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Aug 25 00:28:21 2010 +0000"
  },
  "message": "Adding TreeNode API to CellTree and CellBrowser, which allows users to programmatically open/close tree nodes. Similar to the way CellList works, a TreeNode primarily operates on its children, and it is only accessible if the node is open.  That is important because it means that implementors do not need to create a TreeNode for every leaf, as is the case with CellBrowser.  TreeNodes are destroyed when they are closed or otherwise removed from the tree.  However, if new data is pushed into the tree, a TreeNode will not be destroyed unless the new data set does not contain the nodes value.  CellTree and CellBrowser now implement HasOpen/CloseHandlers.  TreeNodes can return the value of the node itself, allowing users to respond to open/close events appropriately.  This patch also adds a bunch of unit tests, and fixes some subtle bugs.\n\n\nDesign Doc:\nhttps://wave.google.com/wave/#restored:wave:googlewave.com%252Fw%252BAuahvuinA\n\nReview at http://gwt-code-reviews.appspot.com/796801\n\nReview by: rice@google.com\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8642 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e3c3f75ac0c15106f597598dd209cda40302854a",
      "old_mode": 33188,
      "old_path": "samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/ContactTreeViewModel.java",
      "new_id": "6df28dc549bef87052c91bdaf77a57532269cb6d",
      "new_mode": 33188,
      "new_path": "samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/ContactTreeViewModel.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "649bf0e19c9b9f7fa32390059ad4d6ea5be4684a",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/AbstractCellTree.java"
    },
    {
      "type": "modify",
      "old_id": "efd7e5c4515db72ce7f9ca4c2ce659963e4b796a",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/AbstractHasData.java",
      "new_id": "13ca6d0653acb983e8165207161ba9d446553712",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/AbstractHasData.java"
    },
    {
      "type": "modify",
      "old_id": "322dbf796a4b4775ebe918c893801648ac6ad05d",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/CellBrowser.java",
      "new_id": "31d77277fa4996e54a8d173a40b3919495ca040f",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/CellBrowser.java"
    },
    {
      "type": "modify",
      "old_id": "0ae1b545d1ffde55664609e222bfae831df835dc",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/CellTree.java",
      "new_id": "1764aa259816f5d54a106dd30a5e10c71d9d0f8e",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/CellTree.java"
    },
    {
      "type": "modify",
      "old_id": "ce9118662fb2fdcd30e9d7811a5e3004df188ce8",
      "old_mode": 33188,
      "old_path": "user/src/com/google/gwt/user/cellview/client/CellTreeNodeView.java",
      "new_id": "dc0fc1fc90d041ed8a48c2ecd5bbc43a2a5bf225",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/CellTreeNodeView.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c7eedabe7de2c1186ae944e8347cfdd671d48d30",
      "new_mode": 33188,
      "new_path": "user/src/com/google/gwt/user/cellview/client/TreeNode.java"
    },
    {
      "type": "modify",
      "old_id": "836bf4d91cff11a1480b437a51eb756272537f65",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/user/cellview/CellViewSuite.java",
      "new_id": "2fe796b09084b85aad310eade0907cee389e0cd0",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/CellViewSuite.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f57b592b37a883a4994a7a19534e3770216801c",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/client/AbstractCellTreeTestBase.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b636acf51bf4ef9ffb31b497365501038cb032f9",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/client/AnimatedCellTreeTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "afe60a7b60ee294ef31e16d80e126cd931d858c0",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/client/CellBrowserTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07f5886353f03a2d86a510b0d986f4ed8f6ced80",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/user/cellview/client/CellTreeTest.java"
    }
  ]
}
