X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Ffts%2Fcore%2FFTSDataColumnPreferences.java;h=0335d6505e3ba0c64d2980b9e923c85c576585a4;hb=aa96618cbd41b40e2377f3f1f105aea90a5a86e0;hp=1828610a03c9a68dbcb715ae8ea5f5c59909129b;hpb=64dd25185d2caf389946bb7e70053183d5aa31a6;p=jalview.git diff --git a/src/jalview/fts/core/FTSDataColumnPreferences.java b/src/jalview/fts/core/FTSDataColumnPreferences.java index 1828610..0335d65 100644 --- a/src/jalview/fts/core/FTSDataColumnPreferences.java +++ b/src/jalview/fts/core/FTSDataColumnPreferences.java @@ -20,9 +20,11 @@ */ package jalview.fts.core; -import jalview.fts.api.FTSDataColumnGroupI; import jalview.fts.api.FTSDataColumnI; +import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI; import jalview.fts.api.FTSRestClientI; +import jalview.fts.api.StructureFTSRestClientI; +import jalview.fts.service.pdb.PDBFTSRestClient; import java.util.ArrayList; import java.util.Collection; @@ -38,8 +40,13 @@ import javax.swing.SortOrder; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; - - +/** + * Helps render GUI allowing control of which columns to show for entries returned from an FTS query. + * TODO: push down FTSClient specific code + * + * @author tcofoegbu + * + */ @SuppressWarnings("serial") public class FTSDataColumnPreferences extends JScrollPane { @@ -50,7 +57,7 @@ public class FTSDataColumnPreferences extends JScrollPane private HashMap map = new HashMap(); - private static Collection structSummaryColumns = new LinkedHashSet(); + private Collection structSummaryColumns = new LinkedHashSet(); private Collection allFTSDataColumns = new LinkedHashSet(); @@ -67,39 +74,26 @@ public class FTSDataColumnPreferences extends JScrollPane FTSRestClientI ftsRestClient) { this.ftsRestClient = ftsRestClient; - Collection defaultCols = ftsRestClient - .getAllDefaulDisplayedDataColumns(); - - structSummaryColumns.addAll(defaultCols); - + if (source.equals(PreferenceSource.STRUCTURE_CHOOSER) + || source.equals(PreferenceSource.PREFERENCES)) + { + structSummaryColumns = ((StructureFTSRestClientI) ftsRestClient) + .getAllDefaultDisplayedStructureDataColumns(); + } allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns()); tbl_FTSDataColumnPrefs.setAutoCreateRowSorter(true); this.getViewport().add(tbl_FTSDataColumnPrefs); this.currentSource = source; - String[] columnNames = null; - switch (source) - { - case SEARCH_SUMMARY: - columnNames = new String[] { "", "Display", "Group" }; - break; - case STRUCTURE_CHOOSER: - columnNames = new String[] { "", "Display", "Group" }; - break; - case PREFERENCES: - columnNames = new String[] { "PDB Field", "Show in search summary", - "Show in structure summary" }; - break; - default: - break; - } + String[] columnNames = ftsRestClient.getPreferencesColumnsFor(source); - 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; @@ -108,19 +102,19 @@ public class FTSDataColumnPreferences extends JScrollPane switch (source) { case SEARCH_SUMMARY: - data[x++] = new Object[] { - ftsRestClient.getAllDefaulDisplayedDataColumns() - .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.getAllDefaulDisplayedDataColumns() - .contains(field), + data[x++] = new Object[] { + field.getName(), ftsRestClient + .getAllDefaultDisplayedFTSDataColumns().contains(field), structSummaryColumns.contains(field) }; break; default: @@ -129,7 +123,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) @@ -145,8 +140,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 sorter = new TableRowSorter<>( tbl_FTSDataColumnPrefs.getModel()); @@ -155,9 +149,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() { @Override @@ -167,7 +159,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); @@ -179,21 +172,16 @@ public class FTSDataColumnPreferences extends JScrollPane } - public static Collection getStructureSummaryFields() + public Collection getStructureSummaryFields() { return structSummaryColumns; } - public static void setStructureSummaryFields( - Collection structureSummaryFields) - { - FTSDataColumnPreferences.structSummaryColumns = structureSummaryFields; - } - class FTSDataColumnPrefsTableModel extends AbstractTableModel { - public FTSDataColumnPrefsTableModel(String[] columnNames, Object[][] data) + public FTSDataColumnPrefsTableModel(String[] columnNames, + Object[][] data) { this.data = data; this.columnNames = columnNames; @@ -305,9 +293,8 @@ public class FTSDataColumnPreferences extends JScrollPane if (currentSource == PreferenceSource.SEARCH_SUMMARY) { - updatePrefs(ftsRestClient - .getAllDefaulDisplayedDataColumns(), ftsDataColumn, - selected); + updatePrefs(ftsRestClient.getAllDefaultDisplayedFTSDataColumns(), + ftsDataColumn, selected); } else if (currentSource == PreferenceSource.STRUCTURE_CHOOSER) { @@ -317,9 +304,8 @@ public class FTSDataColumnPreferences extends JScrollPane { if (col == 1) { - updatePrefs(ftsRestClient - .getAllDefaulDisplayedDataColumns(), ftsDataColumn, - selected); + updatePrefs(ftsRestClient.getAllDefaultDisplayedFTSDataColumns(), + ftsDataColumn, selected); } else if (col == 2) { @@ -328,8 +314,7 @@ public class FTSDataColumnPreferences extends JScrollPane } } - private void updatePrefs( - Collection prefConfig, + private void updatePrefs(Collection prefConfig, FTSDataColumnI dataColumn, boolean selected) { if (prefConfig.contains(dataColumn) && !selected)