JAL-1696 disabled editing of PDB Id field from settings bug/Jal-1696_disable-pdb_id-field-settings
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 14 Apr 2015 13:26:29 +0000 (14:26 +0100)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Tue, 14 Apr 2015 13:26:29 +0000 (14:26 +0100)
src/jalview/jbgui/PDBDocFieldPreferences.java

index 2021d0b..a880c25 100644 (file)
@@ -171,10 +171,32 @@ public class PDBDocFieldPreferences extends JScrollPane
     {
       // Note that the data/cell address is constant,
       // no matter where the cell appears onscreen.
-      return col == 1 || col == 2;
+      // !isPDBID(row, col) ensures the PDB_Id cell is never editable as it
+      // serves as a unique id for each row.
+      return (col == 1 || col == 2) && !isPDBID(row, col);
 
     }
 
+    /**
+     * Determines whether the data in a given cell is a PDB ID.
+     * 
+     * @param row
+     * @param col
+     * @return
+     */
+
+    public boolean isPDBID(int row, int col)
+    {
+      boolean matched = false;
+      String name = getValueAt(row, 0).toString();
+      PDBDocField pdbField = map.get(name);
+      if (pdbField == PDBDocField.PDB_ID)
+      {
+        matched = true;
+      }
+      return matched;
+    }
+
     /*
      * Don't need to implement this method unless your table's data can change.
      */