+package jalview.ws.uimodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.DefaultListModel;
+import javax.swing.JComboBox;
+
+@SuppressWarnings(
+{ "unchecked", "serial", "rawtypes" })
+public class PDBSearchOptionListModel extends DefaultListModel implements Comparable
+{
+ private String name;
+
+ private String code;
+
+ private boolean showInSummary;
+
+ private boolean searchFilter;
+
+ private FieldType type;
+
+ public enum FieldType
+ {
+ INT, STRING, BOOLEAN;
+ };
+
+ public PDBSearchOptionListModel(String name, String code, FieldType type)
+ {
+ this.name = name;
+ this.code = code;
+ this.type = type;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getCode()
+ {
+ return code;
+ }
+
+ public void setCode(String code)
+ {
+ this.code = code;
+ }
+
+ public boolean isShowInSummary()
+ {
+ return showInSummary;
+ }
+
+ public void setShowInSummary(boolean showInSummary)
+ {
+ this.showInSummary = showInSummary;
+ }
+
+ public boolean isSearchFilter()
+ {
+ return searchFilter;
+ }
+
+ public void setSearchFilter(boolean searchFilter)
+ {
+ this.searchFilter = searchFilter;
+ }
+
+ public FieldType getFieldType()
+ {
+ return type;
+ }
+
+ public void setFieldType(FieldType type)
+ {
+ this.type = type;
+ }
+
+ public String toString()
+ {
+ return name;
+ }
+
+ public PDBSearchOptionListModel()
+ {
+
+ }
+
+ public static void populateCombo(JComboBox searchItems)
+ {
+ List<PDBSearchOptionListModel> searchOptions = new ArrayList<PDBSearchOptionListModel>();
+ searchOptions.add(new PDBSearchOptionListModel("PDB ID", "pdb_id",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("PFAM Name", "pfam_name",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("ALL", "text",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Molecule Type", "molecule_type",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Title", "title",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Molecule Name", "molecule_name",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Tax ID", "tax_id",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("UniProt Accession",
+ "uniprot_accession", PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Gene Name", "gene_name",
+ PDBSearchOptionListModel.FieldType.STRING));
+ searchOptions.add(new PDBSearchOptionListModel("Genus", "genus",
+ PDBSearchOptionListModel.FieldType.STRING));
+
+ java.util.Collections.sort(searchOptions);
+
+ for (PDBSearchOptionListModel pdbSO : searchOptions)
+ {
+ searchItems.addItem(pdbSO);
+ }
+ }
+
+ @Override
+ public int compareTo(Object o)
+ {
+ return this.name.compareTo(((PDBSearchOptionListModel) o).getName());
+ }
+
+}