X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fuimodel%2FPDBRestResponse.java;h=2814a461cab4d6263ff5e8068dbd8ee4072605a9;hb=6dd554fdbf34db6b79595d5027159d20225f4894;hp=5a1f53deba07af73a828b404b339366e3d6704e7;hpb=d9cedb863c0d5b665b8cdde3f8791d8a96030c6b;p=jalview.git diff --git a/src/jalview/ws/uimodel/PDBRestResponse.java b/src/jalview/ws/uimodel/PDBRestResponse.java index 5a1f53d..2814a46 100644 --- a/src/jalview/ws/uimodel/PDBRestResponse.java +++ b/src/jalview/ws/uimodel/PDBRestResponse.java @@ -24,10 +24,8 @@ 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 javax.swing.table.DefaultTableModel; import org.json.simple.JSONObject; @@ -77,28 +75,10 @@ public class PDBRestResponse this.searchSummary = searchSummary; } - /** - * Convenience method to obtain a List model for a given summary list - * - * @param summariesList - * the summary list which contains the data for generating the lists - * data - * @return the list model generated for the search summary - */ - public static DefaultListModel getListModel( - Collection summariesList) - { - DefaultListModel defaultListModel = new DefaultListModel(); - for (PDBResponseSummary summaryList : summariesList) - { - defaultListModel.addElement(summaryList); - } - return defaultListModel; - } /** - * Convenience method to obtain a Table model for a given summary List and - * request + * Convenience method to obtain a Table model for a given summary List based + * on the request parameters * * @param request * the PDBRestRequest object which holds useful information for @@ -111,109 +91,76 @@ public class PDBRestResponse public static DefaultTableModel getTableModel(PDBRestRequest request, Collection summariesList) { - DefaultTableModel model = new DefaultTableModel(); - + DefaultTableModel tableModel = new DefaultTableModel() + { + @Override + public boolean isCellEditable(int row, int column) + { + return false; + } + }; if (request.getAssociatedSequence() != null) { - model.addColumn("Sequence"); + tableModel.addColumn("Sequence"); // Create sequence column header if + // exists in the request } for (PDBDocField field : request.getWantedFields()) { - model.addColumn(field.getName()); + tableModel.addColumn(field.getName()); // Create sequence column header if + // exists in the request } for (PDBResponseSummary res : summariesList) { - model.addRow(res.getSummaryData()); + tableModel.addRow(res.getSummaryData()); // Populate table rows with + // summary list } - return model; + + return tableModel; } /** * Model for a unique response summary * - * @author tcnofoegbu - * */ public class PDBResponseSummary { private String pdbId; - private String concatenatedSummaryData; - - private String[] summaryData; + private String[] summaryRowData; private String associatedSequence; - private int width = 480; - - public PDBResponseSummary(JSONObject doc, PDBRestRequest request) + public PDBResponseSummary(JSONObject pdbJsonDoc, PDBRestRequest request) { - StringBuilder summaryBuilder = new StringBuilder(); - List diplayFields = request.getWantedFields(); + Collection diplayFields = request.getWantedFields(); String associatedSeq = request.getAssociatedSequence(); int colCounter = 0; - summaryData = new String[(associatedSeq != null) ? diplayFields + summaryRowData = new String[(associatedSeq != null) ? diplayFields .size() + 1 : diplayFields.size()]; if (associatedSeq != null) { this.associatedSequence = (associatedSeq.length() > 18) ? associatedSeq .substring(0, 18) : associatedSeq; - summaryData[0] = associatedSequence; + summaryRowData[0] = associatedSequence; colCounter = 1; } 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(""); - } - summaryData[colCounter++] = moleculeType; - } - else if (field.equals(PDBDocField.PDB_ID) - && doc.get(PDBDocField.PDB_ID.getCode()) != null) + String fieldData = (pdbJsonDoc.get(field.getCode()) == null) ? "" + : pdbJsonDoc + .get(field.getCode()).toString(); + if (field.equals(PDBDocField.PDB_ID)) { - this.pdbId = doc.get(PDBDocField.PDB_ID.getCode()).toString(); - summaryBuilder.append(this.pdbId).append(" | "); - summaryData[colCounter++] = this.pdbId; + this.pdbId = fieldData; + summaryRowData[colCounter++] = this.pdbId; } - else if (doc.get(field.getCode()) != null) + else { - summaryBuilder.append(field.getName()).append(": ") - .append(doc.get(field.getCode())).append(" | "); - summaryData[colCounter++] = doc.get(field.getCode()).toString(); + summaryRowData[colCounter++] = fieldData; } } - int endIndex = summaryBuilder.lastIndexOf(" | "); - String fSummary = summaryBuilder.toString().substring(0, endIndex); - this.concatenatedSummaryData = fSummary.trim(); - summaryBuilder = null; } public String getPdbId() @@ -226,56 +173,51 @@ public class PDBRestResponse this.pdbId = pdbId; } - public String getConcatenatedSummaryData() - { - return concatenatedSummaryData; - } - - public void setConcatenatedSummaryData(String concatenatedSummaryData) - { - this.concatenatedSummaryData = concatenatedSummaryData; - } - public String[] getSummaryData() { - return summaryData; + return summaryRowData; } public void setSummaryData(String[] summaryData) { - this.summaryData = summaryData; + this.summaryRowData = summaryData; } + /** + * Returns a string representation of this object; + */ + @Override public String toString() { - StringBuilder html = new StringBuilder(); - html.append("
"); - html.append(concatenatedSummaryData); - html.append("
"); - return html.toString(); + StringBuilder summaryFieldValues = new StringBuilder(); + for (String summaryField : summaryRowData) + { + summaryFieldValues.append(summaryField).append("\t"); + } + return summaryFieldValues.toString(); } + /** + * Returns hash code value for this object + */ @Override public int hashCode() { - return Objects.hash(this.pdbId, this.concatenatedSummaryData); + return Objects.hash(this.pdbId, this.toString()); } + /** + * Indicates whether some object is equal to this one + */ @Override - public boolean equals(Object other) + public boolean equals(Object that) { - if (!(other instanceof PDBResponseSummary)) + if (!(that instanceof PDBResponseSummary)) { return false; } - - PDBResponseSummary that = (PDBResponseSummary) other; - - // Custom equality check here. - return this.pdbId.equals(that.pdbId) - && this.concatenatedSummaryData - .equals(that.concatenatedSummaryData); + PDBResponseSummary another = (PDBResponseSummary) that; + return this.toString().equals(another.toString()); } }