{"action":"created","comment":{"url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/comments/38555105","id":38555105,"diff_hunk":"@@ -115,7 +113,15 @@\n          */\n         boolean isLoaded(Folder folder);\n \n-        void refreshFolder(Folder folder);\n+        boolean isPathUnderKnownRoot(String path);\n+\n+        /**\n+         * Reloads the child folders under the given Folder for this view's TreeStore only.\n+         * May trigger a re-selection of the currently selected folder.","path":"de-lib/src/main/java/org/iplantc/de/diskResource/client/NavigationView.java","position":18,"original_position":18,"commit_id":"4423674fd50bccc87d109582aa5e43f1cf9b1af2","original_commit_id":"4423674fd50bccc87d109582aa5e43f1cf9b1af2","user":{"login":"psarando","id":996408,"avatar_url":"https://avatars.githubusercontent.com/u/996408?v=3","gravatar_id":"","url":"https://api.github.com/users/psarando","html_url":"https://github.com/psarando","followers_url":"https://api.github.com/users/psarando/followers","following_url":"https://api.github.com/users/psarando/following{/other_user}","gists_url":"https://api.github.com/users/psarando/gists{/gist_id}","starred_url":"https://api.github.com/users/psarando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psarando/subscriptions","organizations_url":"https://api.github.com/users/psarando/orgs","repos_url":"https://api.github.com/users/psarando/repos","events_url":"https://api.github.com/users/psarando/events{/privacy}","received_events_url":"https://api.github.com/users/psarando/received_events","type":"User","site_admin":false},"body":"It's not always to trigger lazy-loading. If the selected folder is the refreshed folder, we just re-select it to reload the center grid.","created_at":"2015-09-02T16:42:31Z","updated_at":"2015-09-02T16:42:31Z","html_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26#discussion_r38555105","pull_request_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26","_links":{"self":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/comments/38555105"},"html":{"href":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26#discussion_r38555105"},"pull_request":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26"}}},"pull_request":{"url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26","id":43943496,"html_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26","diff_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26.diff","patch_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26.patch","issue_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/26","number":26,"state":"open","locked":false,"title":"CORE-6952 Fix folder refresh for multiple windows and nav folder caching.","user":{"login":"psarando","id":996408,"avatar_url":"https://avatars.githubusercontent.com/u/996408?v=3","gravatar_id":"","url":"https://api.github.com/users/psarando","html_url":"https://github.com/psarando","followers_url":"https://api.github.com/users/psarando/followers","following_url":"https://api.github.com/users/psarando/following{/other_user}","gists_url":"https://api.github.com/users/psarando/gists{/gist_id}","starred_url":"https://api.github.com/users/psarando/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psarando/subscriptions","organizations_url":"https://api.github.com/users/psarando/orgs","repos_url":"https://api.github.com/users/psarando/repos","events_url":"https://api.github.com/users/psarando/events{/privacy}","received_events_url":"https://api.github.com/users/psarando/received_events","type":"User","site_admin":false},"body":"This branch fixes the refresh event handling so that multiple data windows will refresh their navigation panel folder trees. This was accomplished by having the `DiskResourcePresenter` that handles the `RefreshFolderSelected` event from its toolbar call a `DiskResourceServiceFacade#refreshFolder` method instead of just calling a refresh method for only its `NavigationPresenter`. The service facade `refreshFolder` method will reload the folder's subfolders from the service, update its cache with the results, then fire a global `FolderRefreshedEvent` that every `NavigationPresenter` listens to so that they can update their own views with the refreshed subfolders.\r\n\r\nPart of this fix also required fixes for `NavigationPresenter` folder lazy-loading. Previously, each presenter relied on blowing out cached subfolders and reloading them from the service for each presenter's refresh action. Once this was corrected, the lazy-loading logic no longer worked when folders were cached by the service facade. So one of the major changes in this branch was to change the API for the `SelectFolderByPathLoadHandler` so that its constructors are now protected, and the `DiskResourcePresenter` must pass its loader to a static method which will instantiate a load hanlder, register it with the loader, then initialize the lazy-loading logic (which may require calling the `NavigationPresenter#expandFolder` method, which is why the handler must be registered first before any cached folders are loaded by the expand).","created_at":"2015-09-02T00:46:42Z","updated_at":"2015-09-02T16:42:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3c73513f5f7b67828b090afb3ce50b03b67c07e2","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26/commits","review_comments_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26/comments","review_comment_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/comments{/number}","comments_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/26/comments","statuses_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/statuses/4423674fd50bccc87d109582aa5e43f1cf9b1af2","head":{"label":"iPlantCollaborativeOpenSource:CORE-6952","ref":"CORE-6952","sha":"4423674fd50bccc87d109582aa5e43f1cf9b1af2","user":{"login":"iPlantCollaborativeOpenSource","id":669032,"avatar_url":"https://avatars.githubusercontent.com/u/669032?v=3","gravatar_id":"","url":"https://api.github.com/users/iPlantCollaborativeOpenSource","html_url":"https://github.com/iPlantCollaborativeOpenSource","followers_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/followers","following_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/following{/other_user}","gists_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/gists{/gist_id}","starred_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/subscriptions","organizations_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/orgs","repos_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/repos","events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/events{/privacy}","received_events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/received_events","type":"Organization","site_admin":false},"repo":{"id":17848528,"name":"DiscoveryEnvironment","full_name":"iPlantCollaborativeOpenSource/DiscoveryEnvironment","owner":{"login":"iPlantCollaborativeOpenSource","id":669032,"avatar_url":"https://avatars.githubusercontent.com/u/669032?v=3","gravatar_id":"","url":"https://api.github.com/users/iPlantCollaborativeOpenSource","html_url":"https://github.com/iPlantCollaborativeOpenSource","followers_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/followers","following_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/following{/other_user}","gists_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/gists{/gist_id}","starred_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/subscriptions","organizations_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/orgs","repos_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/repos","events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/events{/privacy}","received_events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment","description":"Web portal for the iPlant Life Sciences Cyberinfrastructure","fork":false,"url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment","forks_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/forks","keys_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/teams","hooks_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/hooks","issue_events_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/events{/number}","events_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/events","assignees_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/assignees{/user}","branches_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/branches{/branch}","tags_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/tags","blobs_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/refs{/sha}","trees_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/statuses/{sha}","languages_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/languages","stargazers_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/stargazers","contributors_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/contributors","subscribers_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/subscribers","subscription_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/subscription","commits_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/commits{/sha}","git_commits_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/commits{/sha}","comments_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/comments{/number}","issue_comment_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/comments{/number}","contents_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/contents/{+path}","compare_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/merges","archive_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/downloads","issues_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues{/number}","pulls_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls{/number}","milestones_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/milestones{/number}","notifications_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/labels{/name}","releases_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/releases{/id}","created_at":"2014-03-18T00:30:13Z","updated_at":"2015-05-05T16:20:32Z","pushed_at":"2015-09-02T00:46:43Z","git_url":"git://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","ssh_url":"git@github.com:iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","clone_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","svn_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment","homepage":"https://de.iplantcollaborative.org/de/","size":26378,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":2,"forks":4,"open_issues":2,"watchers":2,"default_branch":"master"}},"base":{"label":"iPlantCollaborativeOpenSource:dev","ref":"dev","sha":"ee126a9f15cc4c14b17c68c01fb3068f0b034fd6","user":{"login":"iPlantCollaborativeOpenSource","id":669032,"avatar_url":"https://avatars.githubusercontent.com/u/669032?v=3","gravatar_id":"","url":"https://api.github.com/users/iPlantCollaborativeOpenSource","html_url":"https://github.com/iPlantCollaborativeOpenSource","followers_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/followers","following_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/following{/other_user}","gists_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/gists{/gist_id}","starred_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/subscriptions","organizations_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/orgs","repos_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/repos","events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/events{/privacy}","received_events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/received_events","type":"Organization","site_admin":false},"repo":{"id":17848528,"name":"DiscoveryEnvironment","full_name":"iPlantCollaborativeOpenSource/DiscoveryEnvironment","owner":{"login":"iPlantCollaborativeOpenSource","id":669032,"avatar_url":"https://avatars.githubusercontent.com/u/669032?v=3","gravatar_id":"","url":"https://api.github.com/users/iPlantCollaborativeOpenSource","html_url":"https://github.com/iPlantCollaborativeOpenSource","followers_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/followers","following_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/following{/other_user}","gists_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/gists{/gist_id}","starred_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/subscriptions","organizations_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/orgs","repos_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/repos","events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/events{/privacy}","received_events_url":"https://api.github.com/users/iPlantCollaborativeOpenSource/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment","description":"Web portal for the iPlant Life Sciences Cyberinfrastructure","fork":false,"url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment","forks_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/forks","keys_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/teams","hooks_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/hooks","issue_events_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/events{/number}","events_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/events","assignees_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/assignees{/user}","branches_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/branches{/branch}","tags_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/tags","blobs_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/refs{/sha}","trees_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/statuses/{sha}","languages_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/languages","stargazers_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/stargazers","contributors_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/contributors","subscribers_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/subscribers","subscription_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/subscription","commits_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/commits{/sha}","git_commits_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/git/commits{/sha}","comments_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/comments{/number}","issue_comment_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/comments{/number}","contents_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/contents/{+path}","compare_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/merges","archive_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/downloads","issues_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues{/number}","pulls_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls{/number}","milestones_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/milestones{/number}","notifications_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/labels{/name}","releases_url":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/releases{/id}","created_at":"2014-03-18T00:30:13Z","updated_at":"2015-05-05T16:20:32Z","pushed_at":"2015-09-02T00:46:43Z","git_url":"git://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","ssh_url":"git@github.com:iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","clone_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment.git","svn_url":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment","homepage":"https://de.iplantcollaborative.org/de/","size":26378,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":2,"forks":4,"open_issues":2,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26"},"html":{"href":"https://github.com/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pull/26"},"issue":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/26"},"comments":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/issues/26/comments"},"review_comments":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26/comments"},"review_comment":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/pulls/26/commits"},"statuses":{"href":"https://api.github.com/repos/iPlantCollaborativeOpenSource/DiscoveryEnvironment/statuses/4423674fd50bccc87d109582aa5e43f1cf9b1af2"}}}}