group plots by field
This commit is contained in:
@@ -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">
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user