{"action":"created","issue":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2349","repository_url":"https://api.github.com/repos/MovingBlocks/Terasology","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2349/labels{/name}","comments_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2349/comments","events_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2349/events","html_url":"https://github.com/MovingBlocks/Terasology/pull/2349","id":159436133,"number":2349,"title":"JSON/TreeView adapter + UITreeView expand/contract buttons","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/Art","name":"Art","color":"FFFF07"},{"url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/UI","name":"UI","color":"06FF06"}],"state":"closed","locked":false,"assignee":{"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},"milestone":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/milestones/26","html_url":"https://github.com/MovingBlocks/Terasology/milestones/Alpha%202","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/milestones/26/labels","id":1661186,"number":26,"title":"Alpha 2","description":"","creator":{"login":"Cervator","id":1063833,"avatar_url":"https://avatars.githubusercontent.com/u/1063833?v=3","gravatar_id":"","url":"https://api.github.com/users/Cervator","html_url":"https://github.com/Cervator","followers_url":"https://api.github.com/users/Cervator/followers","following_url":"https://api.github.com/users/Cervator/following{/other_user}","gists_url":"https://api.github.com/users/Cervator/gists{/gist_id}","starred_url":"https://api.github.com/users/Cervator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cervator/subscriptions","organizations_url":"https://api.github.com/users/Cervator/orgs","repos_url":"https://api.github.com/users/Cervator/repos","events_url":"https://api.github.com/users/Cervator/events{/privacy}","received_events_url":"https://api.github.com/users/Cervator/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":88,"state":"open","created_at":"2016-03-23T03:16:04Z","updated_at":"2016-06-12T23:51:33Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2016-06-09T15:24:13Z","updated_at":"2016-06-13T20:36:26Z","closed_at":"2016-06-12T23:51:33Z","pull_request":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/pulls/2349","html_url":"https://github.com/MovingBlocks/Terasology/pull/2349","diff_url":"https://github.com/MovingBlocks/Terasology/pull/2349.diff","patch_url":"https://github.com/MovingBlocks/Terasology/pull/2349.patch"},"body":"### Contains\r\n\r\n- Small buttons are now drawn within a `UITreeView` that expand/contract a node (unless it is a leaf, in which case no button is drawn). This supersedes the previous method of expanding/contracting nodes (by clicking on an individual items) that didn't make it clear whether an item is _expanded_ or _expandable_ at all.\r\n\r\n- A `JsonTreeAdapter` utility class has been created that can serialize a GSON `JsonElement` into a `Tree` (and vice versa). `treeViewTestScreen` now displays its' own interface definition file instead of a hardcoded tree.\r\n\r\n![expand-contract-adapter](https://cloud.githubusercontent.com/assets/13783592/15987725/c289baa0-303b-11e6-8878-337ac3413c62.png)\r\n\r\n### How to test\r\n\r\nRun `showScreen treeViewTestScreen` to launch the test screen, then click on the buttons!\r\n\r\n### Outstanding before merging\r\n\r\n- [ ] Better button textures - the current ones are salvaged from `UIDropdown` and don't look that great. A +/- sign instead of an arrow might also make more sense."},"comment":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/comments/225700432","html_url":"https://github.com/MovingBlocks/Terasology/pull/2349#issuecomment-225700432","issue_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/2349","id":225700432,"user":{"login":"Cervator","id":1063833,"avatar_url":"https://avatars.githubusercontent.com/u/1063833?v=3","gravatar_id":"","url":"https://api.github.com/users/Cervator","html_url":"https://github.com/Cervator","followers_url":"https://api.github.com/users/Cervator/followers","following_url":"https://api.github.com/users/Cervator/following{/other_user}","gists_url":"https://api.github.com/users/Cervator/gists{/gist_id}","starred_url":"https://api.github.com/users/Cervator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cervator/subscriptions","organizations_url":"https://api.github.com/users/Cervator/orgs","repos_url":"https://api.github.com/users/Cervator/repos","events_url":"https://api.github.com/users/Cervator/events{/privacy}","received_events_url":"https://api.github.com/users/Cervator/received_events","type":"User","site_admin":false},"created_at":"2016-06-13T20:36:26Z","updated_at":"2016-06-13T20:36:26Z","body":"> I've personally interpreted the disabled state as the widget being view-only\r\n\r\nThat's a good point. I missed that. Although maybe somebody would want to \"lock\" a tree view with a specific state? Unlocking it if needed. Maybe there is potential for more than one state out of enabled/disabled, locked/unlocked, read/write? I don't want to over complicate things before we actually have use cases though.\r\n\r\nMy other note was more thinking out loud. One of your classes has a little ASCII tree showing the structure, and some trees have something like `\\- entry` in addition to the + or - by nodes. I'm not sure if either approach is more or less ideal. There isn't anything wrong with the current approach :-)"}}
{"actor":{"display_login":"Cervator"}}