import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
-
/**
* Provides the behaviors for the Structure chooser Panel
*
pdbRequest.setFieldToSearchBy("(text:");
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setSearchTerm(buildQuery(seq) + ")");
- pdbRequest.setAssociatedSequence(seq.getName());
+ pdbRequest.setAssociatedSequence(seq);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try
resultList = pdbRestCleint.executeRequest(pdbRequest);
} catch (Exception e)
{
+ e.printStackTrace();
errors.add(e.getMessage());
continue;
}
}
else
{
- mainFrame
-.setTitle("Structure Chooser - Manual association");
+ mainFrame.setTitle("Structure Chooser - Manual association");
if (errors.size() > 0)
{
StringBuilder errorMsg = new StringBuilder();
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");
String chain = pdbEntry.getChainCode() == null ? "_" : pdbEntry
.getChainCode();
- String[] pdbEntryRowData = new String[]
- { seq.getDisplayId(false), pdbEntry.getId(),
- chain,
- pdbEntry.getType(),
+ Object[] pdbEntryRowData = new Object[]
+ { seq, pdbEntry.getId(), chain, pdbEntry.getType(),
pdbEntry.getFile() };
if (pdbEntry.getFile() != null)
{
tableModel.addRow(pdbEntryRowData);
}
- cachedEntryMap.put(pdbEntry.getId().toLowerCase(),
- pdbEntry);
+ cachedEntryMap.put(pdbEntry.getId().toLowerCase(), pdbEntry);
}
}
}
*/
public static boolean isValidSeqName(String seqName)
{
- System.out.println("seqName : " + seqName);
+ // System.out.println("seqName : " + seqName);
String ignoreList = "pdb,uniprot,swiss-prot";
if (seqName.length() < 3)
{
!chk_invertFilter.isSelected());
pdbRequest.setSearchTerm(buildQuery(seq) + ")");
pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setAssociatedSequence(seq.getName());
+ pdbRequest.setAssociatedSequence(seq);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try
resultList = pdbRestCleint.executeRequest(pdbRequest);
} catch (Exception e)
{
+ e.printStackTrace();
errors.add(e.getMessage());
continue;
}
filterThread.start();
}
-
/**
* Handles action event for btn_pdbFromFile
*/
.getCmb_assSeq().getSelectedItem();
lbl_fromFileStatus.setIcon(errorImage);
if (selectedSequences.length == 1
- || (assSeqOpt != null
- && !assSeqOpt.getName().equalsIgnoreCase(
+ || (assSeqOpt != null && !assSeqOpt.getName().equalsIgnoreCase(
"-Select Associated Seq-")))
{
btn_pdbFromFile.setEnabled(true);
String currentView = selectedFilterOpt.getView();
if (currentView == VIEWS_FILTER)
{
- int pdbIdCol = PDBRestClient.getPDBIdColumIndex(
- lastPdbRequest.getWantedFields(), true);
+ int pdbIdColIndex = tbl_summary.getColumn(
+ PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex();
+ int refSeqColIndex = tbl_summary.getColumn("Ref Sequence")
+ .getModelIndex();
int[] selectedRows = tbl_summary.getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
int count = 0;
+ ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int summaryRow : selectedRows)
{
- String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdCol)
+ String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdColIndex)
.toString();
-
+ SequenceI selectedSeq = (SequenceI) tbl_summary.getValueAt(
+ summaryRow, refSeqColIndex);
+ selectedSeqsToView.add(selectedSeq);
PDBEntry pdbEntry = cachedEntryMap.get(pdbIdStr.toLowerCase());
if (pdbEntry == null)
{
}
pdbEntriesToView[count++] = pdbEntry;
}
+ SequenceI[] selectedSeqs = selectedSeqsToView
+ .toArray(new SequenceI[selectedSeqsToView.size()]);
launchStructureViewer(ap.getStructureSelectionManager(),
- pdbEntriesToView, ap, selectedSequences);
+ pdbEntriesToView, ap, selectedSeqs);
}
- else if(currentView == VIEWS_LOCAL_PDB){
+ else if (currentView == VIEWS_LOCAL_PDB)
+ {
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<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int row : selectedRows)
{
- String entryKey = tbl_local_pdb.getValueAt(row, 1).toString()
- .toLowerCase();
+ 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)
{
selectedSequence = userSelectedSeq;
}
PDBEntry fileEntry = new AssociatePdbFileWithSeq()
- .associatePdbWithSeq(
- selectedPdbFileName, jalview.io.AppletFormatAdapter.FILE,
- selectedSequence, true, Desktop.instance);
+ .associatePdbWithSeq(selectedPdbFileName,
+ jalview.io.AppletFormatAdapter.FILE,
+ selectedSequence, true, Desktop.instance);
launchStructureViewer(ap.getStructureSelectionManager(),
new PDBEntry[]
mainFrame.dispose();
}
- private void launchStructureViewer(StructureSelectionManager ssm,
- PDBEntry[] pdbEntriesToView, AlignmentPanel alignPanel,
- SequenceI[] sequences)
+ private void launchStructureViewer(final StructureSelectionManager ssm,
+ final PDBEntry[] pdbEntriesToView,
+ final AlignmentPanel alignPanel, final SequenceI[] sequences)
{
- StructureViewer sViewer = new StructureViewer(ssm);
- if (pdbEntriesToView.length > 1)
+ final StructureViewer sViewer = new StructureViewer(ssm);
+ new Thread(new Runnable()
{
- sViewer.viewStructures(pdbEntriesToView, alignPanel.av.collateForPDB(pdbEntriesToView),
- alignPanel);
- }
- else
- {
- sViewer.viewStructures(pdbEntriesToView[0], sequences,
- alignPanel);
- }
+ public void run()
+ {
+ if (pdbEntriesToView.length > 1)
+ {
+ ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
+ 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
+ {
+ sViewer.viewStructures(pdbEntriesToView[0], sequences, alignPanel);
+ }
+ }
+ }).start();
}
/**
pdbRequest.setFieldToSearchBy("(pdb_id:");
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setSearchTerm(txt_search.getText() + ")");
- pdbRequest.setAssociatedSequence(selectedSequence.getName());
+ pdbRequest.setAssociatedSequence(selectedSequence);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try