JAL-3832 Gui working, with 3DBeacons parameters
[jalview.git] / src / jalview / fts / core / FTSDataColumnPreferences.java
index 1e38260..f865ac3 100644 (file)
@@ -40,7 +40,6 @@ import javax.swing.table.AbstractTableModel;
 import javax.swing.table.TableModel;
 import javax.swing.table.TableRowSorter;
 
-
 @SuppressWarnings("serial")
 public class FTSDataColumnPreferences extends JScrollPane
 {
@@ -68,8 +67,12 @@ public class FTSDataColumnPreferences extends JScrollPane
           FTSRestClientI ftsRestClient)
   {
     this.ftsRestClient = ftsRestClient;
-    structSummaryColumns = ((PDBFTSRestClient) ftsRestClient)
-            .getAllDefaultDisplayedStructureDataColumns();
+    if (source.equals(PreferenceSource.STRUCTURE_CHOOSER)
+            || source.equals(PreferenceSource.PREFERENCES))
+    {
+      structSummaryColumns = ((PDBFTSRestClient) ftsRestClient)
+              .getAllDefaultDisplayedStructureDataColumns();
+    }
     allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns());
 
     tbl_FTSDataColumnPrefs.setAutoCreateRowSorter(true);
@@ -93,11 +96,12 @@ public class FTSDataColumnPreferences extends JScrollPane
       break;
     }
 
-    Object[][] data = new Object[allFTSDataColumns.size() - 1][3];
+    Object[][] data = new Object[allFTSDataColumns.size()][3];
 
     int x = 0;
     for (FTSDataColumnI field : allFTSDataColumns)
-    {
+    {   
+      //System.out.println("allFTSDataColumns==" + allFTSDataColumns);
       if (field.getName().equalsIgnoreCase("all"))
       {
         continue;
@@ -106,19 +110,19 @@ public class FTSDataColumnPreferences extends JScrollPane
       switch (source)
       {
       case SEARCH_SUMMARY:
-        data[x++] = new Object[] {
-            ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
-                    .contains(field),
+        data[x++] = new Object[] { ftsRestClient
+                .getAllDefaultDisplayedFTSDataColumns().contains(field),
             field.getName(), field.getGroup() };
+        //System.out.println(" PUIS " + field.getName() + " ET AUSSI " + field.getGroup() + "X = " + x);
         break;
       case STRUCTURE_CHOOSER:
         data[x++] = new Object[] { structSummaryColumns.contains(field),
             field.getName(), field.getGroup() };
         break;
       case PREFERENCES:
-        data[x++] = new Object[] { field.getName(),
-            ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
-                    .contains(field),
+        data[x++] = new Object[] {
+            field.getName(), ftsRestClient
+                    .getAllDefaultDisplayedFTSDataColumns().contains(field),
             structSummaryColumns.contains(field) };
         break;
       default:
@@ -127,7 +131,8 @@ public class FTSDataColumnPreferences extends JScrollPane
       map.put(field.getName(), field);
     }
 
-    FTSDataColumnPrefsTableModel model = new FTSDataColumnPrefsTableModel(columnNames, data);
+    FTSDataColumnPrefsTableModel model = new FTSDataColumnPrefsTableModel(
+            columnNames, data);
     tbl_FTSDataColumnPrefs.setModel(model);
 
     switch (source)
@@ -143,8 +148,7 @@ public class FTSDataColumnPreferences extends JScrollPane
       tbl_FTSDataColumnPrefs.getColumnModel().getColumn(1).setMinWidth(150);
       tbl_FTSDataColumnPrefs.getColumnModel().getColumn(2)
               .setPreferredWidth(150);
-      tbl_FTSDataColumnPrefs.getColumnModel().getColumn(2)
-.setMinWidth(150);
+      tbl_FTSDataColumnPrefs.getColumnModel().getColumn(2).setMinWidth(150);
 
       TableRowSorter<TableModel> sorter = new TableRowSorter<>(
               tbl_FTSDataColumnPrefs.getModel());
@@ -153,9 +157,7 @@ public class FTSDataColumnPreferences extends JScrollPane
       int columnIndexToSort = 2;
       sortKeys.add(new RowSorter.SortKey(columnIndexToSort,
               SortOrder.ASCENDING));
-      sorter.setSortKeys(sortKeys);
-      sorter.setComparator(
-              columnIndexToSort,
+      sorter.setComparator(columnIndexToSort,
               new Comparator<FTSDataColumnGroupI>()
               {
                 @Override
@@ -165,7 +167,8 @@ public class FTSDataColumnPreferences extends JScrollPane
                   return o1.getSortOrder() - o2.getSortOrder();
                 }
               });
-      sorter.sort();
+      sorter.setSortKeys(sortKeys);
+      // BH 2018 setSortKeys does a sort      sorter.sort();
 
       tbl_FTSDataColumnPrefs
               .setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
@@ -185,7 +188,8 @@ public class FTSDataColumnPreferences extends JScrollPane
   class FTSDataColumnPrefsTableModel extends AbstractTableModel
   {
 
-    public FTSDataColumnPrefsTableModel(String[] columnNames, Object[][] data)
+    public FTSDataColumnPrefsTableModel(String[] columnNames,
+            Object[][] data)
     {
       this.data = data;
       this.columnNames = columnNames;
@@ -297,9 +301,8 @@ public class FTSDataColumnPreferences extends JScrollPane
 
       if (currentSource == PreferenceSource.SEARCH_SUMMARY)
       {
-        updatePrefs(ftsRestClient
-                .getAllDefaultDisplayedFTSDataColumns(), ftsDataColumn,
-                selected);
+        updatePrefs(ftsRestClient.getAllDefaultDisplayedFTSDataColumns(),
+                ftsDataColumn, selected);
       }
       else if (currentSource == PreferenceSource.STRUCTURE_CHOOSER)
       {
@@ -309,9 +312,8 @@ public class FTSDataColumnPreferences extends JScrollPane
       {
         if (col == 1)
         {
-          updatePrefs(ftsRestClient
-                  .getAllDefaultDisplayedFTSDataColumns(), ftsDataColumn,
-                  selected);
+          updatePrefs(ftsRestClient.getAllDefaultDisplayedFTSDataColumns(),
+                  ftsDataColumn, selected);
         }
         else if (col == 2)
         {
@@ -320,8 +322,7 @@ public class FTSDataColumnPreferences extends JScrollPane
       }
     }
 
-    private void updatePrefs(
-            Collection<FTSDataColumnI> prefConfig,
+    private void updatePrefs(Collection<FTSDataColumnI> prefConfig,
             FTSDataColumnI dataColumn, boolean selected)
     {
       if (prefConfig.contains(dataColumn) && !selected)