X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=f04744de71836b9d6da29836eaec316fef39d644;hb=09e3cf7d0e936a9b69fc8f6c7315195694c5127e;hp=b37b442a774c838ef439e6024dda1c53d5a5a937;hpb=80300778ebd2107d12371d5073ccb8870f875eda;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index b37b442..f04744d 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -20,14 +20,13 @@ */ 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.Dna; import jalview.analysis.ParseProperties; import jalview.analysis.SequenceIdMatcher; +import jalview.api.AlignExportSettingI; import jalview.api.AlignViewControllerGuiI; import jalview.api.AlignViewControllerI; import jalview.api.AlignViewportI; @@ -795,7 +794,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { - System.out.println("deregistering discoverer listener"); + // System.out.println("deregistering discoverer listener"); Desktop.instance.removeJalviewPropertyChangeListener("services", thisListener); closeMenuItem_actionPerformed(true); @@ -1030,7 +1029,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void addFromText_actionPerformed(ActionEvent e) { - Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport); + Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport + .getAlignPanel()); } @Override @@ -1146,7 +1146,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, return false; } - AlignmentExportData exportData = getAlignmentForExport(format, viewport); + AlignmentExportData exportData = getAlignmentForExport(format, + viewport, null); if (exportData.getSettings().isCancelled()) { return false; @@ -1225,7 +1226,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { AlignmentExportData exportData = getAlignmentForExport( - e.getActionCommand(), viewport); + e.getActionCommand(), viewport, null); if (exportData.getSettings().isCancelled()) { return; @@ -1251,10 +1252,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } - public static AlignmentExportData getAlignmentForExport(String exportFomat, - AlignViewportI viewport) + public static AlignmentExportData getAlignmentForExport(String exportFormat, + AlignViewportI viewport, + AlignExportSettingI exportSettings) { AlignmentI alignmentToExport = null; + AlignExportSettingI settings = exportSettings; String[] omitHidden = null; int[] alignmentStartEnd = new int[2]; @@ -1267,9 +1270,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { 0, alignmentToExport.getWidth() - 1 }; boolean hasHiddenSeqs = hiddenSeqs.getSize() > 0; - AlignExportSettings settings = new AlignExportSettings(hasHiddenSeqs, - viewport.hasHiddenColumns(), exportFomat); - settings.isExportAnnotations(); + if (settings == null) + { + settings = new AlignExportSettings(hasHiddenSeqs, + viewport.hasHiddenColumns(), exportFormat); + } + // settings.isExportAnnotations(); if (viewport.hasHiddenColumns() && !settings.isExportHiddenColumns()) { @@ -1497,6 +1503,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (closeAllTabs) { + /* + * this will raise an INTERNAL_FRAME_CLOSED event and this method will + * be called recursively, with the frame now in 'closed' state + */ this.setClosed(true); } } catch (Exception ex) @@ -2749,12 +2759,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /* - * Views share the same edits, undo and redo stacks, mappings. + * Views share the same edits undo and redo stacks */ newap.av.setHistoryList(viewport.getHistoryList()); newap.av.setRedoList(viewport.getRedoList()); - newap.av.getAlignment().setCodonFrames( - viewport.getAlignment().getCodonFrames()); + + /* + * Views share the same mappings; need to deregister any new mappings + * created by copyAlignPanel, and register the new reference to the shared + * mappings + */ + newap.av.replaceMappings(viewport.getAlignment()); newap.av.viewName = getNewViewName(viewTitle); @@ -3482,115 +3497,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ public void changeColour(ColourSchemeI cs) { - // TODO: compare with applet and pull up to model method - int threshold = 0; + // TODO: pull up to controller method if (cs != null) { + // Make sure viewport is up to date w.r.t. any sliders if (viewport.getAbovePIDThreshold()) { - threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, + int threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, "Background"); - cs.setThreshold(threshold, viewport.isIgnoreGapsConsensus()); - } - else - { - cs.setThreshold(0, viewport.isIgnoreGapsConsensus()); + viewport.setThreshold(threshold); } if (viewport.getConservationSelected()) { - - Alignment al = (Alignment) viewport.getAlignment(); - Conservation c = new Conservation("All", - ResidueProperties.propHash, 3, al.getSequences(), 0, - al.getWidth() - 1); - - c.calculate(); - c.verdict(false, viewport.getConsPercGaps()); - - cs.setConservation(c); - cs.setConservationInc(SliderPanel.setConservationSlider(alignPanel, cs, "Background")); } - else - { - cs.setConservation(null); - } - - cs.setConsensus(viewport.getSequenceConsensusHash()); } viewport.setGlobalColourScheme(cs); - if (viewport.getColourAppliesToAllGroups()) - { - - for (SequenceGroup sg : viewport.getAlignment().getGroups()) - { - if (cs == null) - { - sg.cs = null; - continue; - } - - if (cs instanceof ClustalxColourScheme) - { - sg.cs = new ClustalxColourScheme(sg, - viewport.getHiddenRepSequences()); - } - else if (cs instanceof UserColourScheme) - { - sg.cs = new UserColourScheme(((UserColourScheme) cs).getColours()); - } - else - { - try - { - sg.cs = cs.getClass().newInstance(); - } catch (Exception ex) - { - } - } - - if (viewport.getAbovePIDThreshold() - || cs instanceof PIDColourScheme - || cs instanceof Blosum62ColourScheme) - { - sg.cs.setThreshold(threshold, viewport.isIgnoreGapsConsensus()); - - sg.cs.setConsensus(AAFrequency.calculate( - sg.getSequences(viewport.getHiddenRepSequences()), - sg.getStartRes(), sg.getEndRes() + 1)); - } - else - { - sg.cs.setThreshold(0, viewport.isIgnoreGapsConsensus()); - } - - if (viewport.getConservationSelected()) - { - Conservation c = new Conservation("Group", - ResidueProperties.propHash, 3, sg.getSequences(viewport - .getHiddenRepSequences()), sg.getStartRes(), - sg.getEndRes() + 1); - c.calculate(); - c.verdict(false, viewport.getConsPercGaps()); - sg.cs.setConservation(c); - } - else - { - sg.cs.setConservation(null); - } - } - } - - if (alignPanel.getOverviewPanel() != null) - { - alignPanel.getOverviewPanel().updateOverviewImage(); - } - alignPanel.paintAlignment(true); } @@ -4525,8 +4452,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, final List legacyItems = new ArrayList(); try { - System.err.println("Building ws menu again " - + Thread.currentThread()); + // System.err.println("Building ws menu again " + // + Thread.currentThread()); // TODO: add support for context dependent disabling of services based // on // alignment and current selection @@ -4878,7 +4805,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, al.getCodonFrames().addAll(cf); final StructureSelectionManager ssm = StructureSelectionManager .getStructureSelectionManager(Desktop.instance); - ssm.addMappings(cf); + ssm.registerMappings(cf); } else { @@ -4968,10 +4895,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, "Exception during translation. Please report this !", ex); final String msg = MessageManager .getString("label.error_when_translating_sequences_submit_bug_report"); - final String title = MessageManager + final String errorTitle = MessageManager .getString("label.implementation_error") + MessageManager.getString("translation_failed"); - JOptionPane.showMessageDialog(Desktop.desktop, msg, title, + JOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle, JOptionPane.ERROR_MESSAGE); return; } @@ -4979,9 +4906,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { final String msg = MessageManager .getString("label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation"); - final String title = MessageManager + final String errorTitle = MessageManager .getString("label.translation_failed"); - JOptionPane.showMessageDialog(Desktop.desktop, msg, title, + JOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle, JOptionPane.WARNING_MESSAGE); } else @@ -4995,8 +4922,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true)) { final SequenceI[] seqs = viewport.getSelectionAsNewSequence(); - viewport.openSplitFrame(af, new Alignment(seqs), - al.getCodonFrames()); + viewport.openSplitFrame(af, new Alignment(seqs)); } else { @@ -6088,7 +6014,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sf.setComplementVisible(this, show); } } - } class PrintThread extends Thread