3 import jalview.jbgui.GPDBFetchPanel;
4 import jalview.ws.dbsources.PDBRestClient;
5 import jalview.ws.uimodel.PDBSearchRequest;
6 import jalview.ws.uimodel.PDBSearchResponse;
7 import jalview.ws.uimodel.PDBSummaryListModel;
8 import jalview.ws.uimodel.PDBSummaryListModel.PDBDocField;
10 import java.util.ArrayList;
11 import java.util.List;
13 import javax.swing.DefaultListModel;
14 import javax.swing.SwingUtilities;
16 @SuppressWarnings("serial")
17 public class PDBFetchPanel extends GPDBFetchPanel
19 private SequenceFetcher seqFetcher;
26 public PDBFetchPanel()
30 public PDBFetchPanel(SequenceFetcher seqFetcher)
33 this.seqFetcher = seqFetcher;
36 public static void main(String[] args)
38 SwingUtilities.invokeLater(new Runnable()
48 public void searchStringAction()
50 boolean allowEmptySequence = false;
51 jListSearchResult.setModel(new DefaultListModel<PDBSummaryListModel>());
52 mainFrame.setTitle("PDB Sequence Fetcher");
53 if (search.getText().trim().length() > 0)
55 long startTime = System.currentTimeMillis();
56 PDBRestClient pdbRestCleint = new PDBRestClient();
57 String searchTarget = ((PDBSearchOptionList) searchTargetOptions
58 .getSelectedItem()).getCode();
60 PDBSearchRequest request = new PDBSearchRequest();
61 request.setAllowEmptySeq(allowEmptySequence);
62 request.setResponseSize(100);
63 request.setSearchTarget(searchTarget + ":");
64 request.setSearchTerm(search.getText());
65 List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
66 wantedFields.add(PDBDocField.MOLECULE_TYPE);
67 wantedFields.add(PDBDocField.PDB_ID);
68 wantedFields.add(PDBDocField.GENUS);
69 wantedFields.add(PDBDocField.GENE_NAME);
70 wantedFields.add(PDBDocField.TITLE);
71 request.setWantedFields(wantedFields);
73 PDBSearchResponse resultList = pdbRestCleint.executeRequest(request);
75 if (resultList.getSearchSummary() != null)
77 jListSearchResult.setModel(PDBSearchResponse
78 .getListModel(resultList.getSearchSummary()));
80 long endTime = System.currentTimeMillis();
81 mainFrame.setTitle("PDB Sequence Fetcher - "
82 + resultList.getItemsFound() + " results ("
83 + (endTime - startTime) + " milli secs)");
89 public void okActionPerformed()
91 processPDBResponseData();
96 public void backActionPerformed()
98 System.out.println("back! pressed!");
102 public void cancelActionPerformed()
107 private void processPDBResponseData()
110 StringBuilder selectedIds = new StringBuilder();
111 for (PDBSummaryListModel dataSelected : jListSearchResult
112 .getSelectedValuesList())
114 selectedIds.append(";").append(dataSelected.getPdbId());
116 String ids = selectedIds.deleteCharAt(0).toString();
117 seqFetcher.textArea.setText(ids);
118 Thread worker = new Thread(seqFetcher);
122 @SuppressWarnings("unchecked")
123 public void populateSearchOptionCombo()
126 List<PDBSearchOptionList> searchOptions = new ArrayList<PDBSearchOptionList>();
127 searchOptions.add(new PDBSearchOptionList("PDB ID", "pdb_id",
129 searchOptions.add(new PDBSearchOptionList("PFAM Name", "pfam_name",
131 searchOptions.add(new PDBSearchOptionList("ALL", "text",
133 searchOptions.add(new PDBSearchOptionList("Molecule Type",
134 "molecule_type", FieldType.STRING));
135 searchOptions.add(new PDBSearchOptionList("Title", "title",
137 searchOptions.add(new PDBSearchOptionList("Molecule Name",
138 "molecule_name", FieldType.STRING));
139 searchOptions.add(new PDBSearchOptionList("Tax ID", "tax_id",
141 searchOptions.add(new PDBSearchOptionList("UniProt Accession",
142 "uniprot_accession", FieldType.STRING));
143 searchOptions.add(new PDBSearchOptionList("Gene Name", "gene_name",
145 searchOptions.add(new PDBSearchOptionList("Genus", "genus",
148 java.util.Collections.sort(searchOptions);
150 for (PDBSearchOptionList pdbSO : searchOptions)
152 searchTargetOptions.addItem(pdbSO);
156 @SuppressWarnings("rawtypes")
157 public class PDBSearchOptionList implements Comparable
163 private boolean showInSummary;
165 private boolean searchFilter;
167 private FieldType type;
169 public PDBSearchOptionList(String name, String code, FieldType type)
176 public String getName()
181 public void setName(String name)
186 public String getCode()
191 public void setCode(String code)
196 public boolean isShowInSummary()
198 return showInSummary;
201 public void setShowInSummary(boolean showInSummary)
203 this.showInSummary = showInSummary;
206 public boolean isSearchFilter()
211 public void setSearchFilter(boolean searchFilter)
213 this.searchFilter = searchFilter;
216 public FieldType getFieldType()
221 public void setFieldType(FieldType type)
226 public String toString()
231 public PDBSearchOptionList()
237 public int compareTo(Object o)
239 return this.name.compareTo(((PDBSearchOptionList) o).getName());