{"action":"created","issue":{"url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/219","repository_url":"https://api.github.com/repos/vaadin/vaadin-grid-flow","labels_url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/219/labels{/name}","comments_url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/219/comments","events_url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/219/events","html_url":"https://github.com/vaadin/vaadin-grid-flow/pull/219","id":328124018,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkxNzQyNDc1","number":219,"title":"TreeGrid component","user":{"login":"tltv","id":2182148,"node_id":"MDQ6VXNlcjIxODIxNDg=","avatar_url":"https://avatars2.githubusercontent.com/u/2182148?v=4","gravatar_id":"","url":"https://api.github.com/users/tltv","html_url":"https://github.com/tltv","followers_url":"https://api.github.com/users/tltv/followers","following_url":"https://api.github.com/users/tltv/following{/other_user}","gists_url":"https://api.github.com/users/tltv/gists{/gist_id}","starred_url":"https://api.github.com/users/tltv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tltv/subscriptions","organizations_url":"https://api.github.com/users/tltv/orgs","repos_url":"https://api.github.com/users/tltv/repos","events_url":"https://api.github.com/users/tltv/events{/privacy}","received_events_url":"https://api.github.com/users/tltv/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":66,"created_at":"2018-05-31T12:46:22Z","updated_at":"2018-06-12T06:33:07Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/pulls/219","html_url":"https://github.com/vaadin/vaadin-grid-flow/pull/219","diff_url":"https://github.com/vaadin/vaadin-grid-flow/pull/219.diff","patch_url":"https://github.com/vaadin/vaadin-grid-flow/pull/219.patch"},"body":"`TreeGrid` extends `Grid` and adds possibility to use in-memory hierarchical data provider or implement custom hierarchical data provider for `Grid` to represent hierarchical data with user interface to expand/collapse items.\r\n\r\nNew data providers are migrated from Vaadin Framework 8 with a same names. `TreeDataProvider` for in-memory data provider and `AbstractBackEndHierarchicalDataProvider` to implement custom data provider.\r\n\r\n`gridConnector.js` is updated to support hierarchical data that `grid-element` already supports. Change adds sub-levels in connector's cache, adds new 'parent item' context to functions and requires all items to include unique key for each item when using TreeGrid. By default unique key is implemented by calling bean's hashCode method. `TreeGrid` API allows to change unique key provider and also property used in the client side.\r\n\r\n`CommunicationController` is replacement for `DataCommunicator`'s internal logic to keep client in sync with the server. It's doing exactly same thing with added 'parent item' context. Currently its only used for sub-levels excluding root, but it works as a drop-in replacement for `DataCommunicator`'s internal logic - if so wanted.\r\n\r\nAll unit and integration tests are migrated from FW8. Few tests especially keyboard navigation tests required rewrites as the missing support for using arrow keys to expand/collapse row. Replaced by 'space' instead.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/vaadin/vaadin-grid-flow/219)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/comments/396480685","html_url":"https://github.com/vaadin/vaadin-grid-flow/pull/219#issuecomment-396480685","issue_url":"https://api.github.com/repos/vaadin/vaadin-grid-flow/issues/219","id":396480685,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NjQ4MDY4NQ==","user":{"login":"denis-anisimov","id":11425472,"node_id":"MDQ6VXNlcjExNDI1NDcy","avatar_url":"https://avatars0.githubusercontent.com/u/11425472?v=4","gravatar_id":"","url":"https://api.github.com/users/denis-anisimov","html_url":"https://github.com/denis-anisimov","followers_url":"https://api.github.com/users/denis-anisimov/followers","following_url":"https://api.github.com/users/denis-anisimov/following{/other_user}","gists_url":"https://api.github.com/users/denis-anisimov/gists{/gist_id}","starred_url":"https://api.github.com/users/denis-anisimov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/denis-anisimov/subscriptions","organizations_url":"https://api.github.com/users/denis-anisimov/orgs","repos_url":"https://api.github.com/users/denis-anisimov/repos","events_url":"https://api.github.com/users/denis-anisimov/events{/privacy}","received_events_url":"https://api.github.com/users/denis-anisimov/received_events","type":"User","site_admin":false},"created_at":"2018-06-12T06:33:07Z","updated_at":"2018-06-12T06:33:07Z","author_association":"CONTRIBUTOR","body":"\n\n\n\nReviewed 1 of 2 files at r38, 1 of 2 files at r42, 39 of 39 files at r45, 1 of 1 files at r46.\nReview status: all files reviewed, 2 unresolved discussions (waiting on @tltv and @denis-anisimov)\n\n---\n\n*[src/main/java/com/vaadin/flow/component/treegrid/TreeGrid.java, line 431 at r46](https://reviewable.io/reviews/vaadin/vaadin-grid-flow/219#-LEmfRRl6ju-rEPWLiq2:-LEmfRRl6ju-rEPWLiq3:bsc2y5j) ([raw file](https://github.com/vaadin/vaadin-grid-flow/blob/695c2d102de197a1622b6bc0ba253c59f4cfa2c5/src/main/java/com/vaadin/flow/component/treegrid/TreeGrid.java#L431)):*\n> ```\n> DisabledUpdateMode.ONLY_WHEN_ENABLED\n> ```\n\nThis is the default value. No need to set it explicitly. \nBut that's minor. No need to fix it if everything else is OK.\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io/reviews/vaadin/vaadin-grid-flow/219)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"denis-anisimov"}}