Merge branch 'develop' into groovy/JAL-2074_upgradeto2.4.4
[jalview.git] / src / jalview / gui / PDBSearchPanel.java
diff --git a/src/jalview/gui/PDBSearchPanel.java b/src/jalview/gui/PDBSearchPanel.java
deleted file mode 100644 (file)
index 9b94c27..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *  
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
- * PURPOSE.  See the GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-
-package jalview.gui;
-
-import jalview.jbgui.GPDBSearchPanel;
-import jalview.jbgui.PDBDocFieldPreferences;
-import jalview.util.MessageManager;
-import jalview.ws.dbsources.PDBRestClient;
-import jalview.ws.dbsources.PDBRestClient.PDBDocField;
-import jalview.ws.uimodel.PDBRestRequest;
-import jalview.ws.uimodel.PDBRestResponse;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-
-import javax.swing.table.DefaultTableModel;
-
-@SuppressWarnings("serial")
-public class PDBSearchPanel extends GPDBSearchPanel
-{
-  private SequenceFetcher seqFetcher;
-
-  private IProgressIndicator progressIdicator;
-
-  private Collection<PDBDocField> wantedFields;
-
-  public PDBSearchPanel(SequenceFetcher seqFetcher)
-  {
-    this.seqFetcher = seqFetcher;
-    this.progressIdicator = (seqFetcher == null) ? null : seqFetcher
-            .getProgressIndicator();
-  }
-
-  /**
-   * Action performed when an input is detected on txt_search field.
-   */
-  @Override
-  public void txt_search_ActionPerformed()
-  {
-    new Thread()
-    {
-      @Override
-      public void run()
-      {
-        lbl_loading.setVisible(false);
-        errorWarning.setLength(0);
-        lbl_warning.setVisible(false);
-        btn_ok.setEnabled(false);
-        boolean allowEmptySequence = false;
-        mainFrame.setTitle(MessageManager
-                .getString("label.pdb_sequence_getcher"));
-        tbl_summary.setModel(new DefaultTableModel());
-        if (txt_search.getText().trim().length() > 0)
-        {
-          lbl_loading.setVisible(true);
-          long startTime = System.currentTimeMillis();
-
-          String searchTarget = ((PDBDocField) cmb_searchTarget
-                  .getSelectedItem()).getCode();
-
-          wantedFields = PDBDocFieldPreferences.getSearchSummaryFields();
-
-          String searchTerm = decodeSearchTerm(txt_search.getText(),
-                  searchTarget);
-
-          PDBRestRequest request = new PDBRestRequest();
-          request.setAllowEmptySeq(allowEmptySequence);
-          request.setResponseSize(100);
-          request.setFieldToSearchBy("(" + searchTarget + ":");
-          request.setSearchTerm(searchTerm + ")");
-          request.setWantedFields(wantedFields);
-          // System.out.println(">>>>>>>>>>>>>> " + request.getQuery());
-          PDBRestClient pdbRestCleint = new PDBRestClient();
-          PDBRestResponse resultList;
-          try
-          {
-            resultList = pdbRestCleint.executeRequest(request);
-          } catch (Exception e)
-          {
-            // e.printStackTrace();
-            errorWarning.append(e.getMessage());
-            checkForErrors();
-            return;
-          }
-
-          if (resultList.getSearchSummary() != null)
-          {
-            tbl_summary.setModel(PDBRestResponse.getTableModel(request,
-                    resultList.getSearchSummary()));
-          }
-
-          PDBRestResponse.configureTableColumn(tbl_summary, wantedFields);
-
-          long endTime = System.currentTimeMillis();
-          int resultSetCount = resultList.getNumberOfItemsFound();
-          String result = (resultSetCount > 1) ? MessageManager
-                  .getString("label.results") : MessageManager
-                  .getString("label.result");
-          mainFrame.setTitle(frameTitle + " - " + resultSetCount + " "
-                  + result + " (" + (endTime - startTime) + " milli secs)");
-          lbl_loading.setVisible(false);
-        }
-      }
-    }.start();
-  }
-
-  public static String decodeSearchTerm(String enteredText,
-          String targetField)
-  {
-    String foundSearchTerms = enteredText;
-    StringBuilder foundSearchTermsBuilder = new StringBuilder();
-    if (enteredText.contains(";"))
-    {
-      String[] searchTerms = enteredText.split(";");
-      for (String searchTerm : searchTerms)
-      {
-        if (searchTerm.contains(":"))
-        {
-          foundSearchTermsBuilder.append(targetField).append(":")
-                  .append(searchTerm.split(":")[0]).append(" OR ");
-        }
-        else
-        {
-          foundSearchTermsBuilder.append(targetField).append(":")
-                  .append(searchTerm).append(" OR ");
-        }
-      }
-      int endIndex = foundSearchTermsBuilder.lastIndexOf(" OR ");
-      foundSearchTerms = foundSearchTermsBuilder.toString();
-      if (foundSearchTerms.contains(" OR "))
-      {
-        foundSearchTerms = foundSearchTerms.substring(
-                targetField.length() + 1, endIndex);
-      }
-    }
-    else if (enteredText.contains(":"))
-    {
-      foundSearchTerms = foundSearchTerms.split(":")[0];
-    }
-    return foundSearchTerms;
-  }
-
-  @Override
-  public void btn_ok_ActionPerformed()
-  {
-    loadSelectedPDBSequencesToAlignment();
-  }
-
-  @Override
-  public void btn_back_ActionPerformed()
-  {
-    mainFrame.dispose();
-    new SequenceFetcher(progressIdicator);
-  }
-
-  @Override
-  public void btn_cancel_ActionPerformed()
-  {
-    mainFrame.dispose();
-  }
-
-  @Override
-  public void transferToSequenceFetcher(String ids)
-  {
-    // mainFrame.dispose();
-    seqFetcher.textArea.setText(ids);
-    Thread worker = new Thread(seqFetcher);
-    worker.start();
-  }
-
-  /**
-   * Add the discovered/selected sequences to a target alignment window
-   */
-  public void loadSelectedPDBSequencesToAlignment()
-  {
-    // mainFrame.dispose();
-    disableActionButtons();
-    StringBuilder selectedIds = new StringBuilder();
-    HashSet<String> selectedIdsSet = new HashSet<String>();
-    int pdbIdCol = PDBRestClient.getPDBIdColumIndex(wantedFields, false);
-    int[] selectedRows = tbl_summary.getSelectedRows();
-    for (int summaryRow : selectedRows)
-    {
-      String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdCol)
-              .toString();
-      String searchTerm = txt_search.getText();
-      selectedIdsSet.add(getPDBIdwithSpecifiedChain(pdbIdStr, searchTerm));
-    }
-
-    for (String selectedId : selectedIdsSet)
-    {
-      selectedIds.append(selectedId).append(";");
-    }
-
-    String ids = selectedIds.toString();
-    // System.out.println(">>>>>>>>>>>>>>>> selected Ids: " + ids);
-    seqFetcher.textArea.setText(ids);
-    Thread worker = new Thread(seqFetcher);
-    worker.start();
-    delayAndEnableActionButtons();
-
-  }
-
-  private void disableActionButtons()
-  {
-    btn_ok.setEnabled(false);
-    btn_back.setEnabled(false);
-    btn_cancel.setEnabled(false);
-  }
-
-  private void delayAndEnableActionButtons()
-  {
-    new Thread()
-    {
-      @Override
-      public void run()
-      {
-        try
-        {
-          Thread.sleep(1500);
-        } catch (InterruptedException e)
-        {
-          e.printStackTrace();
-        }
-        btn_ok.setEnabled(true);
-        btn_back.setEnabled(true);
-        btn_cancel.setEnabled(true);
-      }
-    }.start();
-  }
-
-  public static String getPDBIdwithSpecifiedChain(String pdbId,
-          String searchTerm)
-  {
-    String pdbIdWithChainCode = "";
-    if (searchTerm.contains(";"))
-    {
-      String[] foundTerms = searchTerm.split(";");
-      for (String foundTerm : foundTerms)
-      {
-        if (foundTerm.contains(pdbId))
-        {
-          pdbIdWithChainCode = foundTerm;
-        }
-      }
-    }
-    else if (searchTerm.contains(pdbId))
-    {
-      pdbIdWithChainCode = searchTerm;
-    }
-    else
-    {
-      pdbIdWithChainCode = pdbId;
-    }
-    return pdbIdWithChainCode;
-  }
-
-  /**
-   * Populates search target combo-box options
-   */
-  @Override
-  public void populateCmbSearchTargetOptions()
-  {
-    List<PDBDocField> searchableTargets = new ArrayList<PDBDocField>();
-    searchableTargets.add(PDBDocField.PDB_ID);
-    searchableTargets.add(PDBDocField.PFAM_ACCESSION);
-    searchableTargets.add(PDBDocField.MOLECULE_TYPE);
-    searchableTargets.add(PDBDocField.MOLECULE_NAME);
-    searchableTargets.add(PDBDocField.UNIPROT_ACCESSION);
-    searchableTargets.add(PDBDocField.GENE_NAME);
-    searchableTargets.add(PDBDocField.GENUS);
-    searchableTargets.add(PDBDocField.ALL);
-
-    Collections.sort(searchableTargets, new Comparator<PDBDocField>()
-    {
-      @Override
-      public int compare(PDBDocField o1, PDBDocField o2)
-      {
-        return o1.getName().compareTo(o2.getName());
-      }
-    });
-
-    for (PDBDocField searchTarget : searchableTargets)
-    {
-      cmb_searchTarget.addItem(searchTarget);
-    }
-  }
-
-  public void checkForErrors()
-  {
-    lbl_warning.setVisible(false);
-    if (errorWarning.length() > 0)
-    {
-      lbl_loading.setVisible(false);
-      lbl_warning.setToolTipText(JvSwingUtils.wrapTooltip(true,
-              errorWarning.toString()));
-      lbl_warning.setVisible(true);
-    }
-  }
-}