X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=d6dfd9dd5b83f7060bc007c2c5e41a936fa00b1e;hb=1750b2f1dcdb6e7de41d0ef7beda88dc3400afba;hp=2405bbde9774a3772fdee512995cfa91a76d9283;hpb=8e1be43e250107a4d86898bd554cf03098fa5957;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 2405bbd..d6dfd9d 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -67,6 +67,7 @@ import jalview.io.BioJsHTMLOutput; import jalview.io.DataSourceType; import jalview.io.FileFormat; import jalview.io.FileFormatI; +import jalview.io.FileFormats; import jalview.io.FileLoader; import jalview.io.FormatAdapter; import jalview.io.HtmlSvgOutput; @@ -81,7 +82,6 @@ import jalview.jbgui.GAlignFrame; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemes; import jalview.schemes.ResidueColourScheme; -import jalview.schemes.ResidueProperties; import jalview.schemes.TCoffeeColourScheme; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; @@ -118,6 +118,8 @@ import java.awt.print.PageFormat; import java.awt.print.PrinterJob; import java.beans.PropertyChangeEvent; import java.io.File; +import java.io.FileWriter; +import java.io.PrintWriter; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -357,7 +359,15 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, setMenusFromViewport(viewport); buildSortByAnnotationScoresMenu(); - buildTreeMenu(); + calculateTree.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + new TreeChooser(AlignFrame.this); + } + }); buildColourMenu(); if (Desktop.desktop != null) @@ -842,7 +852,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, showReverse.setVisible(nucleotide); showReverseComplement.setVisible(nucleotide); conservationMenuItem.setEnabled(!nucleotide); - modifyConservation.setEnabled(!nucleotide); + modifyConservation.setEnabled(!nucleotide + && conservationMenuItem.isSelected()); showGroupConservation.setEnabled(!nucleotide); showComplementMenuItem.setText(nucleotide ? MessageManager @@ -873,7 +884,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, padGapsMenuitem.setSelected(av.isPadGaps()); colourTextMenuItem.setSelected(av.isShowColourText()); abovePIDThreshold.setSelected(av.getAbovePIDThreshold()); + modifyPID.setEnabled(abovePIDThreshold.isSelected()); conservationMenuItem.setSelected(av.getConservationSelected()); + modifyConservation.setEnabled(conservationMenuItem.isSelected()); seqLimits.setSelected(av.getShowJVSuffix()); idRightAlign.setSelected(av.isRightAlignIds()); centreColumnLabelsMenuItem.setState(av.isCentreColumnLabels()); @@ -1094,7 +1107,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void saveAs_actionPerformed(ActionEvent e) { String format = currentFileFormat == null ? null : currentFileFormat - .toString(); + .getName(); JalviewFileChooser chooser = JalviewFileChooser.forWrite( Cache.getProperty("LAST_DIRECTORY"), format); @@ -1128,8 +1141,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, fileName = chooser.getSelectedFile().getPath(); - Cache.setProperty("DEFAULT_FILE_FORMAT", - currentFileFormat.toString()); + Cache.setProperty("DEFAULT_FILE_FORMAT", currentFileFormat.getName()); Cache.setProperty("LAST_DIRECTORY", fileName); saveAlignment(fileName, currentFileFormat); @@ -1159,17 +1171,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - // if (!jalview.io.AppletFormatAdapter.isValidFormat(format, true)) - // { - // warningMessage("Cannot save file " + fileName + " using format " - // + format, "Alignment output format not supported"); - // if (!Jalview.isHeadlessMode()) - // { - // saveAs_actionPerformed(null); - // } - // return false; - // } - AlignmentExportData exportData = getAlignmentForExport(format, viewport, null); if (exportData.getSettings().isCancelled()) @@ -1194,15 +1195,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { try { - java.io.PrintWriter out = new java.io.PrintWriter( - new java.io.FileWriter(file)); + PrintWriter out = new PrintWriter(new FileWriter(file)); out.print(output); out.close(); this.setTitle(file); statusBar.setText(MessageManager.formatMessage( "label.successfully_saved_to_file_in_format", - new Object[] { fileName, format })); + new Object[] { fileName, format.getName() })); } catch (Exception ex) { success = false; @@ -1247,8 +1247,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override protected void outputText_actionPerformed(ActionEvent e) { - - FileFormatI fileFormat = FileFormat.forName(e.getActionCommand()); + FileFormatI fileFormat = FileFormats.getInstance().forName( + e.getActionCommand()); AlignmentExportData exportData = getAlignmentForExport(fileFormat, viewport, null); if (exportData.getSettings().isCancelled()) @@ -1261,8 +1261,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { FileFormatI format = fileFormat; cap.setText(new FormatAdapter(alignPanel, exportData.getSettings()) - .formatSequences(format, - exportData.getAlignment(), + .formatSequences(format, exportData.getAlignment(), exportData.getOmitHidden(), exportData.getStartEndPostions(), viewport.getColumnSelection())); @@ -1853,8 +1852,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } String output = new FormatAdapter().formatSequences(FileFormat.Fasta, - seqs, - omitHidden, null); + seqs, omitHidden, null); StringSelection ss = new StringSelection(output); @@ -3307,11 +3305,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * colour scheme to all groups. If unchecked, groups may have their own * independent colour schemes. * + * @param selected */ @Override - protected void applyToAllGroups_actionPerformed() + public void applyToAllGroups_actionPerformed(boolean selected) { - viewport.setColourAppliesToAllGroups(applyToAllGroups.isSelected()); + viewport.setColourAppliesToAllGroups(selected); } /** @@ -3353,105 +3352,79 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (cs != null) { ColourMenuHelper.setColourSelected(colourMenu, cs.getSchemeName()); - // Make sure viewport is up to date w.r.t. any sliders - // ? not needed as handled by SliderPanel.valueChanged? -// if (viewport.getAbovePIDThreshold()) -// { - // int threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, -// "Background"); - //todo is threshold held in viewport style or in colour scheme? -// viewport.setThreshold(threshold); - // } - // - // if (viewport.getConservationSelected()) - // { - // cs.setConservationInc(SliderPanel.setConservationSlider(alignPanel, - // cs, "Background")); - // } } viewport.setGlobalColourScheme(cs); - if (viewport.getConservationSelected()) - { - int conservationInc = SliderPanel.getConservationValue(); - viewport.getViewportColourScheme() - .setConservationInc(conservationInc); - } alignPanel.paintAlignment(true); } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Show the PID threshold slider panel */ @Override protected void modifyPID_actionPerformed() { - if (viewport.getAbovePIDThreshold()) - { - SliderPanel.setPIDSliderSource(alignPanel, - viewport.getViewportColourScheme(), "Background"); - SliderPanel.showPIDSlider(); - } + SliderPanel.setPIDSliderSource(alignPanel, + viewport.getResidueShading(), alignPanel.getViewName()); + SliderPanel.showPIDSlider(); } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Show the Conservation slider panel */ @Override protected void modifyConservation_actionPerformed() { - if (viewport.getConservationSelected() - && viewport.getGlobalColourScheme() != null) - { - SliderPanel.setConservationSlider(alignPanel, - viewport.getViewportColourScheme(), "Background"); - SliderPanel.showConservationSlider(); - } + SliderPanel.setConservationSlider(alignPanel, + viewport.getResidueShading(), alignPanel.getViewName()); + SliderPanel.showConservationSlider(); } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Action on selecting or deselecting (Colour) By Conservation */ @Override - protected void conservationMenuItem_actionPerformed() + public void conservationMenuItem_actionPerformed(boolean selected) { - viewport.setConservationSelected(conservationMenuItem.isSelected()); - - viewport.setAbovePIDThreshold(false); - abovePIDThreshold.setSelected(false); + modifyConservation.setEnabled(selected); + viewport.setConservationSelected(selected); + viewport.getResidueShading().setConservationApplied(selected); changeColour(viewport.getGlobalColourScheme()); - - modifyConservation_actionPerformed(); + if (selected) + { + modifyConservation_actionPerformed(); + } + else + { + SliderPanel.hideConservationSlider(); + } } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Action on selecting or deselecting (Colour) Above PID Threshold */ @Override - public void abovePIDThreshold_actionPerformed() + public void abovePIDThreshold_actionPerformed(boolean selected) { - viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected()); - - conservationMenuItem.setSelected(false); - viewport.setConservationSelected(false); + modifyPID.setEnabled(selected); + viewport.setAbovePIDThreshold(selected); + if (!selected) + { + viewport.getResidueShading().setThreshold(0, + viewport.isIgnoreGapsConsensus()); + } changeColour(viewport.getGlobalColourScheme()); - - modifyPID_actionPerformed(); + if (selected) + { + modifyPID_actionPerformed(); + } + else + { + SliderPanel.hidePIDSlider(); + } } /** @@ -3614,54 +3587,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, /** * DOCUMENT ME! * - * @param e - * DOCUMENT ME! - */ - @Override - public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e) - { - newTreePanel("AV", "PID", "Average distance tree using PID"); - } - - /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! - */ - @Override - public void neighbourTreeMenuItem_actionPerformed(ActionEvent e) - { - newTreePanel("NJ", "PID", "Neighbour joining tree using PID"); - } - - /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! - */ - @Override - protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e) - { - newTreePanel("NJ", "BL", "Neighbour joining tree using BLOSUM62"); - } - - /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! - */ - @Override - protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e) - { - newTreePanel("AV", "BL", "Average distance tree using BLOSUM62"); - } - - /** - * DOCUMENT ME! - * * @param type * DOCUMENT ME! * @param pwType @@ -3868,48 +3793,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * 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 - * SortBy menu item title. */ @Override - public void buildTreeMenu() + public void buildTreeSortMenu() { - 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 String pwtype : ResidueProperties.scoreMatrices.keySet()) - { - JMenuItem tm = new JMenuItem(); - ScoreModelI sm = ResidueProperties.scoreMatrices.get(pwtype); - if (sm.isDNA() == viewport.getAlignment().isNucleotide() - || 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() - { - @Override - public void actionPerformed(ActionEvent e) - { - newTreePanel(type, pwtype, title); - } - }); - calculateTree.add(tm); - } - - } - } sortByTreeMenu.removeAll(); List comps = PaintRefresher.components.get(viewport @@ -4797,8 +4684,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } if (FileFormat.Jnet.equals(format)) { - JPredFile predictions = new JPredFile( - file, sourceType); + JPredFile predictions = new JPredFile(file, sourceType); new JnetAnnotationMaker(); JnetAnnotationMaker.add_annotation(predictions, viewport.getAlignment(), 0, false); @@ -4868,6 +4754,28 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /* + * 'focus' any colour slider that is open to the selected viewport + */ + if (viewport.getConservationSelected()) + { + SliderPanel.setConservationSlider(alignPanel, + viewport.getResidueShading(), alignPanel.getViewName()); + } + else + { + SliderPanel.hideConservationSlider(); + } + if (viewport.getAbovePIDThreshold()) + { + SliderPanel.setPIDSliderSource(alignPanel, + viewport.getResidueShading(), alignPanel.getViewName()); + } + else + { + SliderPanel.hidePIDSlider(); + } + + /* * If there is a frame linked to this one in a SplitPane, switch it to the * same view tab index. No infinite recursion of calls should happen, since * tabSelectionChanged() should not get invoked on setting the selected @@ -5712,6 +5620,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, ColourMenuHelper.setColourSelected(colourMenu, schemeName); } + + public void newTreePanel(String treeType, ScoreModelI sm) + { + String treecalcnm = MessageManager.getString("label.tree_calc_" + + treeType.toLowerCase()); + String smn = MessageManager.getStringOrReturn("label.score_model_", + sm.getName()); + final String ttl = MessageManager.formatMessage("label.treecalc_title", + treecalcnm, smn); + newTreePanel(treeType, sm.getName(), ttl); + } } class PrintThread extends Thread