{"action":"opened","number":162,"pull_request":{"url":"https://api.github.com/repos/JabRef/jabref/pulls/162","id":44851082,"html_url":"https://github.com/JabRef/jabref/pull/162","diff_url":"https://github.com/JabRef/jabref/pull/162.diff","patch_url":"https://github.com/JabRef/jabref/pull/162.patch","issue_url":"https://api.github.com/repos/JabRef/jabref/issues/162","number":162,"state":"open","locked":false,"title":"[WIP] Improvements to search","user":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"body":"This is a new version of my old pull request, now updated to the 2.8 version and incorporating all the suggestions from the last time. (Except the clean commit history )\r\n\r\nThe changes include:\r\n- Search bar is now at the top\r\n- Autocompletion suggestions are shown in a popup\r\n- Search options are available via a drop-down list, this implements Feature Request #853\r\n- \"Clear search\" button also clears search field, this implements Feature Request #601\r\n- In incremental search mode: next result is selected by pressing enter (instead of Control + F as previously)\r\n- Incremental search now uses the same search engine as the other search modes\r\n- Added a new search mode (Live filter) which filters the table as soon as the search text is changed\r\n\r\nI have a few questions:\r\n- There are quite a few changes from formatting the code in Eclipse. Is it ok if I include them?\r\n- I have a problem with listening to changes in the textfield and programatically setting the text with setText(). The latter command triggers first an event for the deletion of the text and then another one for inserting the new one. Is there a way to be informed just once about such a change? (This occours in the following case: if the user accepts an autocompletion, then the text is changed via setText(). Thus, in incremental and live filter mode, two searches are performed.)\r\n- The SearchWorker implemented the AbstractWorker interface. As far as I understood, this enables one to do work asynchronously and then change the GUI later. However, the worker is simply run via \r\n```\r\n        worker.getWorker().run();\r\n        worker.getCallBack().update();\r\n```\r\nIn my understanding, this defeats completely the purpose of using the AbstractWorker. What is the right way to run it?\r\n- A general observation about the `SearchRule` class. Every method of it takes the query as an argument. I would propose to save the query internally in  `SearchRule` and thus simplify the interface a little bit.\r\n\r\n\r\n- The setting \"Autocomplete names\" is not yet implemented. In my opinion this can be completely removed.\r\n- The setting \"Select matches\" is not yet implemented since I do not understand the purpose of this setting. Should it control whatever the first match is selected after the search is performed? Moreover, I think it was not implemented in the old search pane. \r\n\r\n\r\n\r\nThings which should be done at some point (I will open a ticket after this pull request was accepted):\r\n- All the other inline autocompletions (in fields for example) should also use the new dropdown style autocompleter\r\n- Search result table is not styled the same as main table, related [SF Bug 847](http://sourceforge.net/p/jabref/bugs/847/)","created_at":"2015-09-12T10:27:40Z","updated_at":"2015-09-12T10:27:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/JabRef/jabref/pulls/162/commits","review_comments_url":"https://api.github.com/repos/JabRef/jabref/pulls/162/comments","review_comment_url":"https://api.github.com/repos/JabRef/jabref/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JabRef/jabref/issues/162/comments","statuses_url":"https://api.github.com/repos/JabRef/jabref/statuses/ba8d1cc2b9c046f4c8bf889be866b1c4e2f01276","head":{"label":"tobiasdiez:uisearch","ref":"uisearch","sha":"ba8d1cc2b9c046f4c8bf889be866b1c4e2f01276","user":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"repo":{"id":25407066,"name":"jabref","full_name":"tobiasdiez/jabref","owner":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tobiasdiez/jabref","description":"Graphical Java application for managing bibtex (.bib) databases","fork":true,"url":"https://api.github.com/repos/tobiasdiez/jabref","forks_url":"https://api.github.com/repos/tobiasdiez/jabref/forks","keys_url":"https://api.github.com/repos/tobiasdiez/jabref/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tobiasdiez/jabref/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tobiasdiez/jabref/teams","hooks_url":"https://api.github.com/repos/tobiasdiez/jabref/hooks","issue_events_url":"https://api.github.com/repos/tobiasdiez/jabref/issues/events{/number}","events_url":"https://api.github.com/repos/tobiasdiez/jabref/events","assignees_url":"https://api.github.com/repos/tobiasdiez/jabref/assignees{/user}","branches_url":"https://api.github.com/repos/tobiasdiez/jabref/branches{/branch}","tags_url":"https://api.github.com/repos/tobiasdiez/jabref/tags","blobs_url":"https://api.github.com/repos/tobiasdiez/jabref/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tobiasdiez/jabref/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tobiasdiez/jabref/git/refs{/sha}","trees_url":"https://api.github.com/repos/tobiasdiez/jabref/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tobiasdiez/jabref/statuses/{sha}","languages_url":"https://api.github.com/repos/tobiasdiez/jabref/languages","stargazers_url":"https://api.github.com/repos/tobiasdiez/jabref/stargazers","contributors_url":"https://api.github.com/repos/tobiasdiez/jabref/contributors","subscribers_url":"https://api.github.com/repos/tobiasdiez/jabref/subscribers","subscription_url":"https://api.github.com/repos/tobiasdiez/jabref/subscription","commits_url":"https://api.github.com/repos/tobiasdiez/jabref/commits{/sha}","git_commits_url":"https://api.github.com/repos/tobiasdiez/jabref/git/commits{/sha}","comments_url":"https://api.github.com/repos/tobiasdiez/jabref/comments{/number}","issue_comment_url":"https://api.github.com/repos/tobiasdiez/jabref/issues/comments{/number}","contents_url":"https://api.github.com/repos/tobiasdiez/jabref/contents/{+path}","compare_url":"https://api.github.com/repos/tobiasdiez/jabref/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tobiasdiez/jabref/merges","archive_url":"https://api.github.com/repos/tobiasdiez/jabref/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tobiasdiez/jabref/downloads","issues_url":"https://api.github.com/repos/tobiasdiez/jabref/issues{/number}","pulls_url":"https://api.github.com/repos/tobiasdiez/jabref/pulls{/number}","milestones_url":"https://api.github.com/repos/tobiasdiez/jabref/milestones{/number}","notifications_url":"https://api.github.com/repos/tobiasdiez/jabref/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tobiasdiez/jabref/labels{/name}","releases_url":"https://api.github.com/repos/tobiasdiez/jabref/releases{/id}","created_at":"2014-10-18T19:04:49Z","updated_at":"2014-11-29T22:04:20Z","pushed_at":"2015-09-12T09:53:28Z","git_url":"git://github.com/tobiasdiez/jabref.git","ssh_url":"git@github.com:tobiasdiez/jabref.git","clone_url":"https://github.com/tobiasdiez/jabref.git","svn_url":"https://github.com/tobiasdiez/jabref","homepage":"http://jabref.sourceforge.net/","size":63645,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"JabRef:master","ref":"master","sha":"5cac6a3f376d473e50f53b1b07b71a684a2843fa","user":{"login":"JabRef","id":3914421,"avatar_url":"https://avatars.githubusercontent.com/u/3914421?v=3","gravatar_id":"","url":"https://api.github.com/users/JabRef","html_url":"https://github.com/JabRef","followers_url":"https://api.github.com/users/JabRef/followers","following_url":"https://api.github.com/users/JabRef/following{/other_user}","gists_url":"https://api.github.com/users/JabRef/gists{/gist_id}","starred_url":"https://api.github.com/users/JabRef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JabRef/subscriptions","organizations_url":"https://api.github.com/users/JabRef/orgs","repos_url":"https://api.github.com/users/JabRef/repos","events_url":"https://api.github.com/users/JabRef/events{/privacy}","received_events_url":"https://api.github.com/users/JabRef/received_events","type":"Organization","site_admin":false},"repo":{"id":17634071,"name":"jabref","full_name":"JabRef/jabref","owner":{"login":"JabRef","id":3914421,"avatar_url":"https://avatars.githubusercontent.com/u/3914421?v=3","gravatar_id":"","url":"https://api.github.com/users/JabRef","html_url":"https://github.com/JabRef","followers_url":"https://api.github.com/users/JabRef/followers","following_url":"https://api.github.com/users/JabRef/following{/other_user}","gists_url":"https://api.github.com/users/JabRef/gists{/gist_id}","starred_url":"https://api.github.com/users/JabRef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JabRef/subscriptions","organizations_url":"https://api.github.com/users/JabRef/orgs","repos_url":"https://api.github.com/users/JabRef/repos","events_url":"https://api.github.com/users/JabRef/events{/privacy}","received_events_url":"https://api.github.com/users/JabRef/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JabRef/jabref","description":"Graphical Java application for managing bibtex (.bib) databases","fork":false,"url":"https://api.github.com/repos/JabRef/jabref","forks_url":"https://api.github.com/repos/JabRef/jabref/forks","keys_url":"https://api.github.com/repos/JabRef/jabref/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JabRef/jabref/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JabRef/jabref/teams","hooks_url":"https://api.github.com/repos/JabRef/jabref/hooks","issue_events_url":"https://api.github.com/repos/JabRef/jabref/issues/events{/number}","events_url":"https://api.github.com/repos/JabRef/jabref/events","assignees_url":"https://api.github.com/repos/JabRef/jabref/assignees{/user}","branches_url":"https://api.github.com/repos/JabRef/jabref/branches{/branch}","tags_url":"https://api.github.com/repos/JabRef/jabref/tags","blobs_url":"https://api.github.com/repos/JabRef/jabref/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JabRef/jabref/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JabRef/jabref/git/refs{/sha}","trees_url":"https://api.github.com/repos/JabRef/jabref/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JabRef/jabref/statuses/{sha}","languages_url":"https://api.github.com/repos/JabRef/jabref/languages","stargazers_url":"https://api.github.com/repos/JabRef/jabref/stargazers","contributors_url":"https://api.github.com/repos/JabRef/jabref/contributors","subscribers_url":"https://api.github.com/repos/JabRef/jabref/subscribers","subscription_url":"https://api.github.com/repos/JabRef/jabref/subscription","commits_url":"https://api.github.com/repos/JabRef/jabref/commits{/sha}","git_commits_url":"https://api.github.com/repos/JabRef/jabref/git/commits{/sha}","comments_url":"https://api.github.com/repos/JabRef/jabref/comments{/number}","issue_comment_url":"https://api.github.com/repos/JabRef/jabref/issues/comments{/number}","contents_url":"https://api.github.com/repos/JabRef/jabref/contents/{+path}","compare_url":"https://api.github.com/repos/JabRef/jabref/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JabRef/jabref/merges","archive_url":"https://api.github.com/repos/JabRef/jabref/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JabRef/jabref/downloads","issues_url":"https://api.github.com/repos/JabRef/jabref/issues{/number}","pulls_url":"https://api.github.com/repos/JabRef/jabref/pulls{/number}","milestones_url":"https://api.github.com/repos/JabRef/jabref/milestones{/number}","notifications_url":"https://api.github.com/repos/JabRef/jabref/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JabRef/jabref/labels{/name}","releases_url":"https://api.github.com/repos/JabRef/jabref/releases{/id}","created_at":"2014-03-11T14:48:42Z","updated_at":"2015-09-10T08:07:51Z","pushed_at":"2015-09-12T10:27:40Z","git_url":"git://github.com/JabRef/jabref.git","ssh_url":"git@github.com:JabRef/jabref.git","clone_url":"https://github.com/JabRef/jabref.git","svn_url":"https://github.com/JabRef/jabref","homepage":"http://jabref.sourceforge.net/","size":71150,"stargazers_count":99,"watchers_count":99,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":99,"mirror_url":null,"open_issues_count":46,"forks":99,"open_issues":46,"watchers":99,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/162"},"html":{"href":"https://github.com/JabRef/jabref/pull/162"},"issue":{"href":"https://api.github.com/repos/JabRef/jabref/issues/162"},"comments":{"href":"https://api.github.com/repos/JabRef/jabref/issues/162/comments"},"review_comments":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/162/comments"},"review_comment":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JabRef/jabref/pulls/162/commits"},"statuses":{"href":"https://api.github.com/repos/JabRef/jabref/statuses/ba8d1cc2b9c046f4c8bf889be866b1c4e2f01276"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":18,"additions":2063,"deletions":1924,"changed_files":37}}