X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FChimeraViewFrame.java;h=a6e479d0a784136b236fa435644e4af357f7a95b;hb=42f4227ed213d422a87d3b22fc9e85d14ffaf53f;hp=22336b93b1eff3fd45c3b16b29a62951e97d85ed;hpb=675952adfc6e4c165f3e3fdb8384d6688637e972;p=jalview.git diff --git a/src/jalview/gui/ChimeraViewFrame.java b/src/jalview/gui/ChimeraViewFrame.java index 22336b9..a6e479d 100644 --- a/src/jalview/gui/ChimeraViewFrame.java +++ b/src/jalview/gui/ChimeraViewFrame.java @@ -23,7 +23,6 @@ package jalview.gui; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; import jalview.bin.Cache; -import jalview.datamodel.AlignmentI; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; import jalview.ext.rbvi.chimera.JalviewChimeraBinding; @@ -34,7 +33,6 @@ import jalview.structures.models.AAStructureBindingModel; import jalview.util.BrowserLauncher; import jalview.util.MessageManager; import jalview.util.Platform; -import jalview.ws.dbsources.Pdb; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -164,9 +162,9 @@ public class ChimeraViewFrame extends StructureViewerBase /** * Send a command to Chimera to create residue attributes for Jalview features *
- * The syntax is: setattr r
- * For example: setattr r jv:chain "Ferredoxin-1, Chloroplastic" #0:94.A
+ * For example: setattr r jv_chain "Ferredoxin-1, Chloroplastic" #0:94.A
*/
protected void sendFeaturesToChimera()
{
@@ -208,8 +206,7 @@ public class ChimeraViewFrame extends StructureViewerBase
SequenceI[][] seqs)
{
createProgressBar();
- jmb = new JalviewChimeraBindingModel(this,
- ap.getStructureSelectionManager(), pdbentrys, seqs, null);
+ jmb = newBindingModel(ap, pdbentrys, seqs);
addAlignmentPanel(ap);
useAlignmentPanelForColourbyseq(ap);
@@ -237,6 +234,13 @@ public class ChimeraViewFrame extends StructureViewerBase
}
+ protected JalviewChimeraBindingModel newBindingModel(AlignmentPanel ap,
+ PDBEntry[] pdbentrys, SequenceI[][] seqs)
+ {
+ return new JalviewChimeraBindingModel(this,
+ ap.getStructureSelectionManager(), pdbentrys, seqs, null);
+ }
+
/**
* Create a new viewer from saved session state data including Chimera session
* file
@@ -510,7 +514,7 @@ public class ChimeraViewFrame extends StructureViewerBase
pdb = jmb.getSsm().setMapping(jmb.getSequence()[pos],
jmb.getChains()[pos], pe.getFile(), protocol,
getProgressIndicator());
- stashFoundChains(pdb, pe.getFile());
+ jmb.stashFoundChains(pdb, pe.getFile());
} catch (OutOfMemoryError oomerror)
{
@@ -566,71 +570,6 @@ public class ChimeraViewFrame extends StructureViewerBase
worker = null;
}
- /**
- * Fetch PDB data and save to a local file. Returns the full path to the file,
- * or null if fetch fails. TODO: refactor to common with Jmol ? duplication
- *
- * @param processingEntry
- * @return
- * @throws Exception
- */
-
- private void stashFoundChains(StructureFile pdb, String file)
- {
- for (int i = 0; i < pdb.getChains().size(); i++)
- {
- String chid = new String(
- pdb.getId() + ":" + pdb.getChains().elementAt(i).id);
- jmb.getChainNames().add(chid);
- jmb.addChainFile(chid, file);
- }
- }
-
- private String fetchPdbFile(PDBEntry processingEntry) throws Exception
- {
- String filePath = null;
- Pdb pdbclient = new Pdb();
- AlignmentI pdbseq = null;
- String pdbid = processingEntry.getId();
- long handle = System.currentTimeMillis()
- + Thread.currentThread().hashCode();
-
- /*
- * Write 'fetching PDB' progress on AlignFrame as we are not yet visible
- */
- String msg = MessageManager.formatMessage("status.fetching_pdb",
- new Object[]
- { pdbid });
- getAlignmentPanel().alignFrame.setProgressBar(msg, handle);
- // long hdl = startProgressBar(MessageManager.formatMessage(
- // "status.fetching_pdb", new Object[]
- // { pdbid }));
- try
- {
- pdbseq = pdbclient.getSequenceRecords(pdbid);
- } catch (OutOfMemoryError oomerror)
- {
- new OOMWarning("Retrieving PDB id " + pdbid, oomerror);
- } finally
- {
- msg = pdbid + " " + MessageManager.getString("label.state_completed");
- getAlignmentPanel().alignFrame.setProgressBar(msg, handle);
- // stopProgressBar(msg, hdl);
- }
- /*
- * If PDB data were saved and are not invalid (empty alignment), return the
- * file path.
- */
- if (pdbseq != null && pdbseq.getHeight() > 0)
- {
- // just use the file name from the first sequence's first PDBEntry
- filePath = new File(pdbseq.getSequenceAt(0).getAllPDBEntries()
- .elementAt(0).getFile()).getAbsolutePath();
- processingEntry.setFile(filePath);
- }
- return filePath;
- }
-
@Override
public void eps_actionPerformed()
{
@@ -650,9 +589,7 @@ public class ChimeraViewFrame extends StructureViewerBase
{
try
{
- String url = jmb.isChimeraX()
- ? "http://www.rbvi.ucsf.edu/chimerax/docs/user/index.html"
- : "https://www.cgl.ucsf.edu/chimera/docs/UsersGuide";
+ String url = jmb.getHelpURL();
BrowserLauncher.openURL(url);
} catch (IOException ex)
{
@@ -682,7 +619,7 @@ public class ChimeraViewFrame extends StructureViewerBase
{
if (pathUsed == null)
{
- String suffix = jmb.isChimeraX() ? ".cxs" : ".py";
+ String suffix = jmb.getSessionFileExtension();
File tempFile = File.createTempFile("chimera", suffix);
tempFile.deleteOnExit();
pathUsed = tempFile.getPath();
@@ -755,20 +692,4 @@ public class ChimeraViewFrame extends StructureViewerBase
{
return "Chimera";
}
-
- /**
- * Sends commands to align structures according to associated alignment(s).
- *
- * @return
- */
- @Override
- protected String alignStructsWithAllAlignPanels()
- {
- String reply = super.alignStructsWithAllAlignPanels();
- if (reply != null)
- {
- statusBar.setText("Superposition failed: " + reply);
- }
- return reply;
- }
}