*/
package jalview.gui;
+
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import jalview.util.ImageMaker.TYPE;
import jalview.util.MessageManager;
import jalview.util.Platform;
-
/**
* GUI elements for handling an external chimera display
*
{
private JalviewChimeraBinding jmb;
+
/*
* Path to Chimera session file. This is set when an open Jalview/Chimera
* session is saved, or on restore from a Jalview project (if it holds the
*/
private String chimeraSessionFile = null;
+
private int myWidth = 500;
private int myHeight = 150;
- /**
+ private JMenuItem writeFeatures=null;
+
+ private JMenu fetchAttributes=null;
+/**
* Initialise menu options.
*/
@Override
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"));
});
viewerActionMenu.add(writeFeatures);
- final JMenu fetchAttributes = new JMenu(
+ fetchAttributes = new JMenu(
MessageManager.getString("label.fetch_chimera_attributes"));
fetchAttributes.setToolTipText(
MessageManager.getString("label.fetch_chimera_attributes_tip"));
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
*/
return new JalviewChimeraBindingModel(this,
ap.getStructureSelectionManager(), pdbentrys, seqs, null);
}
-
/**
* Create a new viewer from saved session state data including Chimera session
* file
if (!jmb.launchChimera())
{
- JvOptionPane.showMessageDialog(Desktop.desktop,
+ JvOptionPane.showMessageDialog(Desktop.getDesktopPane(),
MessageManager.formatMessage("label.open_viewer_failed",
getViewerName()),
MessageManager.getString("label.error_loading_file"),
if (errormsgs.length() > 0)
{
- JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(),
MessageManager.formatMessage(
"label.pdb_entries_couldnt_be_retrieved", new Object[]
{ errormsgs.toString() }),
/*
* 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)
worker = null;
}
+
@Override
public void makePDBImage(TYPE imageType)
{
return jmb;
}
- @Override
- protected void fitToWindow_actionPerformed()
- {
- jmb.focusView();
- }
@Override
public ViewerType getViewerType()