{"action":"created","issue":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2338","repository_url":"https://api.github.com/repos/MovingBlocks/Terasology","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2338/labels{/name}","comments_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2338/comments","events_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2338/events","html_url":"https://github.com/MovingBlocks/Terasology/pull/2338","id":158417918,"number":2338,"title":"UITreeView (& test method conventions)","user":{"login":"rzats","id":13783592,"avatar_url":"https://avatars.githubusercontent.com/u/13783592?v=3","gravatar_id":"","url":"https://api.github.com/users/rzats","html_url":"https://github.com/rzats","followers_url":"https://api.github.com/users/rzats/followers","following_url":"https://api.github.com/users/rzats/following{/other_user}","gists_url":"https://api.github.com/users/rzats/gists{/gist_id}","starred_url":"https://api.github.com/users/rzats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzats/subscriptions","organizations_url":"https://api.github.com/users/rzats/orgs","repos_url":"https://api.github.com/users/rzats/repos","events_url":"https://api.github.com/users/rzats/events{/privacy}","received_events_url":"https://api.github.com/users/rzats/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/Architecture","name":"Architecture","color":"A13027"},{"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/GSOC","name":"GSOC","color":"0A02A3"},{"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/in%20progress","name":"in progress","color":"ededed"},{"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/UI","name":"UI","color":"06FF06"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2016-06-03T17:41:56Z","updated_at":"2016-06-05T20:44:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/pulls/2338","html_url":"https://github.com/MovingBlocks/Terasology/pull/2338","diff_url":"https://github.com/MovingBlocks/Terasology/pull/2338.diff","patch_url":"https://github.com/MovingBlocks/Terasology/pull/2338.patch"},"body":"### Contains\r\n\r\n- A core UITreeView widget as described in [rzats/gsoc-nui-editor#1](https://github.com/rzats/gsoc-nui-editor/issues/1)!\r\n\r\n![image](https://cloud.githubusercontent.com/assets/13783592/15787183/781411b4-29c9-11e6-9aa4-31113ac5bb6c.png)\r\n\r\n- A `Tree` data structure that contains the widget's elements and a `TreeModel` helper class.\r\n\r\n- `TreeViewTestScreen` - fairly self-explanatory :stuck_out_tongue_winking_eye:\r\n\r\n- A codestyle fix renaming all the test methods to `testMethodName` as opposed to `methodName` - this is a mostly unrelated change as suggested in a Slack discussion.\r\n\r\n_This PR was previously located in my Terasology fork. In retrospect, this wasn't a great idea: local PRs have no @GooeyHub testing, no mergeability checks with the upstream repository and little to none community exposure: IMO, going for a base repository fork is a better idea for subsequent deliverables._\r\n\r\n### How to test\r\n\r\n- Launch the game and type `showScreen treeViewTestScreen` in the in-game console. Make sure you do so manually without using autocompletion - otherwise #2329 triggers, causing initialization issues.\r\n- Play around with the trees!\r\n\r\n### Controls\r\n\r\n- Mouse wheel: scroll up/down.\r\n- LMB: select/deselect a node.\r\n- RMB: expand/collapse a node.\r\n- Delete: remove a node (and all its' children).\r\n- Up/Down: change a node's position within the parent node.\r\n- Ctrl+C: copy a selected node.\r\n- Ctrl+V: paste the copied node as a child of the currently selected node.\r\n- Ctrl+A / Insert: add a new child with a placeholder value to the currently selected node."},"comment":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/comments/223836487","html_url":"https://github.com/MovingBlocks/Terasology/pull/2338#issuecomment-223836487","issue_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2338","id":223836487,"user":{"login":"flo","id":3511,"avatar_url":"https://avatars.githubusercontent.com/u/3511?v=3","gravatar_id":"","url":"https://api.github.com/users/flo","html_url":"https://github.com/flo","followers_url":"https://api.github.com/users/flo/followers","following_url":"https://api.github.com/users/flo/following{/other_user}","gists_url":"https://api.github.com/users/flo/gists{/gist_id}","starred_url":"https://api.github.com/users/flo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flo/subscriptions","organizations_url":"https://api.github.com/users/flo/orgs","repos_url":"https://api.github.com/users/flo/repos","events_url":"https://api.github.com/users/flo/events{/privacy}","received_events_url":"https://api.github.com/users/flo/received_events","type":"User","site_admin":false},"created_at":"2016-06-05T20:44:13Z","updated_at":"2016-06-05T20:44:13Z","body":"The crash happens when you minimize a node near the end of the list while a child node is still selected. When it isn't near the end of the list, another item gets selected (which is also strange)."}}
{"actor":{"display_login":"flo"}}