X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FCutAndPasteTransfer.java;h=1e806a5cb5afaf535b76206ef2acee4719f1f46f;hb=9ba5a485b66e9c5a86b12dedc7b32616f3ef6db8;hp=5617c64d025fef6e7b9c5ef4aacc922e54a89b93;hpb=4d7f98a6dd54d9863ba449ec79dcd95d25ed863d;p=jalview.git diff --git a/src/jalview/appletgui/CutAndPasteTransfer.java b/src/jalview/appletgui/CutAndPasteTransfer.java index 5617c64..1e806a5 100644 --- a/src/jalview/appletgui/CutAndPasteTransfer.java +++ b/src/jalview/appletgui/CutAndPasteTransfer.java @@ -22,17 +22,21 @@ 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; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; +import jalview.io.AlignmentFileReaderI; import jalview.io.AnnotationFile; import jalview.io.AppletFormatAdapter; -import jalview.io.FileParse; +import jalview.io.DataSourceType; +import jalview.io.FileFormatI; 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; @@ -49,6 +53,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.io.IOException; public class CutAndPasteTransfer extends Panel implements ActionListener, MouseListener @@ -63,7 +68,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, AlignFrame alignFrame; - FileParse source = null; + AlignmentFileReaderI source = null; public CutAndPasteTransfer(boolean forImport, AlignFrame alignFrame) { @@ -115,6 +120,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, addSequences.setVisible(false); } + @Override public void actionPerformed(ActionEvent evt) { if (evt.getSource() == accept) @@ -191,7 +197,8 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, { try { - NewickFile fin = new NewickFile(textarea.getText(), "Paste"); + NewickFile fin = new NewickFile(textarea.getText(), + DataSourceType.PASTE); fin.parse(); if (fin.getTree() != null) @@ -222,17 +229,14 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, { AlignmentI al = null; - String format = new IdentifyFile().Identify(text, - AppletFormatAdapter.PASTE); - AppletFormatAdapter afa = new AppletFormatAdapter(alignFrame.alignPanel); try { - al = afa.readFile(text, AppletFormatAdapter.PASTE, format); + FileFormatI format = new IdentifyFile().identify(text, + DataSourceType.PASTE); + AppletFormatAdapter afa = new AppletFormatAdapter( + alignFrame.alignPanel); + al = afa.readFile(text, DataSourceType.PASTE, format); source = afa.getAlignFile(); - } catch (java.io.IOException ex) - { - ex.printStackTrace(); - } if (al != null) { @@ -253,23 +257,33 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, if (source instanceof ComplexAlignFile) { - ColumnSelection colSel = ((ComplexAlignFile) source) - .getColumnSelection(); + HiddenColumns colSel = ((ComplexAlignFile) source) + .getHiddenColumns(); SequenceI[] hiddenSeqs = ((ComplexAlignFile) source) .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 @@ -283,6 +297,10 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, .getString("label.successfully_pasted_alignment_file")); } } + } catch (IOException ex) + { + ex.printStackTrace(); + } } /** @@ -293,7 +311,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, * @param al * @return */ - protected boolean openSplitFrame(AlignmentI al, String format) + protected boolean openSplitFrame(AlignmentI al, FileFormatI format) { final AlignmentI thisAlignment = this.alignFrame.getAlignViewport() .getAlignment(); @@ -304,7 +322,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; @@ -332,6 +350,11 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, } /* + * '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. */ @@ -358,7 +381,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, try { tcf = new TCoffeeScoreFile(textarea.getText(), - jalview.io.AppletFormatAdapter.PASTE); + jalview.io.DataSourceType.PASTE); if (tcf.isValid()) { if (tcf.annotateAlignment(alignFrame.viewport.getAlignment(), true)) @@ -391,7 +414,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.DataSourceType.PASTE)) { alignFrame.alignPanel.fontChanged(); alignFrame.alignPanel.setScrollValues(0, 0); @@ -403,7 +426,7 @@ public class CutAndPasteTransfer extends Panel implements ActionListener, else { if (!alignFrame.parseFeaturesFile(textarea.getText(), - jalview.io.AppletFormatAdapter.PASTE)) + jalview.io.DataSourceType.PASTE)) { alignFrame.statusBar .setText(MessageManager @@ -427,12 +450,12 @@ 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); + alignFrame.alignPanel, DataSourceType.PASTE); } else { new MCview.AppletPDBViewer(pdb, new SequenceI[] { seq }, null, - alignFrame.alignPanel, AppletFormatAdapter.PASTE); + alignFrame.alignPanel, DataSourceType.PASTE); } } @@ -478,6 +501,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( @@ -487,18 +511,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) { }