/*
- * 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
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
*
* This file is part of Jalview.
*
* 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
import jalview.analysis.AAFrequency;
import jalview.analysis.AlignmentSorter;
+import jalview.analysis.AlignmentUtils;
import jalview.analysis.Conservation;
import jalview.analysis.CrossRef;
import jalview.analysis.NJTree;
import jalview.analysis.ParseProperties;
import jalview.analysis.SequenceIdMatcher;
+import jalview.api.AlignViewControllerGuiI;
import jalview.api.AlignViewControllerI;
+import jalview.api.analysis.ScoreModelI;
import jalview.bin.Cache;
import jalview.commands.CommandI;
import jalview.commands.EditCommand;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
-import java.awt.Color;
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.util.Vector;
import javax.swing.JButton;
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
* @version $Revision$
*/
public class AlignFrame extends GAlignFrame implements DropTargetListener,
- IProgressIndicator
+ IProgressIndicator, AlignViewControllerGuiI
{
/** DOCUMENT ME!! */
*/
void init()
{
- avc = new jalview.controller.AlignViewController(viewport, alignPanel);
+ avc = new jalview.controller.AlignViewController(this, viewport, alignPanel);
if (viewport.getAlignmentConservationAnnotation() == null)
{
BLOSUM62Colour.setEnabled(false);
setMenusFromViewport(viewport);
buildSortByAnnotationScoresMenu();
+ buildTreeMenu();
if (viewport.wrapAlignment)
{
wrapMenuItem_actionPerformed(null);
public void addAlignmentPanel(final AlignmentPanel ap, boolean newPanel)
{
ap.alignFrame = this;
- avc = new jalview.controller.AlignViewController(viewport, alignPanel);
+ avc = new jalview.controller.AlignViewController(this, viewport, alignPanel);
alignPanels.addElement(ap);
return false;
}
+ @Override
+ public void setStatus(String text) {
+ statusBar.setText(text);
+ };
/*
* Added so Castor Mapping file can obtain Jalview Version
*/
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle("Save Alignment to file");
- chooser.setToolTipText("Save");
+ chooser.setToolTipText(MessageManager.getString("action.save"));\r
int value = chooser.showSaveDialog(this);
viewport.getAlignment(), omitHidden,
viewport.getColumnSelection()));
Desktop.addInternalFrame(cap,
- "Alignment output - " + e.getActionCommand(), 600, 500);
+ MessageManager.formatMessage("label.alignment_output_command", new String[]{e.getActionCommand()}), 600, 500);\r
} catch (OutOfMemoryError oom)
{
new OOMWarning("Outputting alignment as " + e.getActionCommand(), oom);
JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
- chooser.setDialogTitle("Load Jalview Annotations or Features File");
- chooser.setToolTipText("Load Jalview Annotations / Features file");
+ chooser.setDialogTitle(MessageManager.getString("label.load_jalview_annotations"));\r
+ chooser.setToolTipText(MessageManager.getString("label.load_jalview_annotations"));\r
int value = chooser.showOpenDialog(null);
}
}
+ @Override
+ protected void expand_newalign(ActionEvent e)
+ {
+ try {
+ AlignmentI alignment = AlignmentUtils.expandContext(getViewport().getAlignment(), -1);
+ AlignFrame af = new AlignFrame(alignment, DEFAULT_WIDTH,
+ DEFAULT_HEIGHT);
+ String newtitle = new String("Flanking alignment");
+ if (Desktop.jalviewClipboard != null
+ && Desktop.jalviewClipboard[2] != null)
+ {
+ Vector hc = (Vector) Desktop.jalviewClipboard[2];
+ for (int i = 0; i < hc.size(); i++)
+ {
+ 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()
+ .transferSettings(
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
+
+ // TODO: maintain provenance of an alignment, rather than just make the
+ // title a concatenation of operations.
+ {
+ if (title.startsWith("Copied sequences"))
+ {
+ newtitle = title;
+ }
+ else
+ {
+ newtitle = newtitle.concat("- from " + title);
+ }
+ }
+
+ Desktop.addInternalFrame(af, newtitle, DEFAULT_WIDTH,
+ DEFAULT_HEIGHT);
+
+ } catch (Exception ex)
+ {
+ ex.printStackTrace();
+ System.out.println("Exception whilst pasting: " + ex);
+ // could be anything being pasted in here
+ }
+ catch (OutOfMemoryError oom)
+ {
+ new OOMWarning("Viewing flanking region of alignment", oom);
+ }
+ }
/**
* DOCUMENT ME!
*
newap.av.viewName = newViewName;
addAlignmentPanel(newap, true);
-
+ newap.alignmentChanged();
+
if (alignPanels.size() == 2)
{
viewport.gatherViewsHere = true;
JInternalFrame frame = new JInternalFrame();
frame.getContentPane().add(new JScrollPane(editPane));
- Desktop.instance.addInternalFrame(frame, "Alignment Properties: "
- + getTitle(), 500, 400);
+ Desktop.instance.addInternalFrame(frame, MessageManager.formatMessage("label.alignment_properties", new String[]{getTitle()}), 500, 400);\r
}
/**
JInternalFrame frame = new JInternalFrame();
OverviewPanel overview = new OverviewPanel(alignPanel);
frame.setContentPane(overview);
- Desktop.addInternalFrame(frame, "Overview " + this.getTitle(),
+ Desktop.addInternalFrame(frame, MessageManager.formatMessage("label.overview_params", new String[]{this.getTitle()}),\r
frame.getWidth(), frame.getHeight());
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
{
threshold = SliderPanel.setPIDSliderSource(alignPanel, cs,
"Background");
-
cs.setThreshold(threshold, viewport.getIgnoreGapsConsensus());
-
- viewport.setGlobalColourScheme(cs);
}
else
{
@Override
public void userDefinedColour_actionPerformed(ActionEvent e)
{
- if (e.getActionCommand().equals("User Defined..."))
+ if (e.getActionCommand().equals(MessageManager.getString("action.user_defined")))\r
{
new UserDefinedColours(alignPanel, null);
}
{
JInternalFrame frame = new JInternalFrame();
frame.setContentPane(new PairwiseAlignPanel(viewport));
- Desktop.addInternalFrame(frame, "Pairwise Alignment", 600, 500);
+ Desktop.addInternalFrame(frame, MessageManager.getString("action.pairwise_alignment"), 600, 500);\r
}
}
@Override
public void buildTreeMenu()
{
+ calculateTree.removeAll();
+ // build the calculate menu
+
+ for (final String type:new String[] {"NJ", "AV"})
+ {
+ String treecalcnm = MessageManager.getString("label.tree_calc_"+type.toLowerCase());
+ for (final Object pwtype: ResidueProperties.scoreMatrices.keySet())
+ {
+ JMenuItem tm = new JMenuItem();
+ ScoreModelI sm = ResidueProperties.scoreMatrices.get(pwtype);
+ if (sm.isProtein()==!viewport.getAlignment().isNucleotide())
+ {
+ String smn = MessageManager.getStringOrReturn(
+ "label.score_model_", sm.getName());
+ final String title = MessageManager.formatMessage(
+ "label.treecalc_title", treecalcnm, smn);
+ tm.setText(title);//
+ tm.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ NewTreePanel(type, (String) pwtype, title);
+ }
+ });
+ calculateTree.add(tm);
+ }
+
+ }
+ }
sortByTreeMenu.removeAll();
Vector comps = (Vector) PaintRefresher.components.get(viewport
JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
- chooser.setDialogTitle("Select a newick-like tree file");
- chooser.setToolTipText("Load a tree file");
+ chooser.setDialogTitle(MessageManager.getString("label.select_newick_like_tree_file"));\r
+ chooser.setToolTipText(MessageManager.getString("label.load_tree_file"));\r
int value = chooser.showOpenDialog(null);
JvSwingUtils.findOrCreateMenu(webService, client.getAction()),
this);
}
-
- if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
- {
- jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(
- webService, this);
- }
}
/*
else
{
AlignFrame af = new AlignFrame(al, DEFAULT_WIDTH, DEFAULT_HEIGHT);
- Desktop.addInternalFrame(af, "Translation of " + this.getTitle(),
+ Desktop.addInternalFrame(af, MessageManager.formatMessage("label.translation_of_params", new String[]{this.getTitle()}),\r
DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
}
else
{
AlignFrame af = new AlignFrame(al, DEFAULT_WIDTH, DEFAULT_HEIGHT);
- Desktop.addInternalFrame(af, "Translation of " + this.getTitle(),
+ Desktop.addInternalFrame(af, MessageManager.formatMessage("label.translation_of_params", new String[]{this.getTitle()}),\r
DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
}
// TODO We probably want to store a sequence database checklist in
// preferences and have checkboxes.. rather than individual sources selected
// here
- final JMenu rfetch = new JMenu("Fetch DB References");
- rfetch.setToolTipText("Retrieve and parse sequence database records for the alignment or the currently selected sequences");
+ final JMenu rfetch = new JMenu(MessageManager.getString("action.fetch_db_references"));\r
+ rfetch.setToolTipText(MessageManager.getString("label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences"));\r
webService.add(rfetch);
- JMenuItem fetchr = new JMenuItem("Standard Databases");
- fetchr.setToolTipText("Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources");
+ final JCheckBoxMenuItem trimrs = new JCheckBoxMenuItem(MessageManager.getString("option.trim_retrieved_seqs"));
+ trimrs.setToolTipText(MessageManager.getString("label.trim_retrieved_sequences"));
+ trimrs.setSelected(Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true));
+ trimrs.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e) {
+ trimrs.setSelected(trimrs.isSelected());
+ Cache.setProperty("TRIM_FETCHED_DATASET_SEQS", Boolean.valueOf(trimrs.isSelected()).toString());
+ };
+ });
+ rfetch.add(trimrs);
+ JMenuItem fetchr = new JMenuItem(MessageManager.getString("label.standard_databases"));\r
+ fetchr.setToolTipText(MessageManager.getString("label.fetch_embl_uniprot"));\r
fetchr.addActionListener(new ActionListener()
{
.toArray(new DbSourceProxy[0]);
// fetch all entry
DbSourceProxy src = otherdb.get(0);
- fetchr = new JMenuItem("Fetch All '" + src.getDbSource()
- + "'");
+ fetchr = new JMenuItem(MessageManager.formatMessage("label.fetch_all_param", new String[]{src.getDbSource()}));\r
fetchr.addActionListener(new ActionListener()
{
@Override
++i;
if (++icomp >= mcomp || i == (otherdb.size()))
{
- ifetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{imname,sname}));
+ ifetch.setText(MessageManager.formatMessage("label.source_to_target",imname,sname));
dfetch.add(ifetch);
ifetch = new JMenu();
imname = null;
++dbi;
if (comp >= mcomp || dbi >= (dbclasses.length))
{
- dfetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{mname,dbclass}));
+ dfetch.setText(MessageManager.formatMessage("label.source_to_target",mname,dbclass));
rfetch.add(dfetch);
dfetch = new JMenu();
mname = null;