X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FCutAndPasteTransfer.java;h=bbaeb68cb9ad974e2497e64fdf26c63718f6a088;hb=3634aa61b96d7ce541c4abb83502fc67d72e3f27;hp=535dc62a0d2bf2e393ee0b297e004f292ae6a090;hpb=6dd554fdbf34db6b79595d5027159d20225f4894;p=jalview.git diff --git a/src/jalview/appletgui/CutAndPasteTransfer.java b/src/jalview/appletgui/CutAndPasteTransfer.java index 535dc62..bbaeb68 100644 --- a/src/jalview/appletgui/CutAndPasteTransfer.java +++ b/src/jalview/appletgui/CutAndPasteTransfer.java @@ -22,6 +22,7 @@ package jalview.appletgui; import jalview.analysis.AlignmentUtils; import jalview.api.ComplexAlignFile; +import jalview.api.FeaturesSourceI; import jalview.bin.JalviewLite; import jalview.datamodel.AlignmentI; import jalview.datamodel.ColumnSelection; @@ -33,6 +34,7 @@ import jalview.io.FileParse; import jalview.io.IdentifyFile; import jalview.io.NewickFile; import jalview.io.TCoffeeScoreFile; +import jalview.json.binding.biojson.v1.ColourSchemeMapper; import jalview.schemes.ColourSchemeI; import jalview.schemes.TCoffeeColourScheme; import jalview.util.MessageManager; @@ -115,6 +117,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, addSequences.setVisible(false); } + @Override public void actionPerformed(ActionEvent evt) { if (evt.getSource() == accept) @@ -204,8 +207,8 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, // TODO: JAL-1102 - should have a warning message in dialog, not simply // overwrite the broken input data with the exception textarea.setText(MessageManager.formatMessage( - "label.could_not_parse_newick_file", new Object[] - { ex.getMessage() })); + "label.could_not_parse_newick_file", + new Object[] { ex.getMessage() })); return false; } return false; @@ -222,7 +225,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, { AlignmentI al = null; - String format = new IdentifyFile().Identify(text, + String format = new IdentifyFile().identify(text, AppletFormatAdapter.PASTE); AppletFormatAdapter afa = new AppletFormatAdapter(alignFrame.alignPanel); try @@ -259,17 +262,27 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, .getHiddenSequences(); boolean showSeqFeatures = ((ComplexAlignFile) source) .isShowSeqFeatures(); - ColourSchemeI cs = ((ComplexAlignFile) source).getColourScheme(); + String colourSchemeName = ((ComplexAlignFile) source) + .getGlobalColourScheme(); af = new AlignFrame(al, hiddenSeqs, colSel, alignFrame.viewport.applet, "Cut & Paste input - " + format, false); af.getAlignViewport().setShowSequenceFeatures(showSeqFeatures); - af.changeColour(cs); + ColourSchemeI cs = ColourSchemeMapper.getJalviewColourScheme( + colourSchemeName, al); + if (cs != null) + { + af.changeColour(cs); + } } else { af = new AlignFrame(al, alignFrame.viewport.applet, "Cut & Paste input - " + format, false); + if (source instanceof FeaturesSourceI) + { + af.getAlignViewport().setShowSequenceFeatures(true); + } } af.statusBar @@ -295,7 +308,8 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, */ protected boolean openSplitFrame(AlignmentI al, String format) { - final AlignmentI thisAlignment = this.alignFrame.getAlignViewport().getAlignment(); + final AlignmentI thisAlignment = this.alignFrame.getAlignViewport() + .getAlignment(); if (thisAlignment.isNucleotide() == al.isNucleotide()) { // both nucleotide or both protein @@ -303,7 +317,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, } AlignmentI protein = thisAlignment.isNucleotide() ? al : thisAlignment; AlignmentI dna = thisAlignment.isNucleotide() ? thisAlignment : al; - boolean mapped = AlignmentUtils.mapProteinToCdna(protein, dna); + boolean mapped = AlignmentUtils.mapProteinAlignmentToCdna(protein, dna); if (!mapped) { return false; @@ -324,13 +338,18 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, dialog.setMainPanel(question); dialog.setVisible(true); dialog.toFront(); - + if (!dialog.accept) { return false; } /* + * 'align' the added alignment to match the current one + */ + al.alignAs(thisAlignment); + + /* * Open SplitFrame with DNA above and protein below, including the alignment * from textbox and a copy of the original. */ @@ -341,8 +360,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, AlignFrame newFrame = new AlignFrame(al, alignFrame.viewport.applet, "Cut & Paste input - " + format, false, false); AlignFrame dnaFrame = al.isNucleotide() ? newFrame : copyFrame; - AlignFrame proteinFrame = al.isNucleotide() ? copyFrame - : newFrame; + AlignFrame proteinFrame = al.isNucleotide() ? copyFrame : newFrame; SplitFrame sf = new SplitFrame(dnaFrame, proteinFrame); sf.addToDisplay(false, applet); return true; @@ -361,8 +379,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, jalview.io.AppletFormatAdapter.PASTE); if (tcf.isValid()) { - if (tcf.annotateAlignment(alignFrame.viewport.getAlignment(), - true)) + if (tcf.annotateAlignment(alignFrame.viewport.getAlignment(), true)) { alignFrame.tcoffeeColour.setEnabled(true); alignFrame.alignPanel.fontChanged(); @@ -377,8 +394,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, // file valid but didn't get added to alignment for some reason alignFrame.statusBar.setText(MessageManager.formatMessage( "label.failed_add_tcoffee_scores", - new Object[] - { (tcf.getWarningMessage() != null ? tcf + new Object[] { (tcf.getWarningMessage() != null ? tcf .getWarningMessage() : "") })); } } @@ -393,8 +409,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, if (tcf == null) { if (new AnnotationFile().annotateAlignmentView(alignFrame.viewport, - textarea.getText(), - jalview.io.AppletFormatAdapter.PASTE)) + textarea.getText(), jalview.io.AppletFormatAdapter.PASTE)) { alignFrame.alignPanel.fontChanged(); alignFrame.alignPanel.setScrollValues(0, 0); @@ -429,13 +444,13 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, if (alignFrame.alignPanel.av.applet.jmolAvailable) { - new jalview.appletgui.AppletJmol(pdb, new SequenceI[] - { seq }, null, alignFrame.alignPanel, AppletFormatAdapter.PASTE); + new jalview.appletgui.AppletJmol(pdb, new SequenceI[] { seq }, null, + alignFrame.alignPanel, AppletFormatAdapter.PASTE); } else { - new MCview.AppletPDBViewer(pdb, new SequenceI[] - { seq }, null, alignFrame.alignPanel, AppletFormatAdapter.PASTE); + new MCview.AppletPDBViewer(pdb, new SequenceI[] { seq }, null, + alignFrame.alignPanel, AppletFormatAdapter.PASTE); } } @@ -481,6 +496,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, this.add(textarea, java.awt.BorderLayout.CENTER); } + @Override public void mousePressed(MouseEvent evt) { if (textarea.getText().startsWith( @@ -490,18 +506,22 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, } } + @Override public void mouseReleased(MouseEvent evt) { } + @Override public void mouseClicked(MouseEvent evt) { } + @Override public void mouseEntered(MouseEvent evt) { } + @Override public void mouseExited(MouseEvent evt) { }