X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fuimodel%2FPDBSearchResponse.java;h=9a6e1c6c3363fbc8ecf19f4afe3cbe89178e77ea;hb=e4a49e444d89dc2d8d35913813bddc3a0dabcad6;hp=9f441029572652b84b72c6376dd89809010a7ee1;hpb=7d76e402efd4e04e179bc9bb264551bc2d3df936;p=jalview.git diff --git a/src/jalview/ws/uimodel/PDBSearchResponse.java b/src/jalview/ws/uimodel/PDBSearchResponse.java index 9f44102..9a6e1c6 100644 --- a/src/jalview/ws/uimodel/PDBSearchResponse.java +++ b/src/jalview/ws/uimodel/PDBSearchResponse.java @@ -1,16 +1,22 @@ 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; + private Collection searchSummary; public int getItemsFound() { @@ -32,25 +38,124 @@ public class PDBSearchResponse this.responseTime = responseTime; } - public Collection getSearchSummary() + public Collection getSearchSummary() { return searchSummary; } - public void setSearchSummary(Collection searchSummary) + public void setSearchSummary(Collection searchSummary) { this.searchSummary = searchSummary; } - public static DefaultListModel getListModel( - Collection summariesList) + public static DefaultListModel getListModel( + Collection summariesList) { - DefaultListModel defaultListModel = new DefaultListModel(); - for (PDBSummaryListModel summaryList : 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); + } + } + }