X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSPanel.java;h=1dfabcea139bb5485286c0cd7e7fcc814ee3ad59;hb=902a15eeb7361608e4b0b8b421a5435d21b1ee63;hp=826a505a101c62b3b102b42de6b077f4216304a7;hpb=007af0c9001900071f6d8e9214143f79e10f4938;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSPanel.java b/src/jalview/fts/service/pdb/PDBFTSPanel.java index 826a505..1dfabce 100644 --- a/src/jalview/fts/service/pdb/PDBFTSPanel.java +++ b/src/jalview/fts/service/pdb/PDBFTSPanel.java @@ -29,7 +29,9 @@ import jalview.fts.core.GFTSPanel; import jalview.gui.SequenceFetcher; import jalview.util.MessageManager; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; @SuppressWarnings("serial") public class PDBFTSPanel extends GFTSPanel @@ -39,17 +41,24 @@ public class PDBFTSPanel extends GFTSPanel private String ftsFrameTitle = defaultFTSFrameTitle; + private static Map tempUserPrefs = new HashMap(); + public PDBFTSPanel(SequenceFetcher seqFetcher) { + super(); + pageLimit = PDBFTSRestClient.getInstance().getDefaultResponsePageSize(); this.seqFetcher = seqFetcher; - this.progressIdicator = (seqFetcher == null) ? null : seqFetcher + this.progressIndicator = (seqFetcher == null) ? null : seqFetcher .getProgressIndicator(); } - @Override - public void searchAction() + public void searchAction(boolean isFreshSearch) { + if (isFreshSearch) + { + offSet = 0; + } new Thread() { @Override @@ -66,7 +75,7 @@ public class PDBFTSPanel extends GFTSPanel String searchTarget = ((FTSDataColumnI) cmb_searchTarget .getSelectedItem()).getCode(); wantedFields = PDBFTSRestClient.getInstance() - .getAllDefaulDisplayedDataColumns(); + .getAllDefaultDisplayedFTSDataColumns(); String searchTerm = decodeSearchTerm(txt_search.getText(), searchTarget); @@ -75,6 +84,7 @@ public class PDBFTSPanel extends GFTSPanel request.setResponseSize(100); request.setFieldToSearchBy("(" + searchTarget + ":"); request.setSearchTerm(searchTerm + ")"); + request.setOffSet(offSet); request.setWantedFields(wantedFields); FTSRestClientI pdbRestCleint = PDBFTSRestClient.getInstance(); FTSRestResponse resultList; @@ -93,21 +103,45 @@ public class PDBFTSPanel extends GFTSPanel { getResultTable().setModel( FTSRestResponse.getTableModel(request, - resultList.getSearchSummary())); + resultList.getSearchSummary())); FTSRestResponse.configureTableColumn(getResultTable(), - wantedFields); + wantedFields, tempUserPrefs); getResultTable().setVisible(true); } long endTime = System.currentTimeMillis(); - int resultSetCount = resultList.getNumberOfItemsFound(); - String result = (resultSetCount > 1) ? MessageManager + totalResultSetCount = resultList.getNumberOfItemsFound(); + resultSetCount = resultList.getSearchSummary() == null ? 0 + : resultList.getSearchSummary().size(); + String result = (resultSetCount > 0) ? MessageManager .getString("label.results") : MessageManager .getString("label.result"); - updateSearchFrameTitle(defaultFTSFrameTitle + " - " - + resultSetCount + " " + result + " (" - + (endTime - startTime) + " milli secs)"); + + if (isPaginationEnabled() && resultSetCount > 0) + { + updateSearchFrameTitle(defaultFTSFrameTitle + + " - " + + result + + " " + + totalNumberformatter.format((Number) (offSet + 1)) + + " to " + + totalNumberformatter + .format((Number) (offSet + resultSetCount)) + + " of " + + totalNumberformatter + .format((Number) totalResultSetCount) + " " + + " (" + (endTime - startTime) + " milli secs)"); + } + else + { + updateSearchFrameTitle(defaultFTSFrameTitle + " - " + + resultSetCount + " " + result + " (" + + (endTime - startTime) + " milli secs)"); + } + setSearchInProgress(false); + refreshPaginatorState(); + updateSummaryTableSelections(); } } }.start(); @@ -160,20 +194,22 @@ public class PDBFTSPanel extends GFTSPanel try { primaryKeyColIndex = getFTSRestClient().getPrimaryKeyColumIndex( - wantedFields, - false); + wantedFields, false); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } int[] selectedRows = getResultTable().getSelectedRows(); + String searchTerm = txt_search.getText(); for (int summaryRow : selectedRows) { String idStr = getResultTable().getValueAt(summaryRow, - primaryKeyColIndex) - .toString(); - String searchTerm = txt_search.getText(); + primaryKeyColIndex).toString(); + selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm)); + } + + for (String idStr : paginatorCart) + { selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm)); } @@ -190,7 +226,6 @@ public class PDBFTSPanel extends GFTSPanel delayAndEnableActionButtons(); } - public static String getPDBIdwithSpecifiedChain(String pdbId, String searchTerm) { @@ -217,8 +252,6 @@ public class PDBFTSPanel extends GFTSPanel return pdbIdWithChainCode; } - - @Override public FTSRestClientI getFTSRestClient() { @@ -231,5 +264,16 @@ public class PDBFTSPanel extends GFTSPanel return ftsFrameTitle; } + @Override + public boolean isPaginationEnabled() + { + return true; + } + + @Override + public Map getTempUserPrefs() + { + return tempUserPrefs; + } }