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 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
{
if (source.equals(PreferenceSource.STRUCTURE_CHOOSER)
|| source.equals(PreferenceSource.PREFERENCES))
{
- structSummaryColumns = ((PDBFTSRestClient) ftsRestClient)
+ structSummaryColumns = ((StructureFTSRestClientI) ftsRestClient)
.getAllDefaultDisplayedStructureDataColumns();
}
allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns());
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;
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),
int columnIndexToSort = 2;
sortKeys.add(new RowSorter.SortKey(columnIndexToSort,
SortOrder.ASCENDING));
- sorter.setSortKeys(sortKeys);
sorter.setComparator(columnIndexToSort,
new Comparator<FTSDataColumnGroupI>()
{
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);