JAL-1667 PDBe Search Interface implementation
[jalview.git] / src / jalview / ws / uimodel / PDBSearchOptionListModel.java
diff --git a/src/jalview/ws/uimodel/PDBSearchOptionListModel.java b/src/jalview/ws/uimodel/PDBSearchOptionListModel.java
new file mode 100644 (file)
index 0000000..093f038
--- /dev/null
@@ -0,0 +1,133 @@
+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());
+  }
+
+}