JAL-2024 code to enforce case insensitivity for manual pdb structure querying
[jalview.git] / src / jalview / ws / uimodel / PDBRestResponse.java
index 7f570a4..bbd5e84 100644 (file)
@@ -21,6 +21,7 @@
 
 package jalview.ws.uimodel;
 
+import jalview.datamodel.SequenceI;
 import jalview.ws.dbsources.PDBRestClient.PDBDocField;
 
 import java.util.Collection;
@@ -75,7 +76,6 @@ public class PDBRestResponse
     this.searchSummary = searchSummary;
   }
 
-
   /**
    * Convenience method to obtain a Table model for a given summary List based
    * on the request parameters
@@ -91,12 +91,18 @@ public class PDBRestResponse
   public static DefaultTableModel getTableModel(PDBRestRequest request,
           Collection<PDBResponseSummary> summariesList)
   {
-    DefaultTableModel tableModel = new DefaultTableModel();
-
+    DefaultTableModel tableModel = new DefaultTableModel()
+    {
+      @Override
+      public boolean isCellEditable(int row, int column)
+      {
+        return false;
+      }
+    };
     if (request.getAssociatedSequence() != null)
     {
-      tableModel.addColumn("Sequence"); // Create sequence column header if
-                                        // exists in the request
+      tableModel.addColumn("Ref Sequence"); // Create sequence column header if
+      // exists in the request
     }
     for (PDBDocField field : request.getWantedFields())
     {
@@ -109,6 +115,7 @@ public class PDBRestResponse
       tableModel.addRow(res.getSummaryData()); // Populate table rows with
                                                // summary list
     }
+
     return tableModel;
   }
 
@@ -120,21 +127,20 @@ public class PDBRestResponse
   {
     private String pdbId;
 
-    private String[] summaryRowData;
+    private Object[] summaryRowData;
 
-    private String associatedSequence;
+    private SequenceI associatedSequence;
 
     public PDBResponseSummary(JSONObject pdbJsonDoc, PDBRestRequest request)
     {
       Collection<PDBDocField> diplayFields = request.getWantedFields();
-      String associatedSeq = request.getAssociatedSequence();
+      SequenceI associatedSeq = request.getAssociatedSequence();
       int colCounter = 0;
-      summaryRowData = new String[(associatedSeq != null) ? diplayFields
+      summaryRowData = new Object[(associatedSeq != null) ? diplayFields
               .size() + 1 : diplayFields.size()];
       if (associatedSeq != null)
       {
-        this.associatedSequence = (associatedSeq.length() > 18) ? associatedSeq
-                .substring(0, 18) : associatedSeq;
+        this.associatedSequence = associatedSeq;
         summaryRowData[0] = associatedSequence;
         colCounter = 1;
       }
@@ -142,10 +148,8 @@ public class PDBRestResponse
       for (PDBDocField field : diplayFields)
       {
         String fieldData = (pdbJsonDoc.get(field.getCode()) == null) ? ""
-                : pdbJsonDoc
-                .get(field.getCode()).toString();
-        if (field.equals(PDBDocField.PDB_ID)
-                && pdbJsonDoc.get(PDBDocField.PDB_ID.getCode()) != null)
+                : pdbJsonDoc.get(field.getCode()).toString();
+        if (field.equals(PDBDocField.PDB_ID))
         {
           this.pdbId = fieldData;
           summaryRowData[colCounter++] = this.pdbId;
@@ -167,7 +171,7 @@ public class PDBRestResponse
       this.pdbId = pdbId;
     }
 
-    public String[] getSummaryData()
+    public Object[] getSummaryData()
     {
       return summaryRowData;
     }
@@ -184,9 +188,9 @@ public class PDBRestResponse
     public String toString()
     {
       StringBuilder summaryFieldValues = new StringBuilder();
-      for (String summaryField : summaryRowData)
+      for (Object summaryField : summaryRowData)
       {
-        summaryFieldValues.append(summaryField).append("\t");
+        summaryFieldValues.append(summaryField.toString()).append("\t");
       }
       return summaryFieldValues.toString();
     }
@@ -217,4 +221,3 @@ public class PDBRestResponse
   }
 
 }
-