{"action":"created","issue":{"url":"https://api.github.com/repos/angular-ui/ng-grid/issues/3246","labels_url":"https://api.github.com/repos/angular-ui/ng-grid/issues/3246/labels{/name}","comments_url":"https://api.github.com/repos/angular-ui/ng-grid/issues/3246/comments","events_url":"https://api.github.com/repos/angular-ui/ng-grid/issues/3246/events","html_url":"https://github.com/angular-ui/ng-grid/issues/3246","id":67352613,"number":3246,"title":"[FEAT] - tree-view grid","user":{"login":"yccteam","id":6459899,"avatar_url":"https://avatars.githubusercontent.com/u/6459899?v=3","gravatar_id":"","url":"https://api.github.com/users/yccteam","html_url":"https://github.com/yccteam","followers_url":"https://api.github.com/users/yccteam/followers","following_url":"https://api.github.com/users/yccteam/following{/other_user}","gists_url":"https://api.github.com/users/yccteam/gists{/gist_id}","starred_url":"https://api.github.com/users/yccteam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yccteam/subscriptions","organizations_url":"https://api.github.com/users/yccteam/orgs","repos_url":"https://api.github.com/users/yccteam/repos","events_url":"https://api.github.com/users/yccteam/events{/privacy}","received_events_url":"https://api.github.com/users/yccteam/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular-ui/ng-grid/labels/feature","name":"feature","color":"5319e7"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular-ui/ng-grid/milestones/16","html_url":"https://github.com/angular-ui/ng-grid/milestones/3.1","labels_url":"https://api.github.com/repos/angular-ui/ng-grid/milestones/16/labels","id":1043133,"number":16,"title":"3.1","description":"The first release after a 3.0 completion.  This contains all reasonably immediate issues that aren't considered blockers for a 3.0 release, not all of these would get included in 3.1 but they are the starting list of things for inclusion once 3.1 work commences.","creator":{"login":"PaulL1","id":5248789,"avatar_url":"https://avatars.githubusercontent.com/u/5248789?v=3","gravatar_id":"","url":"https://api.github.com/users/PaulL1","html_url":"https://github.com/PaulL1","followers_url":"https://api.github.com/users/PaulL1/followers","following_url":"https://api.github.com/users/PaulL1/following{/other_user}","gists_url":"https://api.github.com/users/PaulL1/gists{/gist_id}","starred_url":"https://api.github.com/users/PaulL1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaulL1/subscriptions","organizations_url":"https://api.github.com/users/PaulL1/orgs","repos_url":"https://api.github.com/users/PaulL1/repos","events_url":"https://api.github.com/users/PaulL1/events{/privacy}","received_events_url":"https://api.github.com/users/PaulL1/received_events","type":"User","site_admin":false},"open_issues":64,"closed_issues":27,"state":"open","created_at":"2015-03-28T20:45:51Z","updated_at":"2015-05-21T01:22:00Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2015-04-09T12:38:29Z","updated_at":"2015-05-21T01:22:00Z","closed_at":"2015-05-21T01:22:00Z","body":"This feature would be a combination of grouping and expandable row. Each row could be expanded, but the expansion would be considered as a part of the main grid, so their virtualization be calculated together.\r\nSo the look and feel would be like a grouped grid, but the rows would look like an expandable grid (the \"group headers\" would have their own data sources).\r\n\r\nSome thoughts:\r\n\r\n@PaulL1 :\r\n1) ```\r\npotentially treeview could be added to grouping rather than duplicating. Probably the main change is to use the existing row as a groupHeader rather than inserting a new row. But not quite sure how we'd decide which row is the \"parent\" row\r\nsince at the moment we sort then look for breaks in value. Would the first row with a given value always be the \"parent\". Or would we have some other way to tell the code which rows are nodes and which rows are leaves?```\r\n\r\n2) ```Thinking on the treeview @yccteam, perhaps it could be a lot like grouping, but you could have an optional property on each row ($$treeLevel), and then it could use a rowsProcessor similar to the group rowsProcessor to work out which are nodes and which are leaves (perhaps it could set a property on the row like row.treeLevel, and row.treeNode = true)\r\nFurther, we could store the number of child nodes for any given node in row.numChildren, and then use a custom cell template to add the number of children in brackets if the user wanted\r\nYou could reuse the header column logic and the indenting of the + from grouping\r\nit'd be nice to have a combined code base, but perhaps it's easier to just copy the bits that are useful.\r\nSince treeview would (I presume) be more of a programatically set thing - I'm assuming you can't just sort by any arbitrary column then turn that into a treeview - so it would probably be a much smaller code base```"},"comment":{"url":"https://api.github.com/repos/angular-ui/ng-grid/issues/comments/104089361","html_url":"https://github.com/angular-ui/ng-grid/issues/3246#issuecomment-104089361","issue_url":"https://api.github.com/repos/angular-ui/ng-grid/issues/3246","id":104089361,"user":{"login":"PaulL1","id":5248789,"avatar_url":"https://avatars.githubusercontent.com/u/5248789?v=3","gravatar_id":"","url":"https://api.github.com/users/PaulL1","html_url":"https://github.com/PaulL1","followers_url":"https://api.github.com/users/PaulL1/followers","following_url":"https://api.github.com/users/PaulL1/following{/other_user}","gists_url":"https://api.github.com/users/PaulL1/gists{/gist_id}","starred_url":"https://api.github.com/users/PaulL1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaulL1/subscriptions","organizations_url":"https://api.github.com/users/PaulL1/orgs","repos_url":"https://api.github.com/users/PaulL1/repos","events_url":"https://api.github.com/users/PaulL1/events{/privacy}","received_events_url":"https://api.github.com/users/PaulL1/received_events","type":"User","site_admin":false},"created_at":"2015-05-21T01:22:00Z","updated_at":"2015-05-21T01:22:00Z","body":"I think this is now resolved, closing."}}