import jalview.api.AlignmentViewPanel;
import jalview.api.FeatureRenderer;
-import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
private int myHeight = 150;
+ private JMenuItem writeFeatures = null;
+
+ private JMenu fetchAttributes = null;
+
/**
* Initialise menu options.
*/
savemenu.setVisible(false); // not yet implemented
viewMenu.add(fitToWindow);
- JMenuItem writeFeatures = new JMenuItem(
+ writeFeatures = new JMenuItem(
MessageManager.getString("label.create_viewer_attributes"));
- writeFeatures.setToolTipText(MessageManager
- .getString("label.create_viewer_attributes_tip"));
+ writeFeatures.setToolTipText(
+ MessageManager.getString("label.create_viewer_attributes_tip"));
writeFeatures.addActionListener(new ActionListener()
{
@Override
});
viewerActionMenu.add(writeFeatures);
- final JMenu fetchAttributes = new JMenu(
- MessageManager.getString("label.fetch_chimera_attributes"));
- fetchAttributes.setToolTipText(
- MessageManager.getString("label.fetch_chimera_attributes_tip"));
+ fetchAttributes = new JMenu(MessageManager.formatMessage(
+ "label.fetch_viewer_attributes", getViewerName()));
+ fetchAttributes.setToolTipText(MessageManager.formatMessage(
+ "label.fetch_viewer_attributes_tip", getViewerName()));
fetchAttributes.addMouseListener(new MouseAdapter()
{
viewerActionMenu.add(fetchAttributes);
}
+ @Override
+ protected void buildActionMenu()
+ {
+ super.buildActionMenu();
+ // add these back in after menu is refreshed
+ viewerActionMenu.add(writeFeatures);
+ viewerActionMenu.add(fetchAttributes);
+
+ };
+
/**
- * Query Chimera for its residue attribute names and add them as items off the
- * attributes menu
+ * Query the structure viewer for its residue attribute names and add them as
+ * items off the attributes menu
*
* @param attributesMenu
*/
@Override
public void actionPerformed(ActionEvent e)
{
- getChimeraAttributes(attName);
+ if (getBinding().copyStructureAttributesToFeatures(attName,
+ getAlignmentPanel()) > 0)
+ {
+ getAlignmentPanel().getFeatureRenderer().featuresAdded();
+ }
}
});
attributesMenu.add(menuItem);
}
/**
- * Read residues in Chimera with the given attribute name, and set as features
- * on the corresponding sequence positions (if any)
- *
- * @param attName
- */
- protected void getChimeraAttributes(String attName)
- {
- jmb.copyStructureAttributesToFeatures(attName, getAlignmentPanel());
- }
-
- /**
* Sends command(s) to the structure viewer to create residue attributes for
* visible Jalview features
*/
{
// todo pull up?
int count = jmb.sendFeaturesToViewer(getAlignmentPanel());
- statusBar.setText(
- MessageManager.formatMessage("label.attributes_set", count));
+ statusBar.setText(MessageManager.formatMessage("label.attributes_set",
+ count, getViewerName()));
}
/**
* @param ap
*/
public ChimeraViewFrame(PDBEntry[] pe, boolean alignAdded,
- SequenceI[][] seqs,
- AlignmentPanel ap)
+ SequenceI[][] seqs, AlignmentPanel ap)
{
this();
setAlignAddedStructures(alignAdded);
getViewerName()),
MessageManager.getString("label.error_loading_file"),
JvOptionPane.ERROR_MESSAGE);
+ jmb.closeViewer(true);
this.dispose();
return;
}
boolean opened = jmb.openSession(chimeraSessionFile);
if (!opened)
{
- System.err.println("An error occurred opening Chimera session file "
+ jalview.bin.Console.errPrintln("An error occurred opening Chimera session file "
+ chimeraSessionFile);
}
}
initChimera();
} catch (Exception ex)
{
- Cache.log.error("Couldn't open Chimera viewer!", ex);
+ Console.error("Couldn't open Chimera viewer!", ex);
}
}
+ if (!jmb.isViewerRunning())
+ {
+ // nothing to do
+ // TODO: ensure we tidy up JAL-3619
+ return;
+ }
int num = -1;
for (PDBEntry pe : filePDB)
{
oomerror);
} catch (Exception ex)
{
- Cache.log.error(
+ Console.error(
"Couldn't open " + pe.getFile() + " in Chimera viewer!",
ex);
} finally
{
- Cache.log.debug("File locations are " + files);
+ Console.debug("File locations are " + files);
}
}
}
/*
* ensure that any newly discovered features (e.g. RESNUM)
- * are added to any open feature settings dialog
+ * are notified to the FeatureRenderer (and added to any
+ * open feature settings dialog)
*/
FeatureRenderer fr = getBinding().getFeatureRenderer(null);
if (fr != null)
}
@Override
- protected void fitToWindow_actionPerformed()
- {
- jmb.focusView();
- }
-
- @Override
public ViewerType getViewerType()
{
return ViewerType.CHIMERA;