X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2Fstructurechooser%2FTDBResultAnalyser.java;h=06dbe2daddb7ddb3cfd73f2196fe1a3fe26ac2cf;hb=896b63f7908297dfe7a48e198d7bce847e2804b8;hp=cf3cc0c9b7931f3deac0255d0b753e70f8632924;hpb=fbd878d0ad686c65f9c9e42db37494535e63aa29;p=jalview.git diff --git a/src/jalview/gui/structurechooser/TDBResultAnalyser.java b/src/jalview/gui/structurechooser/TDBResultAnalyser.java index cf3cc0c..06dbe2d 100644 --- a/src/jalview/gui/structurechooser/TDBResultAnalyser.java +++ b/src/jalview/gui/structurechooser/TDBResultAnalyser.java @@ -42,16 +42,30 @@ public class TDBResultAnalyser private int idx_resol; + /** + * selection model + */ + private String filter=null; + /** + * limit to particular source + */ + private String sourceFilter=null; + + private int idx_mprov; + public TDBResultAnalyser(SequenceI seq, Collection collectedResults, - FTSRestRequest lastTdbRequest) + FTSRestRequest lastTdbRequest, String fieldToFilterBy, String string) { this.seq = seq; this.collectedResults = collectedResults; this.lastTdbRequest = lastTdbRequest; + this.filter = fieldToFilterBy; + this.sourceFilter = string; idx_ups = lastTdbRequest.getFieldIndex("Uniprot Start"); idx_upe = lastTdbRequest.getFieldIndex("Uniprot End"); idx_mcat = lastTdbRequest.getFieldIndex("Model Category"); + idx_mprov = lastTdbRequest.getFieldIndex("Provider"); idx_mqual = lastTdbRequest.getFieldIndex("Confidence"); idx_resol = lastTdbRequest.getFieldIndex("Resolution"); } @@ -81,19 +95,20 @@ public class TDBResultAnalyser { int up_s = (Integer) row.getSummaryData()[idx_ups]; int up_e = (Integer) row.getSummaryData()[idx_upe]; - - if (seq == row.getSummaryData()[0] && up_e > seq.getStart() - && up_s < seq.getEnd()) + String provider = (String) row.getSummaryData()[idx_mprov]; + if (sourceFilter == null || sourceFilter.equals(provider)) { - filteredResponse.add(row); + if (seq == row.getSummaryData()[0] && up_e > seq.getStart() + && up_s < seq.getEnd()) + { + filteredResponse.add(row); + } } } // sort according to decreasing length, // increasing start Collections.sort(filteredResponse, new Comparator() { - - @Override public int compare(FTSData o1, FTSData o2) { @@ -197,6 +212,10 @@ public class TDBResultAnalyser return o2_xt-o1_xt; } }); + if (filter.equals(ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE)) + { + return selected.subList(0, 1); + } return selected; }