X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=976b77b9c89227e3995c2a4cd095e2802729cfef;hb=7a1a7eea9501cd9e3841e996f4926cf1686be76a;hp=3db26f3865ccb18cd91f485026f8fbfdfe45934f;hpb=c394157681d10261bd6f7883b19eaf88d6784609;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index 3db26f3..976b77b 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -207,8 +207,15 @@ public class StructureChooser extends GStructureChooser public void loadLocalCachedPDBEntries() { - DefaultTableModel tableModel = new DefaultTableModel(); - tableModel.addColumn("Sequence"); + DefaultTableModel tableModel = new DefaultTableModel() + { + @Override + public boolean isCellEditable(int row, int column) + { + return false; + } + }; + tableModel.addColumn("Ref Sequence"); tableModel.addColumn("PDB Id"); tableModel.addColumn("Chain"); tableModel.addColumn("Type"); @@ -224,8 +231,8 @@ public class StructureChooser extends GStructureChooser String chain = pdbEntry.getChainCode() == null ? "_" : pdbEntry .getChainCode(); - String[] pdbEntryRowData = new String[] - { seq.getDisplayId(false), pdbEntry.getId(), + Object[] pdbEntryRowData = new Object[] + { seq, pdbEntry.getId(), chain, pdbEntry.getType(), pdbEntry.getFile() }; @@ -710,14 +717,26 @@ public class StructureChooser extends GStructureChooser int[] selectedRows = tbl_local_pdb.getSelectedRows(); PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length]; int count = 0; + int pdbIdColIndex = tbl_local_pdb.getColumn( + PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex(); + int refSeqColIndex = tbl_local_pdb.getColumn("Ref Sequence") + .getModelIndex(); + ArrayList selectedSeqsToView = new ArrayList(); for (int row : selectedRows) { - String entryKey = tbl_local_pdb.getValueAt(row, 1).toString() + String entryKey = tbl_local_pdb.getValueAt(row, pdbIdColIndex) + .toString() .toLowerCase(); pdbEntriesToView[count++] = cachedEntryMap.get(entryKey); + SequenceI selectedSeq = (SequenceI) tbl_local_pdb.getValueAt(row, + refSeqColIndex); + selectedSeqsToView.add(selectedSeq); + } + SequenceI[] selectedSeqs = selectedSeqsToView + .toArray(new SequenceI[selectedSeqsToView.size()]); launchStructureViewer(ap.getStructureSelectionManager(), - pdbEntriesToView, ap, selectedSequences); + pdbEntriesToView, ap, selectedSeqs); } else if (currentView == VIEWS_ENTER_ID) { @@ -772,8 +791,18 @@ public class StructureChooser extends GStructureChooser StructureViewer sViewer = new StructureViewer(ssm); if (pdbEntriesToView.length > 1) { - sViewer.viewStructures(pdbEntriesToView, alignPanel.av.collateForPDB(pdbEntriesToView), + ArrayList seqsMap = new ArrayList(); + for (SequenceI seq : sequences) + { + seqsMap.add(new SequenceI[] + { seq }); + } + SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]); + sViewer.viewStructures(pdbEntriesToView, collatedSeqs, alignPanel); + // sViewer.viewStructures(pdbEntriesToView, + // alignPanel.av.collateForPDB(pdbEntriesToView), + // alignPanel); } else {