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
wantedFields = UniProtFTSRestClient.getInstance()
.getAllDefaulDisplayedDataColumns();
- String searchTerm = txt_search.getText();
+ String searchTerm = decodeSearchTerm(txt_search.getText(),
+ searchTarget);
FTSRestRequest request = new FTSRestRequest();
request.setFieldToSearchBy(searchTarget);
}
-
-
- 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()