From b0b7b4d3507eb10ed388fe3e1a8962476207d181 Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Thu, 10 Jan 2013 09:48:08 +0000 Subject: [PATCH] add cloneBamView() --- .../artemis/components/alignment/BamView.java | 70 +++++++++++-------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java index 93193d768..277064548 100644 --- a/uk/ac/sanger/artemis/components/alignment/BamView.java +++ b/uk/ac/sanger/artemis/components/alignment/BamView.java @@ -971,21 +971,25 @@ public class BamView extends JPanel laststart = start; lastend = end; - if(showBaseAlignment) - drawBaseAlignment(g2, seqLength, pixPerBase, start, end); - else - { - if(isCoverageView(pixPerBase)) - drawCoverage(g2,start, end, pixPerBase); - else if(isStackView()) - drawStackView(g2, seqLength, pixPerBase, start, end); - else if(isPairedStackView()) - drawPairedStackView(g2, seqLength, pixPerBase, start, end); - else if(isStrandStackView()) - drawStrandStackView(g2, seqLength, pixPerBase, start, end); + // this needs to be synchronized when cloning BAM window + synchronized(this) + { + if(showBaseAlignment) + drawBaseAlignment(g2, seqLength, pixPerBase, start, end); else - drawLineView(g2, seqLength, pixPerBase, start, end); - } + { + if(isCoverageView(pixPerBase)) + drawCoverage(g2,start, end, pixPerBase); + else if(isStackView()) + drawStackView(g2, seqLength, pixPerBase, start, end); + else if(isPairedStackView()) + drawPairedStackView(g2, seqLength, pixPerBase, start, end); + else if(isStrandStackView()) + drawStrandStackView(g2, seqLength, pixPerBase, start, end); + else + drawLineView(g2, seqLength, pixPerBase, start, end); + } + } if(isCoverage) coveragePanel.repaint(); @@ -2861,21 +2865,7 @@ public class BamView extends JPanel { public void actionPerformed(ActionEvent e) { - BamView bamView = new BamView(new Vector<String>(bamList), - null, nbasesInView, entry_edit, - feature_display, bases, (JPanel) mainPanel.getParent(), null); - bamView.getJspView().getVerticalScrollBar().setValue( - bamView.getJspView().getVerticalScrollBar().getMaximum()); - getJspView().getVerticalScrollBar().setValue( - bamView.getJspView().getVerticalScrollBar().getMaximum()); - - int start = getBaseAtStartOfView(); - setDisplay(start, nbasesInView+start, null); - if(feature_display != null) - { - feature_display.addDisplayAdjustmentListener(bamView); - feature_display.getSelection().addSelectionChangeListener(bamView); - } + cloneBamView(); } }); menu.add(new JSeparator()); @@ -3505,6 +3495,28 @@ public class BamView extends JPanel return null; } + /** + * Open another BamView window + */ + public void cloneBamView() + { + BamView bamView = new BamView(new Vector<String>(bamList), + null, nbasesInView, entry_edit, + feature_display, bases, (JPanel) mainPanel.getParent(), null); + bamView.getJspView().getVerticalScrollBar().setValue( + bamView.getJspView().getVerticalScrollBar().getMaximum()); + getJspView().getVerticalScrollBar().setValue( + bamView.getJspView().getVerticalScrollBar().getMaximum()); + + int start = getBaseAtStartOfView(); + setDisplay(start, nbasesInView+start, null); + if(feature_display != null) + { + feature_display.addDisplayAdjustmentListener(bamView); + feature_display.getSelection().addSelectionChangeListener(bamView); + } + } + /** * Artemis event notification */ -- GitLab