X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fservice%2Funiprot%2FUniprotFTSPanel.java;h=acf2fb08aee8dad5530b16eb3682a2d4df6d5025;hb=5585b4b0ed1f5dd85887ed6b76352947ce1be133;hp=32f359ea8541ce4ceb49ba16ed92e36eef497bcf;hpb=2dce7a14750a1a0484e71ba4c089ecfb44cc55b7;p=jalview.git diff --git a/src/jalview/fts/service/uniprot/UniprotFTSPanel.java b/src/jalview/fts/service/uniprot/UniprotFTSPanel.java index 32f359e..acf2fb0 100644 --- a/src/jalview/fts/service/uniprot/UniprotFTSPanel.java +++ b/src/jalview/fts/service/uniprot/UniprotFTSPanel.java @@ -40,29 +40,24 @@ public class UniprotFTSPanel extends GFTSPanel private String ftsFrameTitle = defaultFTSFrameTitle; - private int resultSetCount; - private int offSet; - - private static int pageLimit = UniProtFTSRestClient.getInstance() - .getDefaultResponsePageSize(); public UniprotFTSPanel(SequenceFetcher seqFetcher) { + pageLimit = UniProtFTSRestClient.getInstance() + .getDefaultResponsePageSize(); this.seqFetcher = seqFetcher; this.progressIdicator = (seqFetcher == null) ? null : seqFetcher .getProgressIndicator(); } @Override - public void searchAction() - { - offSet = 0; - executeSearch(); - } - - public void executeSearch() + public void searchAction(boolean isFreshSearch) { + if (isFreshSearch) + { + offSet = 0; + } new Thread() { @Override @@ -80,7 +75,8 @@ public class UniprotFTSPanel extends GFTSPanel wantedFields = UniProtFTSRestClient.getInstance() .getAllDefaulDisplayedDataColumns(); - String searchTerm = txt_search.getText(); + String searchTerm = decodeSearchTerm(txt_search.getText(), + searchTarget); FTSRestRequest request = new FTSRestRequest(); request.setFieldToSearchBy(searchTarget); @@ -138,44 +134,33 @@ public class UniprotFTSPanel extends GFTSPanel } - - - public void refreshPaginatorState() - { - // System.out.println("resultSet count : " + resultSetCount); - // System.out.println("offSet : " + offSet); - // System.out.println("page limit : " + pageLimit); - setPrevPageButtonEnabled(false); - setNextPageButtonEnabled(false); - if (resultSetCount >= pageLimit) - { - setNextPageButtonEnabled(true); - } - if (offSet >= pageLimit) - { - setPrevPageButtonEnabled(true); - } - } - - @Override - public void prevPageAction() + public String decodeSearchTerm(String enteredText, String targetField) { - if (offSet >= pageLimit) + int searchTargetLength = targetField.equalsIgnoreCase("Search All") ? 0 + : targetField.length() + 1; + String searchTarget = targetField.equalsIgnoreCase("Search All") ? "" + : targetField + ":"; + String foundSearchTerms = enteredText; + StringBuilder foundSearchTermsBuilder = new StringBuilder(); + if (enteredText.contains(";")) { - offSet = offSet - pageLimit; - executeSearch(); - }else{ - refreshPaginatorState(); + String[] searchTerms = enteredText.split(";"); + for (String searchTerm : searchTerms) + { + foundSearchTermsBuilder.append(searchTarget).append(searchTerm) + .append(" OR "); + } + int endIndex = foundSearchTermsBuilder.lastIndexOf(" OR "); + foundSearchTerms = foundSearchTermsBuilder.toString(); + if (foundSearchTerms.contains(" OR ")) + { + foundSearchTerms = foundSearchTerms.substring(searchTargetLength, + endIndex); + } } + return foundSearchTerms; } - @Override - public void nextPageAction() - { - offSet = offSet + pageLimit; - executeSearch(); - - } @Override public boolean isPaginationEnabled()