group plots by field

This commit is contained in:
2017-02-12 09:59:14 +01:00
parent b238849d65
commit 562dadb692
3 changed files with 49 additions and 1 deletions

View File

@@ -20,6 +20,7 @@
<input id="search-input" data-autocomplete="autocomplete" <input id="search-input" data-autocomplete="autocomplete"
data-autocomplete-empty-message="nothing found" /> data-autocomplete-empty-message="nothing found" />
</div> </div>
<select id="search-group-by"></select>
<button id="search-submit"><i class="fa fa-search"> Search</i></button> <button id="search-submit"><i class="fa fa-search"> Search</i></button>
</div> </div>
<div id="result-view"> <div id="result-view">

View File

@@ -3,6 +3,8 @@ $(document).ready(function(){
$('#search-submit').click(plot); $('#search-submit').click(plot);
renderFields();
AutoComplete({ AutoComplete({
HttpMethod: "GET", HttpMethod: "GET",
Delay: 300, Delay: 300,
@@ -27,6 +29,34 @@ $(document).ready(function(){
}); });
}); });
function renderFields()
{
var request = {};
request['query'] = $('#search-input').val();
var success = function(response){
$('#search-group-by').empty();
var option = new Option("", "");
$('#search-group-by').append($(option));
response.forEach(
(item, index) => {
var option = new Option(item, item);
$('#search-group-by').append($(option));
}
);
};
var error = function(e) {
$('#result-view').text("FAILED: " + JSON.stringify(e));
};
getJson("fields", request, success, error);
}
function showLoadingIcon() function showLoadingIcon()
{ {
$('#result-view').html("<div class='center'><div class='uil-cube-css' style='-webkit-transform:scale(0.41)'><div /><div></div><div></div><div></div></div></div>"); $('#result-view').html("<div class='center'><div class='uil-cube-css' style='-webkit-transform:scale(0.41)'><div /><div></div><div></div><div></div></div></div>");
@@ -41,6 +71,7 @@ function plot(event){
request['query'] = $('#search-input').val(); request['query'] = $('#search-input').val();
request['height'] = $('#result-view').height()-10; request['height'] = $('#result-view').height()-10;
request['width'] = $('#result-view').width()-10; request['width'] = $('#result-view').width()-10;
request['groupBy'] = $('#search-group-by').val();
var success = function(response){ var success = function(response){
@@ -67,3 +98,15 @@ function postJson(url, requestData, successCallback, errorCallback) {
.fail(errorCallback); .fail(errorCallback);
} }
function getJson(url, requestData, successCallback, errorCallback) {
$.ajax({
type: "GET",
url: url,
data: requestData,
contentType: 'application/json'
})
.done(successCallback)
.fail(errorCallback);
}

View File

@@ -25,7 +25,7 @@ public class Grouping {
public static Grouping groupBy(final List<PdbReader> pdbReaders, final String groupByField) { public static Grouping groupBy(final List<PdbReader> pdbReaders, final String groupByField) {
final Grouping result; final Grouping result;
if (groupByField == NO_GROUPING) { if (noGrouping(groupByField)) {
final Group group = new Group(Tags.EMPTY, pdbReaders); final Group group = new Group(Tags.EMPTY, pdbReaders);
result = new Grouping(group); result = new Grouping(group);
@@ -46,6 +46,10 @@ public class Grouping {
return result; return result;
} }
private static boolean noGrouping(final String groupByField) {
return groupByField == NO_GROUPING || groupByField.isEmpty();
}
private static void addIfNotExists(final Map<String, Group> grouping, final String groupByField, private static void addIfNotExists(final Map<String, Group> grouping, final String groupByField,
final String value) { final String value) {
if (!grouping.containsKey(value)) { if (!grouping.containsKey(value)) {