From 6f499ac9fb1c218b04b64e7343f365b664b0bf20 Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 17 Apr 2007 11:31:15 +0000 Subject: [PATCH] paste adds or creates full copies of objects in clipboard, and properly copies sequence associated alignment annotation. --- src/jalview/gui/AlignFrame.java | 209 ++++++++++++++++++++++++--------------- 1 file changed, 127 insertions(+), 82 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 1396c93..ee2f7fd 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -180,7 +180,6 @@ public class AlignFrame && Character.isDigit(evt.getKeyChar())) alignPanel.seqPanel.numberPressed(evt.getKeyChar()); - switch (evt.getKeyCode()) { @@ -1409,6 +1408,7 @@ public class AlignFrame */ void paste(boolean newAlignment) { + boolean externalPaste=true; try { Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -1451,102 +1451,143 @@ public class AlignFrame } SequenceI[] sequences; - + boolean annotationAdded = false; + AlignmentI alignment = null; if(Desktop.jalviewClipboard!=null) { // The clipboard was filled from within Jalview, we must use the sequences // And dataset from the copied alignment - sequences = (SequenceI[])Desktop.jalviewClipboard[0]; + SequenceI[] newseq = (SequenceI[])Desktop.jalviewClipboard[0]; + // be doubly sure that we create *new* sequence objects. + sequences = new SequenceI[newseq.length]; + for (int i=0;i>>This is a fix for the moment, until a better solution is found!!<<< af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().transferSettings( alignPanel.seqPanel.seqCanvas.getFeatureRenderer()); - - - if (title.startsWith("Copied sequences")) - { - newtitle = title; - } - else - { - newtitle = newtitle.concat("- from " + title); + + // TODO: maintain provenance of an alignment, rather than just make the title a concatenation of operations. + if (!externalPaste) { + if (title.startsWith("Copied sequences")) + { + newtitle = title; + } + else + { + newtitle = newtitle.concat("- from " + title); + } + } else { + newtitle = new String("Pasted sequences"); } Desktop.addInternalFrame(af, newtitle, DEFAULT_WIDTH, -- 1.7.10.2