JAL-1667 PDBe Search Interface implementation
[jalview.git] / src / jalview / ws / uimodel / PDBSearchOptionListModel.java
1 package jalview.ws.uimodel;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.swing.DefaultListModel;
7 import javax.swing.JComboBox;
8
9 @SuppressWarnings(
10 { "unchecked", "serial", "rawtypes" })
11 public class PDBSearchOptionListModel extends DefaultListModel implements Comparable
12 {
13   private String name;
14
15   private String code;
16
17   private boolean showInSummary;
18
19   private boolean searchFilter;
20
21   private FieldType type;
22
23   public enum FieldType
24   {
25     INT, STRING, BOOLEAN;
26   };
27
28   public PDBSearchOptionListModel(String name, String code, FieldType type)
29   {
30     this.name = name;
31     this.code = code;
32     this.type = type;
33   }
34
35   public String getName()
36   {
37     return name;
38   }
39
40   public void setName(String name)
41   {
42     this.name = name;
43   }
44
45   public String getCode()
46   {
47     return code;
48   }
49
50   public void setCode(String code)
51   {
52     this.code = code;
53   }
54
55   public boolean isShowInSummary()
56   {
57     return showInSummary;
58   }
59
60   public void setShowInSummary(boolean showInSummary)
61   {
62     this.showInSummary = showInSummary;
63   }
64
65   public boolean isSearchFilter()
66   {
67     return searchFilter;
68   }
69
70   public void setSearchFilter(boolean searchFilter)
71   {
72     this.searchFilter = searchFilter;
73   }
74
75   public FieldType getFieldType()
76   {
77     return type;
78   }
79
80   public void setFieldType(FieldType type)
81   {
82     this.type = type;
83   }
84
85   public String toString()
86   {
87     return name;
88   }
89
90   public PDBSearchOptionListModel()
91   {
92
93   }
94
95   public static void populateCombo(JComboBox searchItems)
96   {
97     List<PDBSearchOptionListModel> searchOptions = new ArrayList<PDBSearchOptionListModel>();
98     searchOptions.add(new PDBSearchOptionListModel("PDB ID", "pdb_id",
99             PDBSearchOptionListModel.FieldType.STRING));
100     searchOptions.add(new PDBSearchOptionListModel("PFAM Name", "pfam_name",
101             PDBSearchOptionListModel.FieldType.STRING));
102     searchOptions.add(new PDBSearchOptionListModel("ALL", "text",
103             PDBSearchOptionListModel.FieldType.STRING));
104     searchOptions.add(new PDBSearchOptionListModel("Molecule Type", "molecule_type",
105             PDBSearchOptionListModel.FieldType.STRING));
106     searchOptions.add(new PDBSearchOptionListModel("Title", "title",
107             PDBSearchOptionListModel.FieldType.STRING));
108     searchOptions.add(new PDBSearchOptionListModel("Molecule Name", "molecule_name",
109             PDBSearchOptionListModel.FieldType.STRING));
110     searchOptions.add(new PDBSearchOptionListModel("Tax ID", "tax_id",
111             PDBSearchOptionListModel.FieldType.STRING));
112     searchOptions.add(new PDBSearchOptionListModel("UniProt Accession",
113             "uniprot_accession", PDBSearchOptionListModel.FieldType.STRING));
114     searchOptions.add(new PDBSearchOptionListModel("Gene Name", "gene_name",
115             PDBSearchOptionListModel.FieldType.STRING));
116     searchOptions.add(new PDBSearchOptionListModel("Genus", "genus",
117             PDBSearchOptionListModel.FieldType.STRING));
118
119     java.util.Collections.sort(searchOptions);
120
121     for (PDBSearchOptionListModel pdbSO : searchOptions)
122     {
123       searchItems.addItem(pdbSO);
124     }
125   }
126
127   @Override
128   public int compareTo(Object o)
129   {
130     return this.name.compareTo(((PDBSearchOptionListModel) o).getName());
131   }
132
133 }