/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
- *
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ *
* This file is part of Jalview.
- *
+ *
* Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
+ * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
*/
package jalview.gui;
import jalview.schemes.TurnColourScheme;
import jalview.schemes.UserColourScheme;
import jalview.schemes.ZappoColourScheme;
+import jalview.util.MessageManager;
import jalview.ws.jws1.Discoverer;
import jalview.ws.jws2.Jws2Discoverer;
import jalview.ws.seqfetcher.DbSourceProxy;
/**
* DOCUMENT ME!
- *
+ *
* @author $author$
* @version $Revision$
*/
/**
* Creates a new AlignFrame object with specific width and height.
- *
+ *
* @param al
* @param width
* @param height
/**
* Creates a new AlignFrame object with specific width, height and
* sequenceSetId
- *
+ *
* @param al
* @param width
* @param height
/**
* Creates a new AlignFrame object with specific width, height and
* sequenceSetId
- *
+ *
* @param al
* @param width
* @param height
/**
* new alignment window with hidden columns
- *
+ *
* @param al
* AlignmentI
* @param hiddenColumns
/**
* Create alignment frame for al with hiddenColumns, a specific width and
* height, and specific sequenceId
- *
+ *
* @param al
* @param hiddenColumns
* @param width
/**
* Create alignment frame for al with hiddenColumns, a specific width and
* height, and specific sequenceId
- *
+ *
* @param al
* @param hiddenColumns
* @param width
/**
* Make a new AlignFrame from exisiting alignmentPanels
- *
+ *
* @param ap
* AlignmentPanel
* @param av
/**
* Change the filename and format for the alignment, and enable the 'reload'
* button functionality.
- *
+ *
* @param file
* valid filename
* @param format
case KeyEvent.VK_F2:
viewport.cursorMode = !viewport.cursorMode;
- statusBar.setText("Keyboard editing mode is "
- + (viewport.cursorMode ? "on" : "off"));
+ statusBar.setText(MessageManager.formatMessage("label.keyboard_editing_mode", new String[]{(viewport.cursorMode ? "on" : "off")}));
if (viewport.cursorMode)
{
alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes;
/**
* Need to call this method when tabs are selected for multiple views, or when
* loading from Jalview2XML.java
- *
+ *
* @param av
* AlignViewport
*/
updateEditMenuBar();
}
+ // methods for implementing IProgressIndicator
+ // need to refactor to a reusable stub class
Hashtable progressBars, progressBarHandlers;
/*
* (non-Javadoc)
- *
+ *
* @see jalview.gui.IProgressIndicator#setProgressBar(java.lang.String, long)
*/
@Override
final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
if (handler.canCancel())
{
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
final IProgressIndicator us = this;
cancel.addActionListener(new ActionListener()
{
}
/**
- *
+ *
* @return true if any progress bars are still active
*/
+ @Override
public boolean operationInProgress()
{
if (progressBars != null && progressBars.size() > 0)
for (int i = 0; i < frames.length; i++)
{
if (frames[i] instanceof AlignFrame && frames[i] != this
+ && ((AlignFrame) frames[i]).fileName != null
&& ((AlignFrame) frames[i]).fileName.equals(fileName))
{
try
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
success = new Jalview2XML().SaveAlignment(this, file, shortName);
- statusBar.setText("Successfully saved to file: " + fileName + " in "
- + format + " format.");
+ statusBar.setText(MessageManager.formatMessage("label.successfully_saved_to_file_in_format",new String[]{fileName, format}));
+
}
else
}
}
FormatAdapter f = new FormatAdapter();
- String output = f.formatSequences(
- format,
+ String output = f.formatSequences(format,
viewport.getAlignment(), // class cast exceptions will
// occur in the distant future
omitHidden, f.getCacheSuffixDefault(format),
out.print(output);
out.close();
this.setTitle(file);
- statusBar.setText("Successfully saved to file: " + fileName
- + " in " + format + " format.");
+ statusBar.setText(MessageManager.formatMessage("label.successfully_saved_to_file_in_format",new String[]{fileName, format}));
} catch (Exception ex)
{
success = false;
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* Close the current view or all views in the alignment frame. If the frame
* only contains one view then the alignment will be removed from memory.
- *
+ *
* @param closeAllTabs
*/
@Override
/**
* close alignPanel2 and shuffle tabs appropriately.
- *
+ *
* @param alignPanel2
*/
public void closeView(AlignmentPanel alignPanel2)
{
undoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.historyList.peek();
- undoMenuItem.setText("Undo " + command.getDescription());
+ undoMenuItem.setText(MessageManager.formatMessage("label.undo_command", new String[]{command.getDescription()}));
}
else
{
undoMenuItem.setEnabled(false);
- undoMenuItem.setText("Undo");
+ undoMenuItem.setText(MessageManager.getString("action.undo"));
}
if (viewport.redoList.size() > 0)
redoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.redoList.peek();
- redoMenuItem.setText("Redo " + command.getDescription());
+ redoMenuItem.setText(MessageManager.formatMessage("label.redo_command", new String[]{command.getDescription()}));
}
else
{
redoMenuItem.setEnabled(false);
- redoMenuItem.setText("Redo");
+ redoMenuItem.setText(MessageManager.getString("action.redo"));
}
}
}
/**
- *
+ *
* @return alignment objects for all views
*/
AlignmentI[] getViewAlignments()
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param up
* DOCUMENT ME!
*/
{
return;
}
- viewport.getAlignment().moveSelectedSequencesByOne(sg, viewport.getHiddenRepSequences(), up);
+ viewport.getAlignment().moveSelectedSequencesByOne(sg,
+ viewport.getHiddenRepSequences(), up);
alignPanel.paintAlignment(true);
}
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
Desktop.jalviewClipboard = new Object[]
{ seqs, viewport.getAlignment().getDataset(), hiddenColumns };
- statusBar.setText("Copied " + seqs.length + " sequences to clipboard.");
+ statusBar.setText(MessageManager.formatMessage("label.copied_sequences_to_clipboard", new String[]{Integer.valueOf(seqs.length).toString()}));
}
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* Paste contents of Jalview clipboard
- *
+ *
* @param newAlignment
* true to paste to a new alignment, otherwise add to this.
*/
}
int alwidth = 0;
+ ArrayList<Integer> newGraphGroups = new ArrayList<Integer>();
+ int fgroup = -1;
if (newAlignment)
{
{
newDs.clear(); // tidy up
}
+ if (alignment.getAlignmentAnnotation() != null)
+ {
+ for (AlignmentAnnotation alan : alignment
+ .getAlignmentAnnotation())
+ {
+ if (alan.graphGroup > fgroup)
+ {
+ fgroup = alan.graphGroup;
+ }
+ }
+ }
if (pastedal.getAlignmentAnnotation() != null)
{
// Add any annotation attached to alignment.
if (alann[i].sequenceRef == null && !alann[i].autoCalculated)
{
AlignmentAnnotation newann = new AlignmentAnnotation(alann[i]);
+ if (newann.graphGroup > -1)
+ {
+ if (newGraphGroups.size() <= newann.graphGroup
+ || newGraphGroups.get(newann.graphGroup) == null)
+ {
+ for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++)
+ {
+ newGraphGroups.add(q, null);
+ }
+ newGraphGroups.set(newann.graphGroup, new Integer(
+ ++fgroup));
+ }
+ newann.graphGroup = newGraphGroups.get(newann.graphGroup)
+ .intValue();
+ }
+
newann.padAnnotation(alwidth);
alignment.addAnnotation(newann);
}
{
if (sequences[i].getAnnotation() != null)
{
+ AlignmentAnnotation newann;
for (int a = 0; a < sequences[i].getAnnotation().length; a++)
{
annotationAdded = true;
- sequences[i].getAnnotation()[a].adjustForAlignment();
- sequences[i].getAnnotation()[a].padAnnotation(alwidth);
+ newann = sequences[i].getAnnotation()[a];
+ newann.adjustForAlignment();
+ newann.padAnnotation(alwidth);
+ if (newann.graphGroup > -1)
+ {
+ if (newann.graphGroup > -1)
+ {
+ if (newGraphGroups.size() <= newann.graphGroup
+ || newGraphGroups.get(newann.graphGroup) == null)
+ {
+ for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++)
+ {
+ newGraphGroups.add(q, null);
+ }
+ newGraphGroups.set(newann.graphGroup, new Integer(
+ ++fgroup));
+ }
+ newann.graphGroup = newGraphGroups.get(newann.graphGroup)
+ .intValue();
+ }
+ }
alignment.addAnnotation(sequences[i].getAnnotation()[a]); // annotation
// was
// duplicated
newann.padAnnotation(avwidth);
alview[avnum].addAnnotation(newann); // annotation was
// duplicated earlier
+ // TODO JAL-1145 graphGroups are not updated for sequence
+ // annotation added to several views. This may cause
+ // strangeness
alview[avnum].setAnnotationIndex(newann, a);
}
}
}
viewport.firePropertyChange("alignment", null,
alignment.getSequences());
+ if (alignPanels != null)
+ {
+ for (AlignmentPanel ap : ((Vector<AlignmentPanel>) alignPanels))
+ {
+ ap.validateAnnotationDimensions(false);
+ }
+ }
+ else
+ {
+ alignPanel.validateAnnotationDimensions(false);
+ }
}
else
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
viewport.getSelectionGroup());
}
- statusBar.setText("Removed " + trimRegion.getSize() + " columns.");
+ statusBar.setText(MessageManager.formatMessage("label.removed_columns", new String[]{Integer.valueOf(trimRegion.getSize()).toString()}));
addHistoryItem(trimRegion);
- for (SequenceGroup sg :viewport.getAlignment().getGroups())
+ for (SequenceGroup sg : viewport.getAlignment().getGroups())
{
if ((trimLeft && !sg.adjustForRemoveLeft(column))
|| (!trimLeft && !sg.adjustForRemoveRight(column)))
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
addHistoryItem(removeGapCols);
- statusBar.setText("Removed " + removeGapCols.getSize()
- + " empty columns.");
+ statusBar.setText(MessageManager.formatMessage("label.removed_empty_columns", new String[]{Integer.valueOf(removeGapCols.getSize()).toString()}));
// This is to maintain viewport position on first residue
// of first sequence
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
}
/**
- *
+ *
* @param copyAnnotation
* if true then duplicate all annnotation, groups and settings
* @return new alignment panel, already displayed.
}
/**
- *
+ *
* @param viewTitle
* title of newly created view
* @return new alignment panel, already displayed.
}
/**
- *
+ *
* @param viewTitle
* title of newly created view
* @param copyAnnotation
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/*
* (non-Javadoc)
- *
+ *
* @see jalview.jbgui.GAlignFrame#followHighlight_actionPerformed()
*/
@Override
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* called by key handler and the hide all/show all menu items
- *
+ *
* @param toggleSeqs
* @param toggleCols
*/
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#hideAllButSelection_actionPerformed(java.awt.
* event.ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#hideAllSelection_actionPerformed(java.awt.event
* .ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showAllhidden_actionPerformed(java.awt.event.
* ActionEvent)
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* Set or clear 'Show Sequence Features'
- *
+ *
* @param evt
* DOCUMENT ME!
*/
/**
* Set or clear 'Show Sequence Features'
- *
+ *
* @param evt
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
editPane.setEditable(false);
StringBuffer contents = new AlignmentProperties(viewport.getAlignment())
.formatAsHtml();
- editPane.setText("<html>" + contents.toString() + "</html>");
+ editPane.setText(MessageManager.formatMessage("label.html_content", new String[]{contents.toString()}));
JInternalFrame frame = new JInternalFrame();
frame.getContentPane().add(new JScrollPane(editPane));
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
@Override
public void clustalColour_actionPerformed(ActionEvent e)
{
- changeColour(new ClustalxColourScheme(viewport.getAlignment(), viewport.getHiddenRepSequences()));
+ changeColour(new ClustalxColourScheme(viewport.getAlignment(),
+ viewport.getHiddenRepSequences()));
}
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param cs
* DOCUMENT ME!
*/
if (viewport.getColourAppliesToAllGroups())
{
-
- for (SequenceGroup sg:viewport.getAlignment().getGroups())
+ for (SequenceGroup sg : viewport.getAlignment().getGroups())
{
if (cs == null)
{
if (cs instanceof ClustalxColourScheme)
{
- sg.cs = new ClustalxColourScheme(sg, viewport
- .getHiddenRepSequences());
+ sg.cs = new ClustalxColourScheme(sg,
+ viewport.getHiddenRepSequences());
}
else if (cs instanceof UserColourScheme)
{
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* DOCUMENT ME!
- *
+ *
* @param type
* DOCUMENT ME!
* @param pwType
{
TreePanel tp;
- if (viewport.getSelectionGroup() != null)
+ if (viewport.getSelectionGroup() != null
+ && viewport.getSelectionGroup().getSize() > 0)
{
if (viewport.getSelectionGroup().getSize() < 3)
{
SequenceGroup sg = viewport.getSelectionGroup();
/* Decide if the selection is a column region */
- for (SequenceI _s:sg.getSequences())
+ for (SequenceI _s : sg.getSequences())
{
- if (_s.getLength() < sg
- .getEndRes())
+ if (_s.getLength() < sg.getEndRes())
{
JOptionPane
.showMessageDialog(
/**
* DOCUMENT ME!
- *
+ *
* @param title
* DOCUMENT ME!
* @param order
/**
* Add a new sort by annotation score menu item
- *
+ *
* @param sort
* the menu to add the option to
* @param scoreLabel
* search the alignment and rebuild the sort by annotation score submenu the
* last alignment annotation vector hash is stored to minimize cost of
* rebuilding in subsequence calls.
- *
+ *
*/
@Override
public void buildSortByAnnotationScoresMenu()
// almost certainly a quicker way to do this - but we keep it simple
Hashtable scoreSorts = new Hashtable();
AlignmentAnnotation aann[];
- for (SequenceI sqa:viewport.getAlignment().getSequences())
+ for (SequenceI sqa : viewport.getAlignment().getSequences())
{
aann = sqa.getAnnotation();
for (int i = 0; aann != null && i < aann.length; i++)
* call. Listeners are added to remove the menu item when the treePanel is
* closed, and adjust the tree leaf to sequence mapping when the alignment is
* modified.
- *
+ *
* @param treePanel
* Displayed tree window.
* @param title
/**
* Work out whether the whole set of sequences or just the selected set will
* be submitted for multiple alignment.
- *
+ *
*/
public jalview.datamodel.AlignmentView gatherSequencesForAlignment()
{
/*
* SequenceGroup seqs = viewport.getSelectionGroup(); int sz; msa = new
* SequenceI[sz = seqs.getSize(false)];
- *
+ *
* for (int i = 0; i < sz; i++) { msa[i] = (SequenceI)
* seqs.getSequenceAt(i); }
*/
{
/*
* Vector seqs = viewport.getAlignment().getSequences();
- *
+ *
* if (seqs.size() > 1) { msa = new SequenceI[seqs.size()];
- *
+ *
* for (int i = 0; i < seqs.size(); i++) { msa[i] = (SequenceI)
* seqs.elementAt(i); } }
*/
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
/**
* Add a treeviewer for the tree extracted from a newick file object to the
* current alignment view
- *
+ *
* @param nf
* the tree
* @param title
/**
* Generates menu items and listener event actions for web service clients
- *
+ *
*/
public void BuildWebServiceMenu()
{
"Secondary Structure Prediction");
final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
final JMenu analymenu = new JMenu("Analysis");
- final JMenu dismenu = new JMenu("Disorder");
+ final JMenu dismenu = new JMenu("Protein Disorder");
// JAL-940 - only show secondary structure prediction services from
// the legacy server
if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
}
} catch (Exception e)
{
+ Cache.log
+ .debug("Exception during web service menu building process.",
+ e);
}
;
}
/**
* construct any groupURL type service menu entries.
- *
+ *
* @param webService
*/
private void build_urlServiceMenu(JMenu webService)
/*
* JMenuItem testAlView = new JMenuItem("Test AlignmentView"); final
* AlignFrame af = this; testAlView.addActionListener(new ActionListener() {
- *
+ *
* @Override public void actionPerformed(ActionEvent e) {
* jalview.datamodel.AlignmentView
* .testSelectionViews(af.viewport.getAlignment(),
* af.viewport.getColumnSelection(), af.viewport.selectionGroup); }
- *
+ *
* }); webService.add(testAlView);
*/
// TODO: refactor to RestClient discoverer and merge menu entries for
* public void vamsasStore_actionPerformed(ActionEvent e) { JalviewFileChooser
* chooser = new JalviewFileChooser(jalview.bin.Cache.
* getProperty("LAST_DIRECTORY"));
- *
+ *
* chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Export
* to Vamsas file"); chooser.setToolTipText("Export");
- *
+ *
* int value = chooser.showSaveDialog(this);
- *
+ *
* if (value == JalviewFileChooser.APPROVE_OPTION) {
* jalview.io.VamsasDatastore vs = new jalview.io.VamsasDatastore(viewport);
* //vs.store(chooser.getSelectedFile().getAbsolutePath() ); vs.storeJalview(
*/
/**
* prototype of an automatically enabled/disabled analysis function
- *
+ *
*/
protected void setShowProductsEnabled()
{
/**
* search selection for sequence xRef products and build the show products
* menu.
- *
+ *
* @param selection
* @param dataset
* @return true if showProducts menu should be enabled.
} catch (Exception ex)
{
al = null;
- jalview.bin.Cache.log.debug("Exception during translation.", ex);
+ jalview.bin.Cache.log.error("Exception during translation. Please report this !", ex);
+ JOptionPane
+ .showMessageDialog(
+ Desktop.desktop,
+ "Unfortunately, something went wrong when translating your sequences.\nPlease take a look in the Jalview java console\nand submit a bug report including the stacktrace.",
+ "Implementation error: Translation Failed", JOptionPane.ERROR_MESSAGE);
+ return;
}
if (al == null)
{
/**
* Try to load a features file onto the alignment.
- *
+ *
* @param file
* contents or path to retrieve file
* @param type
* it's and Annotation file, then a JNet file, and finally a features file. If
* all are false then the user may have dropped an alignment file onto this
* AlignFrame.
- *
+ *
* @param file
* either a filename or a URL string.
*/
tcoffeeColour.setSelected(true);
changeColour(new TCoffeeColourScheme(viewport.getAlignment()));
isAnnotation = true;
- statusBar
- .setText("Successfully pasted T-Coffee scores to alignment.");
+ statusBar.setText(MessageManager.getString("label.successfully_pasted_tcoffee_scores_to_alignment"));
}
else
{
- // some problem - if no warning its probable that the ID matching process didn't work
- JOptionPane.showMessageDialog(Desktop.desktop,
- tcf.getWarningMessage()==null ? "Check that the file matches sequence IDs in the alignment." : tcf.getWarningMessage(),
- "Problem reading T-COFFEE score file",
- JOptionPane.WARNING_MESSAGE);
+ // some problem - if no warning its probable that the ID matching
+ // process didn't work
+ JOptionPane
+ .showMessageDialog(
+ Desktop.desktop,
+ tcf.getWarningMessage() == null ? MessageManager.getString("label.check_file_matches_sequence_ids_alignment")
+ : tcf.getWarningMessage(),
+ MessageManager.getString("label.problem_reading_tcoffee_score_file"),
+ JOptionPane.WARNING_MESSAGE);
}
}
else
}
} catch (Exception x)
{
- Cache.log.debug("Exception when processing data source as T-COFFEE score file",x);
+ Cache.log
+ .debug("Exception when processing data source as T-COFFEE score file",
+ x);
tcf = null;
}
if (tcf == null)
{
/*
* if (format.equalsIgnoreCase("PDB")) {
- *
+ *
* String pdbfn = ""; // try to match up filename with sequence id
* try { if (protocol == jalview.io.FormatAdapter.FILE) { File fl =
* new File(file); pdbfn = fl.getName(); } else if (protocol ==
} catch (Exception ex)
{
ex.printStackTrace();
+ } catch (OutOfMemoryError oom)
+ {
+ try
+ {
+ System.gc();
+ } catch (Exception x)
+ {
+ }
+ ;
+ new OOMWarning(
+ "loading data "
+ + (protocol != null ? (protocol.equals(FormatAdapter.PASTE) ? "from clipboard."
+ : "using " + protocol + " from " + file)
+ : ".")
+ + (format != null ? "(parsing as '" + format
+ + "' file)" : ""), oom, Desktop.desktop);
}
}
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showDbRefs_actionPerformed(java.awt.event.ActionEvent
* )
/*
* (non-Javadoc)
- *
+ *
* @seejalview.jbgui.GAlignFrame#showNpFeats_actionPerformed(java.awt.event.
* ActionEvent)
*/
/**
* find the viewport amongst the tabs in this alignment frame and close that
* tab
- *
+ *
* @param av
*/
public boolean closeView(AlignViewport av)
++i;
if (++icomp >= mcomp || i == (otherdb.size()))
{
- ifetch.setText(imname + " to '" + sname + "'");
+ ifetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{imname,sname}));
dfetch.add(ifetch);
ifetch = new JMenu();
imname = null;
++dbi;
if (comp >= mcomp || dbi >= (dbclasses.length))
{
- dfetch.setText(mname + " to '" + dbclass + "'");
+ dfetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{mname,dbclass}));
rfetch.add(dfetch);
dfetch = new JMenu();
mname = null;
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showUnconservedMenuItem_actionPerformed(java.
* awt.event.ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showGroupConsensus_actionPerformed(java.awt.event
* .ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showGroupConservation_actionPerformed(java.awt
* .event.ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showConsensusHistogram_actionPerformed(java.awt
* .event.ActionEvent)
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#showConsensusProfile_actionPerformed(java.awt
* .event.ActionEvent)
@Override
protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
{
+ showSequenceLogo.setState(true);
+ viewport.setShowSequenceLogo(true);
viewport.setNormaliseSequenceLogo(normaliseSequenceLogo.getState());
alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
}
/*
* (non-Javadoc)
- *
+ *
* @see
* jalview.jbgui.GAlignFrame#makeGrpsFromSelection_actionPerformed(java.awt
* .event.ActionEvent)
Color col = new Color((int) (Math.random() * 255),
(int) (Math.random() * 255), (int) (Math.random() * 255));
col = col.brighter();
- for (SequenceI s:gps[g].getSequences())
- viewport.setSequenceColour(
- s, col)
- ;
+ for (SequenceI s : gps[g].getSequences())
+ viewport.setSequenceColour(s, col);
}
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
/**
* make the given alignmentPanel the currently selected tab
- *
+ *
* @param alignmentPanel
*/
public void setDisplayedView(AlignmentPanel alignmentPanel)