X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FMsaWSThread.java;h=89cf024a30c40ee4867496cf68323ed38c85ab93;hb=1498662aa27c17a6db8e79edcfa4e9891e4437d2;hp=db6e03f2e511d9502a43a45df7c6c15b6821d185;hpb=3d0101179759ef157b088ea135423cd909512d9f;p=jalview.git diff --git a/src/jalview/ws/jws2/MsaWSThread.java b/src/jalview/ws/jws2/MsaWSThread.java index db6e03f..89cf024 100644 --- a/src/jalview/ws/jws2/MsaWSThread.java +++ b/src/jalview/ws/jws2/MsaWSThread.java @@ -974,13 +974,24 @@ class MsaWSThread extends AWS2Thread implements WSClientI { al.setDataset(dataset); } - propagateDatasetMappings(al); + Alignment complement=null; + if (input.hasComplementView()) + { + Object[] newcompl = input + .getComplementView() + .getAlignmentAndHiddenColumns(getRequestingAlignFrame() + .getViewport().getCodingComplement().getGapCharacter()); + complement = new Alignment((SequenceI[])newcompl[0]); + complement.setHiddenColumns((HiddenColumns) newcompl[1]); + complement.setDataset(dataset); + complement.alignAs(al); + } // JBNote- TODO: warn user if a block is input rather than aligned data ? if (newFrame) { - displayInNewFrame(al, alorders, hidden); + displayInNewFrame(al, alorders, hidden, complement); } else @@ -998,10 +1009,11 @@ class MsaWSThread extends AWS2Thread implements WSClientI * * @param al * @param alorders + * @param complement2 * @param columnselection */ protected void displayInNewFrame(AlignmentI al, - List alorders, HiddenColumns hidden) + List alorders, HiddenColumns hidden, AlignmentI complement) { AlignFrame af = new AlignFrame(al, hidden, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); @@ -1021,26 +1033,18 @@ class MsaWSThread extends AWS2Thread implements WSClientI * SplitFrame with the other pane similarly aligned. */ AlignFrame requestedBy = getRequestingAlignFrame(); - if (requestedBy != null && requestedBy.getSplitViewContainer() != null + if (complement!=null && requestedBy != null && requestedBy.getSplitViewContainer() != null && requestedBy.getSplitViewContainer() .getComplement(requestedBy) != null) { - AlignmentI complement = requestedBy.getSplitViewContainer() - .getComplement(requestedBy); String complementTitle = requestedBy.getSplitViewContainer() .getComplementTitle(requestedBy); // becomes null if the alignment window was closed before the alignment // job finished. - AlignmentI copyComplement = new Alignment(complement); - // todo should this be done by copy constructor? - copyComplement.setGapCharacter(complement.getGapCharacter()); - // share the same dataset (and the mappings it holds) - copyComplement.setDataset(complement.getDataset()); - copyComplement.alignAs(al); - if (copyComplement.getHeight() > 0) + if (complement.getHeight() > 0) { af.setTitle(alTitle); - AlignFrame af2 = new AlignFrame(copyComplement, + AlignFrame af2 = new AlignFrame(complement, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); af2.setTitle(complementTitle); String linkedTitle = MessageManager