* along with Jalview. If not, see <http://www.gnu.org/licenses/>.
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
-package jalview.jbgui;
+package jalview.fts.core;
-import jalview.ws.dbsources.PDBRestClient.PDBDocField;
-import jalview.ws.dbsources.PDBRestClient.PDBDocField.Group;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
+import jalview.fts.api.FTSRestClientI;
import java.util.ArrayList;
import java.util.Collection;
@SuppressWarnings("serial")
-public class PDBDocFieldPreferences extends JScrollPane
+public class FTSDataColumnPreferences extends JScrollPane
{
- protected JTable tbl_pdbDocFieldConfig = new JTable();
+ protected JTable tbl_FTSDataColumnPrefs = new JTable();
protected JScrollPane scrl_pdbDocFieldConfig = new JScrollPane(
- tbl_pdbDocFieldConfig);
+ tbl_FTSDataColumnPrefs);
- private HashMap<String, PDBDocField> map = new HashMap<String, PDBDocField>();
+ private HashMap<String, FTSDataColumnI> map = new HashMap<String, FTSDataColumnI>();
- private static Collection<PDBDocField> searchSummaryFields = new LinkedHashSet<PDBDocField>();
+ private Collection<FTSDataColumnI> structSummaryColumns = new LinkedHashSet<FTSDataColumnI>();
- private static Collection<PDBDocField> structureSummaryFields = new LinkedHashSet<PDBDocField>();
+ private Collection<FTSDataColumnI> allFTSDataColumns = new LinkedHashSet<FTSDataColumnI>();
public enum PreferenceSource
{
private PreferenceSource currentSource;
- static
- {
- searchSummaryFields.add(PDBDocField.PDB_ID);
- searchSummaryFields.add(PDBDocField.TITLE);
- searchSummaryFields.add(PDBDocField.RESOLUTION);
-
- structureSummaryFields.add(PDBDocField.PDB_ID);
- structureSummaryFields.add(PDBDocField.TITLE);
- structureSummaryFields.add(PDBDocField.RESOLUTION);
- }
+ private FTSRestClientI ftsRestClient;
- public PDBDocFieldPreferences(PreferenceSource source)
+ public FTSDataColumnPreferences(PreferenceSource source,
+ FTSRestClientI ftsRestClient)
{
- tbl_pdbDocFieldConfig.setAutoCreateRowSorter(true);
+ this.ftsRestClient = ftsRestClient;
+ Collection<FTSDataColumnI> defaultCols = ftsRestClient
+ .getAllDefaulDisplayedDataColumns();
+ structSummaryColumns.addAll(defaultCols);
+ allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns());
- this.getViewport().add(tbl_pdbDocFieldConfig);
+ tbl_FTSDataColumnPrefs.setAutoCreateRowSorter(true);
+ this.getViewport().add(tbl_FTSDataColumnPrefs);
this.currentSource = source;
String[] columnNames = null;
break;
}
- Object[][] data = new Object[PDBDocField.values().length - 1][3];
+ Object[][] data = new Object[allFTSDataColumns.size() - 1][3];
+
int x = 0;
- for (PDBDocField field : PDBDocField.values())
+ for (FTSDataColumnI field : allFTSDataColumns)
{
if (field.getName().equalsIgnoreCase("all"))
{
switch (source)
{
case SEARCH_SUMMARY:
- data[x++] = new Object[] { searchSummaryFields.contains(field),
+ data[x++] = new Object[] {
+ ftsRestClient.getAllDefaulDisplayedDataColumns()
+ .contains(field),
field.getName(), field.getGroup() };
break;
case STRUCTURE_CHOOSER:
- data[x++] = new Object[] { structureSummaryFields.contains(field),
+ data[x++] = new Object[] { structSummaryColumns.contains(field),
field.getName(), field.getGroup() };
break;
case PREFERENCES:
data[x++] = new Object[] { field.getName(),
- searchSummaryFields.contains(field),
- structureSummaryFields.contains(field) };
+ ftsRestClient.getAllDefaulDisplayedDataColumns()
+ .contains(field),
+ structSummaryColumns.contains(field) };
break;
default:
break;
map.put(field.getName(), field);
}
- PDBFieldTableModel model = new PDBFieldTableModel(columnNames, data);
- tbl_pdbDocFieldConfig.setModel(model);
+ FTSDataColumnPrefsTableModel model = new FTSDataColumnPrefsTableModel(columnNames, data);
+ tbl_FTSDataColumnPrefs.setModel(model);
switch (source)
{
case SEARCH_SUMMARY:
case STRUCTURE_CHOOSER:
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(0)
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(0)
.setPreferredWidth(30);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(0).setMinWidth(20);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(0).setMaxWidth(40);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(1)
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(0).setMinWidth(20);
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(0).setMaxWidth(40);
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(1)
.setPreferredWidth(150);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(1).setMinWidth(150);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(2)
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(1).setMinWidth(150);
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(2)
.setPreferredWidth(150);
- tbl_pdbDocFieldConfig.getColumnModel().getColumn(2)
+ tbl_FTSDataColumnPrefs.getColumnModel().getColumn(2)
.setMinWidth(150);
TableRowSorter<TableModel> sorter = new TableRowSorter<>(
- tbl_pdbDocFieldConfig.getModel());
- tbl_pdbDocFieldConfig.setRowSorter(sorter);
+ tbl_FTSDataColumnPrefs.getModel());
+ tbl_FTSDataColumnPrefs.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<>();
int columnIndexToSort = 2;
sortKeys.add(new RowSorter.SortKey(columnIndexToSort,
sorter.setSortKeys(sortKeys);
sorter.setComparator(
columnIndexToSort,
- new Comparator<jalview.ws.dbsources.PDBRestClient.PDBDocField.Group>()
+ new Comparator<FTSDataColumnGroupI>()
{
@Override
- public int compare(Group o1, Group o2)
+ public int compare(FTSDataColumnGroupI o1,
+ FTSDataColumnGroupI o2)
{
return o1.getSortOrder() - o2.getSortOrder();
}
});
sorter.sort();
- tbl_pdbDocFieldConfig
+ tbl_FTSDataColumnPrefs
.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
break;
case PREFERENCES:
}
- public static Collection<PDBDocField> getSearchSummaryFields()
+ public Collection<FTSDataColumnI> getStructureSummaryFields()
{
- return searchSummaryFields;
+ return structSummaryColumns;
}
- public static void setSearchSummaryFields(
- Collection<PDBDocField> searchSummaryFields)
+ class FTSDataColumnPrefsTableModel extends AbstractTableModel
{
- PDBDocFieldPreferences.searchSummaryFields = searchSummaryFields;
- }
-
- public static Collection<PDBDocField> getStructureSummaryFields()
- {
- return structureSummaryFields;
- }
- public static void setStructureSummaryFields(
- Collection<PDBDocField> structureSummaryFields)
- {
- PDBDocFieldPreferences.structureSummaryFields = structureSummaryFields;
- }
-
- class PDBFieldTableModel extends AbstractTableModel
- {
-
- public PDBFieldTableModel(String[] columnNames, Object[][] data)
+ public FTSDataColumnPrefsTableModel(String[] columnNames, Object[][] data)
{
this.data = data;
this.columnNames = columnNames;
{
case SEARCH_SUMMARY:
case STRUCTURE_CHOOSER:
- return (col == 0) && !isPDBID(row, 1);
+ return (col == 0) && !isPrimaryKeyCell(row, 1);
case PREFERENCES:
- return (col == 1 || col == 2) && !isPDBID(row, 0);
+ return (col == 1 || col == 2) && !isPrimaryKeyCell(row, 0);
default:
return false;
}
* @return
*/
- public boolean isPDBID(int row, int col)
+ public boolean isPrimaryKeyCell(int row, int col)
{
- boolean matched = false;
String name = getValueAt(row, col).toString();
- PDBDocField pdbField = map.get(name);
- if (pdbField == PDBDocField.PDB_ID)
- {
- matched = true;
- }
- return matched;
+ FTSDataColumnI pdbField = map.get(name);
+ return pdbField.isPrimaryKeyColumn();
}
/*
}
boolean selected = ((Boolean) value).booleanValue();
- PDBDocField pdbField = map.get(name);
+ FTSDataColumnI ftsDataColumn = map.get(name);
if (currentSource == PreferenceSource.SEARCH_SUMMARY)
{
- updatePrefs(searchSummaryFields, pdbField, selected);
+ updatePrefs(ftsRestClient
+ .getAllDefaulDisplayedDataColumns(), ftsDataColumn,
+ selected);
}
else if (currentSource == PreferenceSource.STRUCTURE_CHOOSER)
{
- updatePrefs(structureSummaryFields, pdbField, selected);
+ updatePrefs(structSummaryColumns, ftsDataColumn, selected);
}
else if (currentSource == PreferenceSource.PREFERENCES)
{
if (col == 1)
{
- updatePrefs(searchSummaryFields, pdbField, selected);
+ updatePrefs(ftsRestClient
+ .getAllDefaulDisplayedDataColumns(), ftsDataColumn,
+ selected);
}
else if (col == 2)
{
- updatePrefs(structureSummaryFields, pdbField, selected);
+ updatePrefs(structSummaryColumns, ftsDataColumn, selected);
}
}
}
- private void updatePrefs(Collection<PDBDocField> prefConfig,
- PDBDocField pdbField, boolean selected)
+ private void updatePrefs(
+ Collection<FTSDataColumnI> prefConfig,
+ FTSDataColumnI dataColumn, boolean selected)
{
- if (prefConfig.contains(pdbField) && !selected)
+ if (prefConfig.contains(dataColumn) && !selected)
{
- prefConfig.remove(pdbField);
+ prefConfig.remove(dataColumn);
}
- if (!prefConfig.contains(pdbField) && selected)
+ if (!prefConfig.contains(dataColumn) && selected)
{
- prefConfig.add(pdbField);
+ prefConfig.add(dataColumn);
}
}