package jalview.ws.uimodel; import jalview.ws.dbsources.PDBRestClient.PDBDocField; import java.util.Collection; import java.util.List; import java.util.Objects; import javax.swing.DefaultListModel; import org.json.simple.JSONObject; public class PDBSearchResponse { private int itemsFound; private String responseTime; private Collection searchSummary; public int getItemsFound() { return itemsFound; } public void setItemsFound(int itemFound) { this.itemsFound = itemFound; } public String getResponseTime() { return responseTime; } public void setResponseTime(String responseTime) { this.responseTime = responseTime; } public Collection getSearchSummary() { return searchSummary; } public void setSearchSummary(Collection searchSummary) { this.searchSummary = searchSummary; } public static DefaultListModel getListModel( Collection summariesList) { DefaultListModel defaultListModel = new DefaultListModel(); for (PDBResponseSummary summaryList : summariesList) { defaultListModel.addElement(summaryList); } return defaultListModel; } public class PDBResponseSummary { private String pdbId; private String summary; private int width = 480; public PDBResponseSummary(JSONObject doc, List diplayFields) { StringBuilder summaryBuilder = new StringBuilder(); for (PDBDocField field : diplayFields) { if (field.equals(PDBDocField.MOLECULE_TYPE) && doc.get(PDBDocField.MOLECULE_TYPE.getCode()) != null) { String moleculeType = doc .get(PDBDocField.MOLECULE_TYPE.getCode()).toString(); if (moleculeType.equalsIgnoreCase("protein")) { summaryBuilder.append(""); } if (moleculeType.equalsIgnoreCase("dna")) { summaryBuilder.append(""); } if (moleculeType.equalsIgnoreCase("rna")) { summaryBuilder.append(""); } if (moleculeType.equalsIgnoreCase("sugar")) { summaryBuilder.append(""); } } else if (field.equals(PDBDocField.PDB_ID) && doc.get(PDBDocField.PDB_ID.getCode()) != null) { this.pdbId = doc.get(PDBDocField.PDB_ID.getCode()).toString(); } else if (doc.get(field.getCode()) != null) { summaryBuilder.append(field.getName()).append(": ") .append(doc.get(field.getCode())).append(" | "); } } int endIndex = summaryBuilder.lastIndexOf(" | "); String fSummary = summaryBuilder.toString().substring(0, endIndex); this.summary = fSummary.trim(); summaryBuilder = null; } public String getPdbId() { return pdbId; } public void setPdbId(String pdbId) { this.pdbId = pdbId; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String toString() { StringBuilder html = new StringBuilder(); html.append("
"); html.append(summary); html.append("
"); return html.toString(); } @Override public int hashCode() { return Objects.hash(this.pdbId, this.summary); } } }