X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Fpdb%2FPDBFTSPanel.java;h=053d91bf02edf9288fbea8465371d14f2e26a402;hb=refs%2Fheads%2Fbug%2FJAL-2876byLabelThreshold;hp=5f5c71675b4aef0aab45c45d15f3c8c757c11318;hpb=a31a02714259bddad8163062afc770e89114d0d4;p=jalview.git diff --git a/src/jalview/fts/service/pdb/PDBFTSPanel.java b/src/jalview/fts/service/pdb/PDBFTSPanel.java index 5f5c716..053d91b 100644 --- a/src/jalview/fts/service/pdb/PDBFTSPanel.java +++ b/src/jalview/fts/service/pdb/PDBFTSPanel.java @@ -39,22 +39,25 @@ 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"; + + private static final String PDB_AUTOSEARCH = "FTS.PDB.AUTOSEARCH"; + + public PDBFTSPanel(SequenceFetcher fetcher) { + super(fetcher); pageLimit = PDBFTSRestClient.getInstance().getDefaultResponsePageSize(); - this.seqFetcher = seqFetcher; - this.progressIdicator = (seqFetcher == null) ? null : seqFetcher - .getProgressIndicator(); + this.seqFetcher = fetcher; + this.progressIndicator = (fetcher == null) ? null + : fetcher.getProgressIndicator(); } - @Override public void searchAction(boolean isFreshSearch) { + mainFrame.requestFocusInWindow(); if (isFreshSearch) { offSet = 0; @@ -64,7 +67,6 @@ public class PDBFTSPanel extends GFTSPanel @Override public void run() { - ftsFrameTitle = defaultFTSFrameTitle; reset(); boolean allowEmptySequence = false; if (getTypedText().length() > 0) @@ -76,7 +78,7 @@ public class PDBFTSPanel extends GFTSPanel .getSelectedItem()).getCode(); wantedFields = PDBFTSRestClient.getInstance() .getAllDefaultDisplayedFTSDataColumns(); - String searchTerm = decodeSearchTerm(txt_search.getText(), + String searchTerm = decodeSearchTerm(getTypedText(), searchTarget); FTSRestRequest request = new FTSRestRequest(); @@ -86,23 +88,23 @@ public class PDBFTSPanel extends GFTSPanel 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, tempUserPrefs); @@ -113,10 +115,10 @@ public class PDBFTSPanel extends GFTSPanel totalResultSetCount = resultList.getNumberOfItemsFound(); resultSetCount = resultList.getSearchSummary() == null ? 0 : resultList.getSearchSummary().size(); - String result = (resultSetCount > 0) ? MessageManager - .getString("label.results") : MessageManager - .getString("label.result"); - + String result = (resultSetCount > 0) + ? MessageManager.getString("label.results") + : MessageManager.getString("label.result"); + if (isPaginationEnabled() && resultSetCount > 0) { updateSearchFrameTitle(defaultFTSFrameTitle + " - " + result @@ -136,11 +138,12 @@ public class PDBFTSPanel extends GFTSPanel + resultSetCount + " " + result + " (" + (endTime - startTime) + " milli secs)"); } - + setSearchInProgress(false); refreshPaginatorState(); updateSummaryTableSelections(); } + txt_search.updateCache(); } }.start(); } @@ -170,8 +173,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(":")) @@ -191,20 +194,18 @@ public class PDBFTSPanel extends GFTSPanel int primaryKeyColIndex = 0; try { - primaryKeyColIndex = getFTSRestClient().getPrimaryKeyColumIndex( - wantedFields, - false); + primaryKeyColIndex = getFTSRestClient() + .getPrimaryKeyColumIndex(wantedFields, false); } catch (Exception e) { e.printStackTrace(); } int[] selectedRows = getResultTable().getSelectedRows(); - String searchTerm = txt_search.getText(); + String searchTerm = getTypedText(); for (int summaryRow : selectedRows) { - String idStr = getResultTable().getValueAt(summaryRow, - primaryKeyColIndex) - .toString(); + String idStr = getResultTable() + .getValueAt(summaryRow, primaryKeyColIndex).toString(); selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm)); } @@ -226,7 +227,6 @@ public class PDBFTSPanel extends GFTSPanel delayAndEnableActionButtons(); } - public static String getPDBIdwithSpecifiedChain(String pdbId, String searchTerm) { @@ -262,7 +262,7 @@ public class PDBFTSPanel extends GFTSPanel @Override public String getFTSFrameTitle() { - return ftsFrameTitle; + return defaultFTSFrameTitle; } @Override @@ -277,4 +277,15 @@ public class PDBFTSPanel extends GFTSPanel return tempUserPrefs; } -} + @Override + public String getCacheKey() + { + return PDB_FTS_CACHE_KEY; + } + + @Override + public String getAutosearchPreference() + { + return PDB_AUTOSEARCH; + } +} \ No newline at end of file