import jalview.schemes.PIDColourScheme;
import jalview.schemes.PurinePyrimidineColourScheme;
import jalview.schemes.RNAHelicesColourChooser;
-import jalview.schemes.RNAInteractionColourScheme;
import jalview.schemes.StrandColourScheme;
import jalview.schemes.TCoffeeColourScheme;
import jalview.schemes.TaylorColourScheme;
import java.awt.Canvas;
import java.awt.CheckboxMenuItem;
import java.awt.Color;
+import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
+import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.util.StringTokenizer;
import java.util.Vector;
+import org.jmol.viewer.Viewer;
+
public class AlignFrame extends EmbmenuFrame implements ActionListener,
ItemListener, KeyListener, AlignViewControllerGuiI
{
* @param title
* @param embedded
*/
- public AlignFrame(AlignmentI al, JalviewLite applet,
- String title, boolean embedded)
+ public AlignFrame(AlignmentI al, JalviewLite applet, String title,
+ boolean embedded)
{
this(al, applet, title, embedded, true);
}
* @param embedded
* @param addToDisplay
*/
- public AlignFrame(AlignmentI al, JalviewLite applet,
- String title, boolean embedded, boolean addToDisplay)
+ public AlignFrame(AlignmentI al, JalviewLite applet, String title,
+ boolean embedded, boolean addToDisplay)
{
this(al, null, null, applet, title, embedded, addToDisplay);
}
if (hiddenSeqs != null && hiddenSeqs.length > 0)
{
viewport.hideSequence(hiddenSeqs);
- viewport.setHasHiddenRows(true);
}
if (columnSelection != null)
{
normSequenceLogo.setState(viewport.isNormaliseSequenceLogo());
applyToAllGroups.setState(viewport.getColourAppliesToAllGroups());
annotationPanelMenuItem.setState(viewport.isShowAnnotation());
- showAlignmentAnnotations.setState(viewport.isShowAnnotation());
- showSequenceAnnotations.setState(viewport.isShowAnnotation());
+ showAlignmentAnnotations.setEnabled(annotationPanelMenuItem.getState());
+ showSequenceAnnotations.setEnabled(annotationPanelMenuItem.getState());
+ showAlignmentAnnotations.setState(true);
+ showSequenceAnnotations.setState(false);
seqLimits.setState(viewport.getShowJVSuffix());
alignPanel.annotationSpaceFillerHolder.addKeyListener(this);
alignPanel.alabels.addKeyListener(this);
+ setAnnotationsVisibility();
+
if (addToDisplay)
{
addToDisplay(embedded);
boolean featuresFile = false;
try
{
- featuresFile = new jalview.io.FeaturesFile(file, type)
- .parse(viewport.getAlignment(), alignPanel.seqPanel.seqCanvas
- .getFeatureRenderer().getFeatureColours(), featureLinks,
- true, viewport.applet.getDefaultParameter(
- "relaxedidmatch", false));
+ featuresFile = new jalview.io.FeaturesFile(file, type).parse(viewport
+ .getAlignment(), alignPanel.seqPanel.seqCanvas
+ .getFeatureRenderer().getFeatureColours(), featureLinks,
+ true, viewport.applet.getDefaultParameter("relaxedidmatch",
+ false));
} catch (Exception ex)
{
ex.printStackTrace();
case KeyEvent.VK_F2:
viewport.cursorMode = !viewport.cursorMode;
statusBar.setText(MessageManager.formatMessage(
- "label.keyboard_editing_mode", new String[]
- { (viewport.cursorMode ? "on" : "off") }));
+ "label.keyboard_editing_mode",
+ new String[] { (viewport.cursorMode ? "on" : "off") }));
if (viewport.cursorMode)
{
alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes;
}
else if (source == annotationPanelMenuItem)
{
- viewport.setShowAnnotation(annotationPanelMenuItem.getState());
- alignPanel.setAnnotationVisible(annotationPanelMenuItem.getState());
+ boolean showAnnotations = annotationPanelMenuItem.getState();
+ showAlignmentAnnotations.setEnabled(showAnnotations);
+ showSequenceAnnotations.setEnabled(showAnnotations);
+ viewport.setShowAnnotation(showAnnotations);
+ alignPanel.setAnnotationVisible(showAnnotations);
}
else if (source == sequenceFeatures)
{
/**
* Set the visibility state of sequence-related and/or alignment-related
- * annotations depending on checkbox selections. Repaint after calling.
+ * annotations depending on checkbox selections, and repaint.
*
* @param visible
*/
{
boolean visible = (aa.sequenceRef == null ? showForAlignment
: showForSequences);
- aa.visible = visible;
+ aa.visible = visible;
}
- alignPanel.validateAnnotationDimensions(false);
+ alignPanel.validateAnnotationDimensions(true);
+ validate();
+ repaint();
}
private void setAnnotationSortOrder(SequenceAnnotationOrder order)
@Override
public void actionPerformed(ActionEvent evt)
{
+ viewport.applet.currentAlignFrame = this;
+
Object source = evt.getSource();
if (source == inputText)
Frame frame = new Frame();
frame.add(cap);
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
- "label.alignment_properties", new String[]
- { getTitle() }), 400, 250);
+ "label.alignment_properties", new String[] { getTitle() }),
+ 400, 250);
}
else if (source == overviewMenuItem)
{
{
changeColour(new PurinePyrimidineColourScheme());
}
- else if (source == RNAInteractionColour)
- {
- changeColour(new RNAInteractionColourScheme());
- }
+ // else if (source == RNAInteractionColour)
+ // {
+ // changeColour(new RNAInteractionColourScheme());
+ // }
else if (source == RNAHelixColour)
{
new RNAHelicesColourChooser(viewport, alignPanel);
Frame frame = new Frame();
frame.add(cap);
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
- "label.alignment_output_command", new Object[]
- { e.getActionCommand() }), 600, 500);
+ "label.alignment_output_command",
+ new Object[] { e.getActionCommand() }), 600, 500);
FeatureRenderer fr = this.alignPanel.cloneFeatureRenderer();
- viewport.setFeatureRenderer(fr);
- viewport.setIncludeHiddenRegion(false);
- cap.setText(new AppletFormatAdapter(viewport).formatSequences(
+ cap.setText(new AppletFormatAdapter(alignPanel).formatSequences(
e.getActionCommand(), viewport.getAlignment(),
viewport.getShowJVSuffix()));
}
return annotation;
}
- private Map<String,Object> getDisplayedFeatureCols()
+ private Map<String, Object> getDisplayedFeatureCols()
{
if (alignPanel.getFeatureRenderer() != null
- && viewport.getFeaturesDisplayed()!= null)
+ && viewport.getFeaturesDisplayed() != null)
{
return alignPanel.getFeatureRenderer().getDisplayedFeatureCols();
-
+
}
return null;
}
undoMenuItem.setEnabled(true);
CommandI command = viewport.getHistoryList().peek();
undoMenuItem.setLabel(MessageManager.formatMessage(
- "label.undo_command", new Object[]
- { command.getDescription() }));
+ "label.undo_command",
+ new Object[] { command.getDescription() }));
}
else
{
CommandI command = viewport.getRedoList().peek();
redoMenuItem.setLabel(MessageManager.formatMessage(
- "label.redo_command", new Object[]
- { command.getDescription() }));
+ "label.redo_command",
+ new Object[] { command.getDescription() }));
}
else
{
viewport, complement);
complement.getAlignment().moveSelectedSequencesByOne(mappedSelection,
up ? null : complement.getHiddenRepSequences(), up);
- // TODO need to trigger a repaint of the complementary panel - how?
- // would prefer to handle in SplitFrame but it is not overriding key
- // listener chiz
+ getSplitFrame().getComplement(this).alignPanel.paintAlignment(true);
}
}
int hiddenOffset = viewport.getSelectionGroup().getStartRes();
for (int[] region : viewport.getColumnSelection().getHiddenColumns())
{
- copiedHiddenColumns.addElement(new int[]
- { region[0] - hiddenOffset, region[1] - hiddenOffset });
+ copiedHiddenColumns.addElement(new int[] {
+ region[0] - hiddenOffset, region[1] - hiddenOffset });
}
}
else
if (newAlignment)
{
- String newtitle = MessageManager.getString("label.copied_sequences");
- if (getTitle().startsWith(MessageManager.getString("label.copied_sequences")))
+ String newtitle = MessageManager
+ .getString("label.copied_sequences");
+ if (getTitle().startsWith(
+ MessageManager.getString("label.copied_sequences")))
{
newtitle = getTitle();
}
else
{
- newtitle = newtitle.concat(MessageManager.formatMessage("label.from_msname", new String[]{getTitle()}));
+ newtitle = newtitle.concat(MessageManager.formatMessage(
+ "label.from_msname", new String[] { getTitle() }));
}
AlignFrame af = new AlignFrame(new Alignment(newSeqs),
viewport.applet, newtitle, false);
seqs.addElement(seq);
}
- // If the cut affects all sequences, remove highlighted columns
+ /*
+ * If the cut affects all sequences, warn, remove highlighted columns
+ */
if (sg.getSize() == viewport.getAlignment().getHeight())
{
+ boolean isEntireAlignWidth = (((sg.getEndRes() - sg.getStartRes()) + 1) == viewport
+ .getAlignment().getWidth()) ? true : false;
+ if (isEntireAlignWidth)
+ {
+ String title = MessageManager.getString("label.delete_all");
+ Panel infoPanel = new Panel();
+ infoPanel.setLayout(new FlowLayout());
+ infoPanel
+ .add(new Label(MessageManager.getString("warn.delete_all")));
+
+ final JVDialog dialog = new JVDialog(this, title, true, 400,
+ 200);
+ dialog.setMainPanel(infoPanel);
+ dialog.ok.setLabel(MessageManager.getString("action.ok"));
+ dialog.cancel.setLabel(MessageManager.getString("action.cancel"));
+ dialog.setVisible(true);
+
+ if (!dialog.accept)
+ {
+ return;
+ }
+ }
viewport.getColumnSelection().removeElements(sg.getStartRes(),
sg.getEndRes() + 1);
}
}
statusBar.setText(MessageManager.formatMessage(
- "label.removed_columns", new String[]
- { Integer.valueOf(trimRegion.getSize()).toString() }));
+ "label.removed_columns",
+ new String[] { Integer.valueOf(trimRegion.getSize())
+ .toString() }));
addHistoryItem(trimRegion);
for (SequenceGroup sg : viewport.getAlignment().getGroups())
addHistoryItem(removeGapCols);
statusBar.setText(MessageManager.formatMessage(
- "label.removed_empty_columns", new String[]
- { Integer.valueOf(removeGapCols.getSize()).toString() }));
+ "label.removed_empty_columns",
+ new String[] { Integer.valueOf(removeGapCols.getSize())
+ .toString() }));
// This is to maintain viewport position on first residue
// of first sequence
if (alignPanel != null
&& (fr = alignPanel.getFeatureRenderer()) != null)
{
-
+
fr.setGroupVisibility(Arrays.asList(groups), state);
alignPanel.seqPanel.seqCanvas.repaint();
if (alignPanel.overviewPanel != null)
frame.add(overview);
// +50 must allow for applet frame window
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
- "label.overview_params", new String[]
- { this.getTitle() }), overview.getPreferredSize().width,
+ "label.overview_params", new String[] { this.getTitle() }),
+ overview.getPreferredSize().width,
overview.getPreferredSize().height + 50);
frame.pack();
public void changeColour(ColourSchemeI cs)
{
- int threshold = 0;
if (cs != null)
{
}
viewport.setGlobalColourScheme(cs);
- if (alignPanel.getOverviewPanel() != null)
- {
- alignPanel.getOverviewPanel().updateOverviewImage();
- }
-
- jalview.structure.StructureSelectionManager
- .getStructureSelectionManager(viewport.applet)
- .sequenceColoursChanged(alignPanel);
-
alignPanel.paintAlignment(true);
}
// addHistoryItem(new HistoryItem("Sort", viewport.alignment,
// HistoryItem.SORT));
addHistoryItem(new OrderCommand(MessageManager.formatMessage(
- "label.order_by_params", new String[]
- { title }), oldOrder, viewport.getAlignment()));
+ "label.order_by_params", new String[] { title }), oldOrder,
+ viewport.getAlignment()));
alignPanel.paintAlignment(true);
}
// lite and application
g.setFont(new Font("Helvetica", Font.BOLD, 14));
g.drawString(MessageManager.formatMessage(
- "label.jalviewLite_release", new String[]
- { version }), x, y += fh);
+ "label.jalviewLite_release", new String[] { version }), x,
+ y += fh);
g.setFont(new Font("Helvetica", Font.BOLD, 12));
g.drawString(MessageManager.formatMessage(
- "label.jaview_build_date", new String[]
- { builddate }), x, y += fh);
+ "label.jaview_build_date", new String[] { builddate }), x,
+ y += fh);
g.setFont(new Font("Helvetica", Font.PLAIN, 12));
g.drawString(MessageManager.getString("label.jalview_authors_1"),
x, y += fh * 1.5);
MessageManager.getString("label.load_features_annotations"));
MenuItem outputFeatures = new MenuItem(
- MessageManager.getString("label.export_features").concat("..."));
+ MessageManager.getString("label.export_features"));
MenuItem outputAnnotations = new MenuItem(
- MessageManager.getString("label.export_annotations").concat("..."));
+ MessageManager.getString("label.export_annotations"));
MenuItem closeMenuItem = new MenuItem(
MessageManager.getString("action.close"));
MenuItem purinePyrimidineColour = new MenuItem();
- MenuItem RNAInteractionColour = new MenuItem();
+ // MenuItem RNAInteractionColour = new MenuItem();
MenuItem RNAHelixColour = new MenuItem();
removeAllGapsMenuItem.setLabel(MessageManager
.getString("action.remove_all_gaps"));
removeAllGapsMenuItem.addActionListener(this);
- removeRedundancyMenuItem.setLabel(MessageManager.getString(
- "action.remove_redundancy").concat("..."));
+ removeRedundancyMenuItem.setLabel(MessageManager
+ .getString("action.remove_redundancy"));
removeRedundancyMenuItem.addActionListener(this);
/*
grpsFromSelection.addActionListener(this);
createGroup.setLabel(MessageManager.getString("action.create_group"));
unGroup.setLabel(MessageManager.getString("action.remove_group"));
- annotationColumnSelection.setLabel("Select by Annotation");
+ annotationColumnSelection.setLabel(MessageManager
+ .getString("action.select_by_annotation"));
annotationColumnSelection.addActionListener(this);
/*
hideAllSelection.addActionListener(this);
showAllHidden.addActionListener(this);
featureSettings.setLabel(MessageManager
- .getString("label.feature_settings"));
+ .getString("action.feature_settings"));
featureSettings.addActionListener(this);
sequenceFeatures.setLabel(MessageManager
.getString("label.show_sequence_features"));
MessageManager.getString("label.sort_annotations_by_label"));
showAutoFirst = new CheckboxMenuItem(
MessageManager.getString("label.show_first"));
+ showAutoFirst.setState(false); // pending applet parameter
+ setShowAutoCalculatedAbove(showAutoFirst.getState());
showAutoLast = new CheckboxMenuItem(
MessageManager.getString("label.show_last"));
+ showAutoLast.setState(!showAutoFirst.getState());
showAlignmentAnnotations.addItemListener(this);
showSequenceAnnotations.addItemListener(this);
sortAnnBySequence.addItemListener(this);
purinePyrimidineColour.setLabel(MessageManager
.getString("label.purine_pyrimidine"));
purinePyrimidineColour.addActionListener(this);
- RNAInteractionColour.setLabel(MessageManager
- .getString("label.rna_interaction"));
- RNAInteractionColour.addActionListener(this);
+ // RNAInteractionColour.setLabel(MessageManager
+ // .getString("label.rna_interaction"));
+ // RNAInteractionColour.addActionListener(this);
RNAHelixColour.setLabel(MessageManager
.getString("action.by_rna_helixes"));
RNAHelixColour.addActionListener(this);
add(statusBar, BorderLayout.SOUTH);
add(alignPanel, BorderLayout.CENTER);
// and register with the applet so it can pass external API calls to us
- jalview.bin.JalviewLite.addFrame(this, this.getTitle(),
- frameWidth,
+ jalview.bin.JalviewLite.addFrame(this, this.getTitle(), frameWidth,
frameHeight);
}
}
public SequenceStructureBinding addStructureViewInstance(
Object jmolviewer, String[] sequenceIds)
{
- org.jmol.api.JmolViewer viewer = null;
+ Viewer viewer = null;
try
{
- viewer = (org.jmol.api.JmolViewer) jmolviewer;
+ viewer = (Viewer) jmolviewer;
} catch (ClassCastException ex)
{
System.err.println("Unsupported viewer object :"
// TODO: search for a jmv that involves viewer
if (jmv == null)
{ // create a new viewer/jalview binding.
- jmv = new ExtJmol(viewer, alignPanel, new SequenceI[][]
- { seqs });
+ jmv = new ExtJmol(viewer, alignPanel, new SequenceI[][] { seqs });
}
return jmv;
boolean needtoadd = false;
if (toaddpdb != null)
{
- Vector pdbe = toaddpdb.getPDBId();
+ Vector pdbe = toaddpdb.getAllPDBEntries();
PDBEntry pdbentry = null;
if (pdbe != null && pdbe.size() > 0)
{
{
if (seqs[i] != null)
{
- sequences.addElement(new Object[]
- { seqs[i], (chains != null) ? chains[i] : null });
+ sequences.addElement(new Object[] { seqs[i],
+ (chains != null) ? chains[i] : null });
}
}
seqs = new SequenceI[sequences.size()];
chains[i] = (String) oj[1];
}
}
- return new Object[]
- { seqs, chains };
+ return new Object[] { seqs, chains };
}
this.splitFrame = sf;
}
- // may not need this
+ // may not need this
@Override
public void setShowSeqFeatures(boolean b)
{
// setMenusFromViewport(viewport);
}
+
@Override
public void refreshFeatureUI(boolean enableIfNecessary)
{