+ // quick patch for JAL-4150 - needs some more work and test coverage
+ // TODO - unify below and AlignFrame.paste()
+ // TODO - write tests and fix AlignFrame.paste() which doesn't track if
+ // clipboard has come from a different alignment window than the one where
+ // paste has been called! JAL-4151
+
+ if (Desktop.jalviewClipboard != null)
+ {
+ // The clipboard was filled from within Jalview, we must use the
+ // sequences
+ // And dataset from the copied alignment
+ SequenceI[] newseq = (SequenceI[]) Desktop.jalviewClipboard[0];
+ // be doubly sure that we create *new* sequence objects.
+ SequenceI[] sequences = new SequenceI[newseq.length];
+ for (int i = 0; i < newseq.length; i++)
+ {
+ sequences[i] = new Sequence(newseq[i]);
+ }
+ Alignment alignment = new Alignment(sequences);
+ // dataset is inherited
+ alignment.setDataset((Alignment) Desktop.jalviewClipboard[1]);
+ AlignFrame af = new AlignFrame(alignment, AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT);
+ String newtitle = new String("Copied sequences");
+
+ if (Desktop.jalviewClipboard[2] != null)
+ {
+ HiddenColumns hc = (HiddenColumns) Desktop.jalviewClipboard[2];
+ af.viewport.setHiddenColumns(hc);
+ }
+
+ Desktop.addInternalFrame(af, newtitle, AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT);
+
+ } else {