import jalview.datamodel.SequenceI;
import jalview.io.AlignmentProperties;
import jalview.io.AnnotationFile;
+import jalview.io.BioJsHTMLOutput;
import jalview.io.FeaturesFile;
import jalview.io.FileLoader;
import jalview.io.FormatAdapter;
-import jalview.io.HTMLOutput;
+import jalview.io.HtmlSvgOutput;
import jalview.io.IdentifyFile;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Deque;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
.getKeyCode() <= KeyEvent.VK_NUMPAD9))
&& Character.isDigit(evt.getKeyChar()))
{
- alignPanel.seqPanel.numberPressed(evt.getKeyChar());
+ alignPanel.getSeqPanel().numberPressed(evt.getKeyChar());
}
switch (evt.getKeyCode())
}
if (viewport.cursorMode)
{
- alignPanel.seqPanel.moveCursor(0, 1);
+ alignPanel.getSeqPanel().moveCursor(0, 1);
}
break;
}
if (viewport.cursorMode)
{
- alignPanel.seqPanel.moveCursor(0, -1);
+ alignPanel.getSeqPanel().moveCursor(0, -1);
}
break;
case KeyEvent.VK_LEFT:
if (evt.isAltDown() || !viewport.cursorMode)
{
- slideSequences(false, alignPanel.seqPanel.getKeyboardNo1());
+ slideSequences(false, alignPanel.getSeqPanel().getKeyboardNo1());
}
else
{
- alignPanel.seqPanel.moveCursor(-1, 0);
+ alignPanel.getSeqPanel().moveCursor(-1, 0);
}
break;
case KeyEvent.VK_RIGHT:
if (evt.isAltDown() || !viewport.cursorMode)
{
- slideSequences(true, alignPanel.seqPanel.getKeyboardNo1());
+ slideSequences(true, alignPanel.getSeqPanel().getKeyboardNo1());
}
else
{
- alignPanel.seqPanel.moveCursor(1, 0);
+ alignPanel.getSeqPanel().moveCursor(1, 0);
}
break;
case KeyEvent.VK_SPACE:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.insertGapAtCursor(evt.isControlDown()
+ alignPanel.getSeqPanel().insertGapAtCursor(evt.isControlDown()
|| evt.isShiftDown() || evt.isAltDown());
}
break;
}
else
{
- alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown()
+ alignPanel.getSeqPanel().deleteGapAtCursor(evt.isControlDown()
|| evt.isShiftDown() || evt.isAltDown());
}
case KeyEvent.VK_S:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.setCursorRow();
+ alignPanel.getSeqPanel().setCursorRow();
}
break;
case KeyEvent.VK_C:
if (viewport.cursorMode && !evt.isControlDown())
{
- alignPanel.seqPanel.setCursorColumn();
+ alignPanel.getSeqPanel().setCursorColumn();
}
break;
case KeyEvent.VK_P:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.setCursorPosition();
+ alignPanel.getSeqPanel().setCursorPosition();
}
break;
case KeyEvent.VK_COMMA:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.setCursorRowAndColumn();
+ alignPanel.getSeqPanel().setCursorRowAndColumn();
}
break;
case KeyEvent.VK_Q:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.setSelectionAreaAtCursor(true);
+ alignPanel.getSeqPanel().setSelectionAreaAtCursor(true);
}
break;
case KeyEvent.VK_M:
if (viewport.cursorMode)
{
- alignPanel.seqPanel.setSelectionAreaAtCursor(false);
+ alignPanel.getSeqPanel().setSelectionAreaAtCursor(false);
}
break;
{ (viewport.cursorMode ? "on" : "off") }));
if (viewport.cursorMode)
{
- alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes;
- alignPanel.seqPanel.seqCanvas.cursorY = viewport.startSeq;
+ alignPanel.getSeqPanel().seqCanvas.cursorX = viewport.startRes;
+ alignPanel.getSeqPanel().seqCanvas.cursorY = viewport.startSeq;
}
- alignPanel.seqPanel.seqCanvas.repaint();
+ alignPanel.getSeqPanel().seqCanvas.repaint();
break;
case KeyEvent.VK_F1:
abovePIDThreshold.setSelected(av.getAbovePIDThreshold());
conservationMenuItem.setSelected(av.getConservationSelected());
seqLimits.setSelected(av.getShowJVSuffix());
- idRightAlign.setSelected(av.rightAlignIds);
+ idRightAlign.setSelected(av.isRightAlignIds());
centreColumnLabelsMenuItem.setState(av.centreColumnLabels);
renderGapsMenuItem.setSelected(av.renderGaps);
wrapMenuItem.setSelected(av.wrapAlignment);
scaleAbove.setVisible(av.wrapAlignment);
scaleLeft.setVisible(av.wrapAlignment);
scaleRight.setVisible(av.wrapAlignment);
- annotationPanelMenuItem.setState(av.showAnnotation);
+ annotationPanelMenuItem.setState(av.isShowAnnotation());
/*
* Show/hide annotations only enabled if annotation panel is shown
*/
setColourSelected(ColourSchemeProperty.getColourName(av
.getGlobalColourScheme()));
- showSeqFeatures.setSelected(av.showSequenceFeatures);
+ showSeqFeatures.setSelected(av.isShowSequenceFeatures());
hiddenMarkers.setState(av.showHiddenMarkers);
applyToAllGroups.setState(av.getColourAppliesToAllGroups());
showNpFeatsMenuitem.setSelected(av.isShowNpFeats());
public void actionPerformed(ActionEvent e)
{
handler.cancelActivity(id);
- us.setProgressBar(MessageManager.formatMessage("label.cancelled_params", new String[]{((JLabel) progressPanel.getComponent(0)).getText()}), id);
+ us.setProgressBar(MessageManager.formatMessage("label.cancelled_params", new Object[]{((JLabel) progressPanel.getComponent(0)).getText()}), id);
}
});
progressPanel.add(cancel, BorderLayout.EAST);
public FeatureRenderer getFeatureRenderer()
{
- return alignPanel.seqPanel.seqCanvas.getFeatureRenderer();
+ return alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer();
}
@Override
.lastIndexOf(java.io.File.separatorChar) + 1);
}
- success = new Jalview2XML().SaveAlignment(this, file, shortName);
+ /*
+ * First save any linked Chimera session.
+ */
+ Desktop.instance.saveChimeraSessions(file);
+
+ success = new Jalview2XML().saveAlignment(this, file, shortName);
statusBar.setText(MessageManager.formatMessage(
- "label.successfully_saved_to_file_in_format", new String[]
+ "label.successfully_saved_to_file_in_format", new Object[]
{ fileName, format }));
}
this.setTitle(file);
statusBar.setText(MessageManager.formatMessage(
"label.successfully_saved_to_file_in_format",
- new String[]
+ new Object[]
{ fileName, format }));
} catch (Exception ex)
{
if (!success)
{
JOptionPane.showInternalMessageDialog(this, MessageManager
- .formatMessage("label.couldnt_save_file", new String[]
+ .formatMessage("label.couldnt_save_file", new Object[]
{ fileName }), MessageManager
.getString("label.error_saving_file"),
JOptionPane.WARNING_MESSAGE);
viewport.getAlignment(), omitHidden,
viewport.getColumnSelection()));
Desktop.addInternalFrame(cap, MessageManager.formatMessage(
- "label.alignment_output_command", new String[]
+ "label.alignment_output_command", new Object[]
{ e.getActionCommand() }), 600, 500);
} catch (OutOfMemoryError oom)
{
@Override
protected void htmlMenuItem_actionPerformed(ActionEvent e)
{
- new HTMLOutput(alignPanel,
- alignPanel.seqPanel.seqCanvas.getSequenceRenderer(),
- alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
+ // new HTMLOutput(alignPanel,
+ // alignPanel.getSeqPanel().seqCanvas.getSequenceRenderer(),
+ // alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer());
+ new HtmlSvgOutput(null, alignPanel);
}
+ @Override
+ public void bioJSMenuItem_actionPerformed(ActionEvent e)
+ {
+ new BioJsHTMLOutput(alignPanel,
+ alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer());
+ }
public void createImageMap(File file, String image)
{
alignPanel.makePNGImageMap(file, image);
@Override
public void exportAnnotations_actionPerformed(ActionEvent e)
{
- new AnnotationExporter().exportAnnotations(alignPanel,
- viewport.showAnnotation ? viewport.getAlignment()
- .getAlignmentAnnotation() : null, viewport
- .getAlignment().getGroups(), ((Alignment) viewport
- .getAlignment()).alignmentProperties);
+ new AnnotationExporter().exportAnnotations(alignPanel);
}
@Override
undoMenuItem.setEnabled(true);
CommandI command = viewport.getHistoryList().peek();
undoMenuItem.setText(MessageManager.formatMessage(
- "label.undo_command", new String[]
+ "label.undo_command", new Object[]
{ command.getDescription() }));
}
else
CommandI command = viewport.getRedoList().peek();
redoMenuItem.setText(MessageManager.formatMessage(
- "label.redo_command", new String[]
+ "label.redo_command", new Object[]
{ command.getDescription() }));
}
else
}
CommandI command = viewport.getHistoryList().pop();
viewport.addToRedoList(command);
- // TODO: execute command before adding to redo list / broadcasting?
command.undoCommand(getViewAlignments());
AlignmentViewport originalSource = getOriginatingSource(command);
if (viewport.cursorMode)
{
sg.add(viewport.getAlignment().getSequenceAt(
- alignPanel.seqPanel.seqCanvas.cursorY));
+ alignPanel.getSeqPanel().seqCanvas.cursorY));
}
else if (viewport.getSelectionGroup() != null
&& viewport.getSelectionGroup().getSize() != viewport
{
if (viewport.cursorMode)
{
- alignPanel.seqPanel.moveCursor(size, 0);
+ alignPanel.getSeqPanel().moveCursor(size, 0);
}
else
{
{
if (viewport.cursorMode)
{
- alignPanel.seqPanel.moveCursor(-size, 0);
+ alignPanel.getSeqPanel().moveCursor(-size, 0);
}
else
{
}
boolean appendHistoryItem = false;
- if (viewport.getHistoryList() != null
- && viewport.getHistoryList().size() > 0
- && viewport.getHistoryList().peek() instanceof SlideSequencesCommand)
+ Deque<CommandI> historyList = viewport.getHistoryList();
+ if (historyList != null
+ && historyList.size() > 0
+ && historyList.peek() instanceof SlideSequencesCommand)
{
appendHistoryItem = ssc
- .appendSlideCommand((SlideSequencesCommand) viewport
- .getHistoryList()
+ .appendSlideCommand((SlideSequencesCommand) historyList
.peek());
}
return;
}
- Vector hiddenColumns = null;
+ ArrayList<int[]> hiddenColumns = null;
if (viewport.hasHiddenColumns())
{
- hiddenColumns = new Vector();
+ hiddenColumns = new ArrayList<int[]>();
int hiddenOffset = viewport.getSelectionGroup().getStartRes(), hiddenCutoff = viewport
.getSelectionGroup().getEndRes();
- for (int i = 0; i < viewport.getColumnSelection().getHiddenColumns()
- .size(); i++)
+ for (int[] region : viewport.getColumnSelection().getHiddenColumns())
{
- int[] region = viewport.getColumnSelection()
- .getHiddenColumns().get(i);
if (region[0] >= hiddenOffset && region[1] <= hiddenCutoff)
{
- hiddenColumns.addElement(new int[]
+ hiddenColumns.add(new int[]
{ region[0] - hiddenOffset, region[1] - hiddenOffset });
}
}
if (Desktop.jalviewClipboard != null
&& Desktop.jalviewClipboard[2] != null)
{
- Vector hc = (Vector) Desktop.jalviewClipboard[2];
- for (int i = 0; i < hc.size(); i++)
+ List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
+ for (int[] region : hc)
{
- int[] region = (int[]) hc.elementAt(i);
af.viewport.hideColumns(region[0], region[1]);
}
}
// >>>This is a fix for the moment, until a better solution is
// found!!<<<
- af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer()
+ af.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
.transferSettings(
- alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
+ alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer());
// TODO: maintain provenance of an alignment, rather than just make the
// title a concatenation of operations.
if (Desktop.jalviewClipboard != null
&& Desktop.jalviewClipboard[2] != null)
{
- Vector hc = (Vector) Desktop.jalviewClipboard[2];
- for (int i = 0; i < hc.size(); i++)
+ List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
+ for (int region[] : hc)
{
- int[] region = (int[]) hc.elementAt(i);
af.viewport.hideColumns(region[0], region[1]);
}
}
// >>>This is a fix for the moment, until a better solution is
// found!!<<<
- af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer()
+ af.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
.transferSettings(
- alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
+ alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer());
// TODO: maintain provenance of an alignment, rather than just make the
// title a concatenation of operations.
{
if (viewport.cursorMode)
{
- alignPanel.seqPanel.keyboardNo1 = null;
- alignPanel.seqPanel.keyboardNo2 = null;
+ alignPanel.getSeqPanel().keyboardNo1 = null;
+ alignPanel.getSeqPanel().keyboardNo2 = null;
}
viewport.setSelectionGroup(null);
viewport.getColumnSelection().clear();
viewport.setSelectionGroup(null);
- alignPanel.seqPanel.seqCanvas.highlightSearchResults(null);
- alignPanel.idPanel.idCanvas.searchResults = null;
+ alignPanel.getSeqPanel().seqCanvas.highlightSearchResults(null);
+ alignPanel.getIdPanel().getIdCanvas().searchResults = null;
alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
viewport.sendSelection();
addHistoryItem(removeGapCols);
statusBar.setText(MessageManager.formatMessage(
- "label.removed_empty_columns", new String[]
+ "label.removed_empty_columns", new Object[]
{ Integer.valueOf(removeGapCols.getSize()).toString() }));
// This is to maintain viewport position on first residue
{
viewport.setShowJVSuffix(seqLimits.isSelected());
- alignPanel.idPanel.idCanvas.setPreferredSize(alignPanel
+ alignPanel.getIdPanel().getIdCanvas().setPreferredSize(alignPanel
.calculateIdWidth());
alignPanel.paintAlignment(true);
}
@Override
public void idRightAlign_actionPerformed(ActionEvent e)
{
- viewport.rightAlignIds = idRightAlign.isSelected();
+ viewport.setRightAlignIds(idRightAlign.isSelected());
alignPanel.paintAlignment(true);
}
if (viewport.followHighlight = this.followHighlightMenuItem.getState())
{
alignPanel.scrollToPosition(
- alignPanel.seqPanel.seqCanvas.searchResults, false);
+ alignPanel.getSeqPanel().seqCanvas.searchResults, false);
}
}
{
viewport.setShowSequenceFeaturesHeight(showSeqFeaturesHeight
.isSelected());
- if (viewport.getShowSequenceFeaturesHeight())
+ if (viewport.isShowSequenceFeaturesHeight())
{
// ensure we're actually displaying features
viewport.setShowSequenceFeatures(true);
StringBuffer contents = new AlignmentProperties(viewport.getAlignment())
.formatAsHtml();
editPane.setText(MessageManager.formatMessage("label.html_content",
- new String[]
+ new Object[]
{ contents.toString() }));
JInternalFrame frame = new JInternalFrame();
frame.getContentPane().add(new JScrollPane(editPane));
- Desktop.instance.addInternalFrame(frame, MessageManager.formatMessage(
- "label.alignment_properties", new String[]
+ Desktop.addInternalFrame(frame, MessageManager.formatMessage(
+ "label.alignment_properties", new Object[]
{ getTitle() }), 500, 400);
}
OverviewPanel overview = new OverviewPanel(alignPanel);
frame.setContentPane(overview);
Desktop.addInternalFrame(frame, MessageManager.formatMessage(
- "label.overview_params", new String[]
+ "label.overview_params", new Object[]
{ this.getTitle() }), frame.getWidth(), frame.getHeight());
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
}
@Override
+ public void annotationColumn_actionPerformed(ActionEvent e)
+ {
+ new AnnotationColumnChooser(viewport, alignPanel);
+ }
+
+ @Override
public void rnahelicesColour_actionPerformed(ActionEvent e)
{
new RNAHelicesColourChooser(viewport, alignPanel);
public void addSortByOrderMenuItem(String title,
final AlignmentOrder order)
{
- final JMenuItem item = new JMenuItem(MessageManager.formatMessage("action.by_title_param", new String[]{title}));
+ final JMenuItem item = new JMenuItem(MessageManager.formatMessage("action.by_title_param", new Object[]{title}));
sort.add(item);
item.addActionListener(new java.awt.event.ActionListener()
{
} catch (Exception e)
{
}
- ;
}
final AlignFrame me = this;
buildingMenu = true;
.debug("Exception during web service menu building process.",
e);
}
- ;
}
});
} catch (Exception e)
{
}
- ;
-
buildingMenu = false;
}
}).start();
public void run()
{
final long sttime = System.currentTimeMillis();
- ths.setProgressBar(MessageManager.formatMessage("status.searching_for_sequences_from", new String[]{fsrc}), sttime);
+ ths.setProgressBar(MessageManager.formatMessage("status.searching_for_sequences_from", new Object[]{fsrc}), sttime);
try
{
Alignment ds = ths.getViewport().getAlignment().getDataset(); // update
jalview.bin.Cache.log.error("Error when finding crossreferences",
e);
}
- ths.setProgressBar(MessageManager.formatMessage("status.finished_searching_for_sequences_from", new String[]{fsrc}),
+ ths.setProgressBar(MessageManager.formatMessage("status.finished_searching_for_sequences_from", new Object[]{fsrc}),
sttime);
}
{
AlignFrame af = new AlignFrame(al, DEFAULT_WIDTH, DEFAULT_HEIGHT);
Desktop.addInternalFrame(af, MessageManager.formatMessage(
- "label.translation_of_params", new String[]
+ "label.translation_of_params", new Object[]
{ this.getTitle() }), DEFAULT_WIDTH, DEFAULT_HEIGHT);
// enable next line for linked editing
// viewport.getStructureSelectionManager().addCommandListener(viewport);
try
{
featuresFile = new FeaturesFile(file, type).parse(viewport
- .getAlignment().getDataset(), alignPanel.seqPanel.seqCanvas
- .getFeatureRenderer().featureColours, false,
+ .getAlignment().getDataset(), alignPanel.getSeqPanel().seqCanvas
+ .getFeatureRenderer().getFeatureColours(), false,
jalview.bin.Cache.getDefault("RELAXEDSEQIDMATCHING", false));
} catch (Exception ex)
{
if (featuresFile)
{
- viewport.showSequenceFeatures = true;
+ viewport.setShowSequenceFeatures(true);
showSeqFeatures.setSelected(true);
- if (alignPanel.seqPanel.seqCanvas.fr != null)
+ if (alignPanel.getSeqPanel().seqCanvas.fr != null)
{
// update the min/max ranges where necessary
- alignPanel.seqPanel.seqCanvas.fr.findAllFeatures(true);
+ alignPanel.getSeqPanel().seqCanvas.fr.findAllFeatures(true);
}
if (featureSettings != null)
{
MessageManager
.formatMessage(
"label.automatically_associate_pdb_files_with_sequences_same_name",
- new String[]
+ new Object[]
{ Integer.valueOf(
filesmatched
.size())
"<html>"+MessageManager
.formatMessage(
"label.ignore_unmatched_dropped_files_info",
- new String[]
+ new Object[]
{ Integer.valueOf(
filesnotmatched
.size())
// try to parse as annotation.
boolean isAnnotation = (format == null || format
.equalsIgnoreCase("PFAM")) ? new AnnotationFile()
- .readAnnotationFile(viewport.getAlignment(), file, protocol)
+ .annotateAlignmentView(viewport, file, protocol)
: false;
if (!isAnnotation)
{
jalview.io.JPredFile predictions = new jalview.io.JPredFile(
file, protocol);
- new JnetAnnotationMaker().add_annotation(predictions,
+ new JnetAnnotationMaker();
+ JnetAnnotationMaker.add_annotation(predictions,
viewport.getAlignment(), 0, false);
isAnnotation = true;
}
}
});
- fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.fetch_retrieve_from", new String[]{src.getDbName()})));
+ fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.fetch_retrieve_from", new Object[]{src.getDbName()})));
dfetch.add(fetchr);
comp++;
}
// fetch all entry
DbSourceProxy src = otherdb.get(0);
fetchr = new JMenuItem(MessageManager.formatMessage(
- "label.fetch_all_param", new String[]
+ "label.fetch_all_param", new Object[]
{ src.getDbSource() }));
fetchr.addActionListener(new ActionListener()
{
}
});
- fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.fetch_retrieve_from_all_sources", new String[]{Integer.valueOf(otherdb.size()).toString(), src.getDbSource(), src.getDbName()})));
+ fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.fetch_retrieve_from_all_sources", new Object[]{Integer.valueOf(otherdb.size()).toString(), src.getDbSource(), src.getDbName()})));
dfetch.add(fetchr);
comp++;
// and then build the rest of the individual menus
- ifetch = new JMenu(MessageManager.formatMessage("label.source_from_db_source", new String[]{src.getDbSource()}));
+ ifetch = new JMenu(MessageManager.formatMessage("label.source_from_db_source", new Object[]{src.getDbSource()}));
icomp = 0;
String imname = null;
int i = 0;
0, 10) + "..." : dbname;
if (imname == null)
{
- imname = MessageManager.formatMessage("label.from_msname", new String[]{sname});
+ imname = MessageManager.formatMessage("label.from_msname", new Object[]{sname});
}
fetchr = new JMenuItem(msname);
final DbSourceProxy[] dassrc =
});
fetchr.setToolTipText("<html>"
- + MessageManager.formatMessage("label.fetch_retrieve_from", new String[]{dbname}));
+ + MessageManager.formatMessage("label.fetch_retrieve_from", new Object[]{dbname}));
ifetch.add(fetchr);
++i;
if (++icomp >= mcomp || i == (otherdb.size()))
alignPanel.paintAlignment(true);
}
}
+ public void clearAlignmentSeqRep()
+ {
+ // TODO refactor alignmentseqrep to controller
+ if (viewport.getAlignment().hasSeqrep()) {
+ viewport.getAlignment().setSeqrep(null);
+ PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+ alignPanel.updateAnnotation();
+ alignPanel.paintAlignment(true);
+ }
+ }
@Override
protected void createGroup_actionPerformed(ActionEvent e)