JAL-2074 Improvement to StructureChooser and FTS interfaces to remember the user...
[jalview.git] / src / jalview / fts / service / pdb / PDBFTSPanel.java
index 4f308e3..5f5c716 100644 (file)
@@ -29,7 +29,9 @@ import jalview.fts.core.GFTSPanel;
 import jalview.gui.SequenceFetcher;
 import jalview.util.MessageManager;
 
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 
 @SuppressWarnings("serial")
 public class PDBFTSPanel extends GFTSPanel
@@ -39,6 +41,8 @@ public class PDBFTSPanel extends GFTSPanel
 
   private String ftsFrameTitle = defaultFTSFrameTitle;
 
+  private static Map<String, Integer> tempUserPrefs = new HashMap<String, Integer>();
+
   public PDBFTSPanel(SequenceFetcher seqFetcher)
   {
     pageLimit = PDBFTSRestClient.getInstance().getDefaultResponsePageSize();
@@ -71,7 +75,7 @@ public class PDBFTSPanel extends GFTSPanel
           String searchTarget = ((FTSDataColumnI) cmb_searchTarget
                   .getSelectedItem()).getCode();
           wantedFields = PDBFTSRestClient.getInstance()
-                  .getAllDefaulDisplayedDataColumns();
+                  .getAllDefaultDisplayedFTSDataColumns();
           String searchTerm = decodeSearchTerm(txt_search.getText(),
                   searchTarget);
 
@@ -101,13 +105,14 @@ public class PDBFTSPanel extends GFTSPanel
                     FTSRestResponse.getTableModel(request,
                     resultList.getSearchSummary()));
             FTSRestResponse.configureTableColumn(getResultTable(),
-                    wantedFields);
+                    wantedFields, tempUserPrefs);
             getResultTable().setVisible(true);
           }
 
           long endTime = System.currentTimeMillis();
           totalResultSetCount = resultList.getNumberOfItemsFound();
-          resultSetCount = resultList.getSearchSummary().size();
+          resultSetCount = resultList.getSearchSummary() == null ? 0
+                  : resultList.getSearchSummary().size();
           String result = (resultSetCount > 0) ? MessageManager
                   .getString("label.results") : MessageManager
                   .getString("label.result");
@@ -115,9 +120,14 @@ public class PDBFTSPanel extends GFTSPanel
           if (isPaginationEnabled() && resultSetCount > 0)
           {
             updateSearchFrameTitle(defaultFTSFrameTitle + " - " + result
-                    + " " + (offSet + 1) + " to "
-                    + (offSet + resultSetCount) + " of "
-                    + totalResultSetCount
+                    + " "
+                    + totalNumberformatter.format((Number) (offSet + 1))
+                    + " to "
+                    + totalNumberformatter
+                            .format((Number) (offSet + resultSetCount))
+                    + " of "
+                    + totalNumberformatter
+                            .format((Number) totalResultSetCount)
                     + " " + " (" + (endTime - startTime) + " milli secs)");
           }
           else
@@ -129,6 +139,7 @@ public class PDBFTSPanel extends GFTSPanel
           
           setSearchInProgress(false);
           refreshPaginatorState();
+          updateSummaryTableSelections();
         }
       }
     }.start();
@@ -188,12 +199,17 @@ public class PDBFTSPanel extends GFTSPanel
       e.printStackTrace();
     }
     int[] selectedRows = getResultTable().getSelectedRows();
+    String searchTerm = txt_search.getText();
     for (int summaryRow : selectedRows)
     {
       String idStr = getResultTable().getValueAt(summaryRow,
               primaryKeyColIndex)
               .toString();
-      String searchTerm = txt_search.getText();
+      selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm));
+    }
+
+    for (String idStr : paginatorCart)
+    {
       selectedIdsSet.add(getPDBIdwithSpecifiedChain(idStr, searchTerm));
     }
 
@@ -255,4 +271,10 @@ public class PDBFTSPanel extends GFTSPanel
     return true;
   }
 
+  @Override
+  public Map<String, Integer> getTempUserPrefs()
+  {
+    return tempUserPrefs;
+  }
+
 }