X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSPanel.java;h=687e83da40e1cab858c6adb8dc5dcf1a75bad1f8;hb=7782e9acaa4fd15da99c5fa91a910ca74a627ada;hp=ca1a90232b2b2a9bd4ded8a25505eae193194d57;hpb=e1976b4025f648431974e7ddcb2be93115688abd;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSPanel.java b/src/jalview/fts/service/pdb/PDBFTSPanel.java index ca1a902..687e83d 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 @@ -37,25 +39,32 @@ public class PDBFTSPanel extends GFTSPanel private static String defaultFTSFrameTitle = MessageManager .getString("label.pdb_sequence_fetcher"); - private String ftsFrameTitle = defaultFTSFrameTitle; + private static Map tempUserPrefs = new HashMap(); - public PDBFTSPanel(SequenceFetcher seqFetcher) + private static final String PDB_FTS_CACHE_KEY = "CACHE.PDB_FTS"; + + public PDBFTSPanel(SequenceFetcher fetcher) { - this.seqFetcher = seqFetcher; - this.progressIdicator = (seqFetcher == null) ? null : seqFetcher - .getProgressIndicator(); + super(fetcher); + pageLimit = PDBFTSRestClient.getInstance().getDefaultResponsePageSize(); + this.seqFetcher = fetcher; + this.progressIndicator = (fetcher == null) ? null + : fetcher.getProgressIndicator(); } - @Override - public void searchAction() + public void searchAction(boolean isFreshSearch) { + mainFrame.requestFocusInWindow(); + if (isFreshSearch) + { + offSet = 0; + } new Thread() { @Override public void run() { - ftsFrameTitle = defaultFTSFrameTitle; reset(); boolean allowEmptySequence = false; if (getTypedText().length() > 0) @@ -66,8 +75,8 @@ public class PDBFTSPanel extends GFTSPanel String searchTarget = ((FTSDataColumnI) cmb_searchTarget .getSelectedItem()).getCode(); wantedFields = PDBFTSRestClient.getInstance() - .getAllDefaulDisplayedDataColumns(); - String searchTerm = decodeSearchTerm(txt_search.getText(), + .getAllDefaultDisplayedFTSDataColumns(); + String searchTerm = decodeSearchTerm(getTypedText(), searchTarget); FTSRestRequest request = new FTSRestRequest(); @@ -75,40 +84,64 @@ public class PDBFTSPanel extends GFTSPanel request.setResponseSize(100); request.setFieldToSearchBy("(" + searchTarget + ":"); request.setSearchTerm(searchTerm + ")"); + request.setOffSet(offSet); request.setWantedFields(wantedFields); - FTSRestClientI pdbRestCleint = PDBFTSRestClient.getInstance(); + FTSRestClientI pdbRestClient = PDBFTSRestClient.getInstance(); FTSRestResponse resultList; try { - resultList = pdbRestCleint.executeRequest(request); + resultList = pdbRestClient.executeRequest(request); } catch (Exception e) { setErrorMessage(e.getMessage()); checkForErrors(); + setSearchInProgress(false); return; } if (resultList.getSearchSummary() != null && resultList.getSearchSummary().size() > 0) { - getResultTable().setModel( - FTSRestResponse.getTableModel(request, + getResultTable().setModel(FTSRestResponse.getTableModel(request, resultList.getSearchSummary())); FTSRestResponse.configureTableColumn(getResultTable(), - wantedFields); + wantedFields, tempUserPrefs); getResultTable().setVisible(true); } long endTime = System.currentTimeMillis(); - int resultSetCount = resultList.getNumberOfItemsFound(); - String result = (resultSetCount > 1) ? MessageManager - .getString("label.results") : MessageManager - .getString("label.result"); - updateSearchFrameTitle(defaultFTSFrameTitle + " - " - + resultSetCount + " " + result + " (" - + (endTime - startTime) + " milli secs)"); + totalResultSetCount = resultList.getNumberOfItemsFound(); + resultSetCount = resultList.getSearchSummary() == null ? 0 + : resultList.getSearchSummary().size(); + String result = (resultSetCount > 0) + ? MessageManager.getString("label.results") + : MessageManager.getString("label.result"); + + 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(); } + txt_search.updateCache(); } }.start(); } @@ -138,8 +171,8 @@ public class PDBFTSPanel extends GFTSPanel foundSearchTerms = foundSearchTermsBuilder.toString(); if (foundSearchTerms.contains(" OR ")) { - foundSearchTerms = foundSearchTerms.substring( - targetField.length() + 1, endIndex); + foundSearchTerms = foundSearchTerms + .substring(targetField.length() + 1, endIndex); } } else if (enteredText.contains(":")) @@ -159,21 +192,23 @@ public class PDBFTSPanel extends GFTSPanel int primaryKeyColIndex = 0; try { - primaryKeyColIndex = getFTSRestClient().getPrimaryKeyColumIndex( - wantedFields, - false); + primaryKeyColIndex = getFTSRestClient() + .getPrimaryKeyColumIndex(wantedFields, false); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } int[] selectedRows = getResultTable().getSelectedRows(); + String searchTerm = getTypedText(); for (int summaryRow : selectedRows) { - String idStr = getResultTable().getValueAt(summaryRow, - primaryKeyColIndex) - .toString(); - String searchTerm = txt_search.getText(); + String idStr = getResultTable() + .getValueAt(summaryRow, primaryKeyColIndex).toString(); + selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm)); + } + + for (String idStr : paginatorCart) + { selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm)); } @@ -190,7 +225,6 @@ public class PDBFTSPanel extends GFTSPanel delayAndEnableActionButtons(); } - public static String getPDBIdwithSpecifiedChain(String pdbId, String searchTerm) { @@ -217,8 +251,6 @@ public class PDBFTSPanel extends GFTSPanel return pdbIdWithChainCode; } - - @Override public FTSRestClientI getFTSRestClient() { @@ -228,28 +260,25 @@ public class PDBFTSPanel extends GFTSPanel @Override public String getFTSFrameTitle() { - return ftsFrameTitle; + return defaultFTSFrameTitle; } - @Override - public void prevPageAction() + public boolean isPaginationEnabled() { - // TODO pagination not yet implemented for PDB FTS - + return true; } @Override - public void nextPageAction() + public Map getTempUserPrefs() { - // TODO pagination not yet implemented for PDB FTS - + return tempUserPrefs; } @Override - public boolean isPaginationEnabled() + public String getCacheKey() { - return false; + return PDB_FTS_CACHE_KEY; } }