JAL-2071 further refactoring, optimisation, and house keeping for the generic Free...
[jalview.git] / src / jalview / fts / service / pdb / PDBFTSPanel.java
index 0b8917d..826a505 100644 (file)
@@ -31,11 +31,13 @@ import jalview.util.MessageManager;
 
 import java.util.HashSet;
 
-import javax.swing.table.DefaultTableModel;
-
 @SuppressWarnings("serial")
 public class PDBFTSPanel extends GFTSPanel
 {
+  private static String defaultFTSFrameTitle = MessageManager
+          .getString("label.pdb_sequence_fetcher");
+
+  private String ftsFrameTitle = defaultFTSFrameTitle;
 
   public PDBFTSPanel(SequenceFetcher seqFetcher)
   {
@@ -45,34 +47,24 @@ public class PDBFTSPanel extends GFTSPanel
   }
 
 
-  /**
-   * Action performed when an input is detected on txt_search field.
-   */
   @Override
-  public void txt_search_ActionPerformed()
+  public void searchAction()
   {
     new Thread()
     {
       @Override
       public void run()
       {
-        lbl_loading.setVisible(false);
-        errorWarning.setLength(0);
-        lbl_warning.setVisible(false);
-        btn_ok.setEnabled(false);
+        ftsFrameTitle = defaultFTSFrameTitle;
+        reset();
         boolean allowEmptySequence = false;
-        mainFrame.setTitle(getFTSFrameTitle());
-        tbl_summary.setModel(new DefaultTableModel());
-        tbl_summary.setVisible(false);
-        if (txt_search.getText().trim().length() > 0)
+        if (getTypedText().length() > 0)
         {
-          lbl_loading.setVisible(true);
+          setSearchInProgress(true);
           long startTime = System.currentTimeMillis();
 
           String searchTarget = ((FTSDataColumnI) cmb_searchTarget
                   .getSelectedItem()).getCode();
-
-          // wantedFields = FTSDataColumnPreferences.getSearchSummaryFields();
           wantedFields = PDBFTSRestClient.getInstance()
                   .getAllDefaulDisplayedDataColumns();
           String searchTerm = decodeSearchTerm(txt_search.getText(),
@@ -84,7 +76,6 @@ public class PDBFTSPanel extends GFTSPanel
           request.setFieldToSearchBy("(" + searchTarget + ":");
           request.setSearchTerm(searchTerm + ")");
           request.setWantedFields(wantedFields);
-          // System.out.println(">>>>>>>>>>>>>> " + request.getQuery());
           FTSRestClientI pdbRestCleint = PDBFTSRestClient.getInstance();
           FTSRestResponse resultList;
           try
@@ -92,30 +83,31 @@ public class PDBFTSPanel extends GFTSPanel
             resultList = pdbRestCleint.executeRequest(request);
           } catch (Exception e)
           {
-            // e.printStackTrace();
-            errorWarning.append(e.getMessage());
+            setErrorMessage(e.getMessage());
             checkForErrors();
             return;
           }
 
-          if (resultList.getSearchSummary() != null)
+          if (resultList.getSearchSummary() != null
+                  && resultList.getSearchSummary().size() > 0)
           {
-            tbl_summary.setModel(FTSRestResponse.getTableModel(request,
+            getResultTable().setModel(
+                    FTSRestResponse.getTableModel(request,
                     resultList.getSearchSummary()));
-            FTSRestResponse.configureTableColumn(tbl_summary, wantedFields);
-            tbl_summary.setVisible(true);
+            FTSRestResponse.configureTableColumn(getResultTable(),
+                    wantedFields);
+            getResultTable().setVisible(true);
           }
 
-
           long endTime = System.currentTimeMillis();
           int resultSetCount = resultList.getNumberOfItemsFound();
           String result = (resultSetCount > 1) ? MessageManager
                   .getString("label.results") : MessageManager
                   .getString("label.result");
-          mainFrame.setTitle(getFTSFrameTitle() + " - " + resultSetCount
-                  + " "
-                  + result + " (" + (endTime - startTime) + " milli secs)");
-          lbl_loading.setVisible(false);
+          updateSearchFrameTitle(defaultFTSFrameTitle + " - "
+                  + resultSetCount + " " + result + " ("
+                  + (endTime - startTime) + " milli secs)");
+          setSearchInProgress(false);
         }
       }
     }.start();
@@ -158,26 +150,28 @@ public class PDBFTSPanel extends GFTSPanel
   }
 
   @Override
-  public void btn_ok_ActionPerformed()
+  public void okAction()
   {
     // mainFrame.dispose();
     disableActionButtons();
     StringBuilder selectedIds = new StringBuilder();
     HashSet<String> selectedIdsSet = new HashSet<String>();
-    int pdbIdCol = 0;
+    int primaryKeyColIndex = 0;
     try
     {
-      pdbIdCol = getFTSRestClient().getPrimaryKeyColumIndex(wantedFields,
+      primaryKeyColIndex = getFTSRestClient().getPrimaryKeyColumIndex(
+              wantedFields,
               false);
     } catch (Exception e)
     {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
-    int[] selectedRows = tbl_summary.getSelectedRows();
+    int[] selectedRows = getResultTable().getSelectedRows();
     for (int summaryRow : selectedRows)
     {
-      String idStr = tbl_summary.getValueAt(summaryRow, pdbIdCol)
+      String idStr = getResultTable().getValueAt(summaryRow,
+              primaryKeyColIndex)
               .toString();
       String searchTerm = txt_search.getText();
       selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm));
@@ -234,7 +228,8 @@ public class PDBFTSPanel extends GFTSPanel
   @Override
   public String getFTSFrameTitle()
   {
-    return MessageManager.getString("label.pdb_sequence_fetcher");
+    return ftsFrameTitle;
   }
 
+
 }