X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Ffts%2Fcore%2FFTSDataColumnPreferences.java;h=86b8c7de36b8737f67d77a9f324c8c5cc5d3a774;hb=8a2a0cda7067530f8481c2aec203e18d555f2dfd;hp=eb7455e9b573bbfd953e01dfcce2ce8d703393ec;hpb=7271c53b93e7834da8e86fc0a4d7b7fb57f5a9d7;p=jalview.git diff --git a/src/jalview/fts/core/FTSDataColumnPreferences.java b/src/jalview/fts/core/FTSDataColumnPreferences.java index eb7455e..86b8c7d 100644 --- a/src/jalview/fts/core/FTSDataColumnPreferences.java +++ b/src/jalview/fts/core/FTSDataColumnPreferences.java @@ -23,6 +23,7 @@ package jalview.fts.core; 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; @@ -40,7 +41,13 @@ 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 { @@ -71,7 +78,7 @@ public class FTSDataColumnPreferences extends JScrollPane if (source.equals(PreferenceSource.STRUCTURE_CHOOSER) || source.equals(PreferenceSource.PREFERENCES)) { - structSummaryColumns = ((PDBFTSRestClient) ftsRestClient) + structSummaryColumns = ((StructureFTSRestClientI) ftsRestClient) .getAllDefaultDisplayedStructureDataColumns(); } allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns()); @@ -80,28 +87,14 @@ public class FTSDataColumnPreferences extends JScrollPane 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) { + // jalview.bin.Console.outPrintln("allFTSDataColumns==" + allFTSDataColumns); if (field.getName().equalsIgnoreCase("all")) { continue; @@ -110,19 +103,20 @@ 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() }; + // jalview.bin.Console.outPrintln(" 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: @@ -131,7 +125,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) @@ -147,8 +142,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()); @@ -157,9 +151,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 @@ -169,7 +161,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); @@ -189,7 +182,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; @@ -301,9 +295,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) { @@ -313,9 +306,8 @@ public class FTSDataColumnPreferences extends JScrollPane { if (col == 1) { - updatePrefs(ftsRestClient - .getAllDefaultDisplayedFTSDataColumns(), ftsDataColumn, - selected); + updatePrefs(ftsRestClient.getAllDefaultDisplayedFTSDataColumns(), + ftsDataColumn, selected); } else if (col == 2) { @@ -324,8 +316,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)