X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=8f2dd04fc8bdd8683bc5e2fe80fb8df8f188932b;hb=758de8f5f155252f3e9ded22be77dcc70993b1c5;hp=474d392670ec2d4121ad0c083648c274f273c519;hpb=63f3c5bdc2ce5540d8f6bfc9ed9af5d454805181;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 474d392..8f2dd04 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -20,7 +20,6 @@ package jalview.gui; import java.beans.*; import java.io.*; import java.util.Hashtable; -import java.util.Vector; import java.awt.*; import java.awt.event.*; @@ -921,10 +920,14 @@ public class AlignmentPanel extends GAlignmentPanel implements if (av.showAnnotation && (endSeq == av.getAlignment().getHeight())) { + // draw annotation - need to offset for current scroll position + int offset=-alabels.scrollOffset; + pg.translate(0, offset); pg.translate(-idWidth - 3, (endSeq - startSeq) * av.charHeight + 3); alabels.drawComponent((Graphics2D) pg, idWidth); pg.translate(idWidth + 3, 0); annotationPanel.renderer.drawComponent(annotationPanel, av, (Graphics2D) pg, -1, startRes, endRes + 1); + pg.translate(0, -offset); } return Printable.PAGE_EXISTS; @@ -1072,6 +1075,11 @@ public class AlignmentPanel extends GAlignmentPanel implements void makeAlignmentImage(int type, File file) { + long progress=System.currentTimeMillis(); + if (alignFrame!=null) { + alignFrame.setProgressBar("Saving "+(type == jalview.util.ImageMaker.PNG ? "PNG image":"EPS file") , progress); + } + try { int maxwidth = av.getAlignment().getWidth(); if (av.hasHiddenColumns()) { @@ -1110,19 +1118,17 @@ public class AlignmentPanel extends GAlignmentPanel implements { jalview.util.ImageMaker im; + final String imageAction,imageTitle; if (type == jalview.util.ImageMaker.PNG) { - im = new jalview.util.ImageMaker(this, jalview.util.ImageMaker.PNG, - "Create PNG image from alignment", width, height, file, - null); - } - else - { - im = new jalview.util.ImageMaker(this, jalview.util.ImageMaker.EPS, - "Create EPS file from alignment", width, height, file, - alignFrame.getTitle()); + imageAction="Create PNG image from alignment"; + imageTitle=null; + } else { + imageAction="Create EPS file from alignment"; + imageTitle=alignFrame.getTitle(); } - + im = new jalview.util.ImageMaker(this, type, imageAction, width, height, file, + imageTitle); if (av.getWrapAlignment()) { if (im.getGraphics() != null) @@ -1150,6 +1156,13 @@ public class AlignmentPanel extends GAlignmentPanel implements { ex.printStackTrace(); } + } + finally { + if (alignFrame!=null) + { + alignFrame.setProgressBar("Export complete.", progress); + } + } } /** @@ -1172,7 +1185,7 @@ public class AlignmentPanel extends GAlignmentPanel implements { // /////ONLY WORKS WITH NONE WRAPPED ALIGNMENTS // //////////////////////////////////////////// - int idWidth = getVisibleIdWidth(true); + int idWidth = getVisibleIdWidth(false); FontMetrics fm = getFontMetrics(av.getFont()); int scaleHeight = av.charHeight + fm.getDescent(); @@ -1400,7 +1413,6 @@ public class AlignmentPanel extends GAlignmentPanel implements // remove old automatic annotation // add any new annotation - Vector gr = av.getAlignment().getGroups(); // OrderedBy(av.getAlignment().getSequencesArray()); // intersect alignment annotation with alignment groups AlignmentAnnotation[] aan = av.getAlignment().getAlignmentAnnotation(); @@ -1417,13 +1429,11 @@ public class AlignmentPanel extends GAlignmentPanel implements } } } - SequenceGroup sg; - if (gr != null) + if (av.getAlignment().getGroups()!=null) { - for (int g = 0; g < gr.size(); g++) + for (SequenceGroup sg:av.getAlignment().getGroups()) { updateCalcs = false; - sg = (SequenceGroup) gr.elementAt(g); if (applyGlobalSettings || !oldrfs.containsKey(sg)) { // set defaults for this group's conservation/consensus @@ -1494,4 +1504,22 @@ public class AlignmentPanel extends GAlignmentPanel implements { new OOMWarning(string, error, this); } + + public FeatureRenderer cloneFeatureRenderer() + { + + return new FeatureRenderer(this); + } + + public void updateFeatureRenderer(FeatureRenderer fr) + { + fr.transferSettings(seqPanel.seqCanvas.getFeatureRenderer()); + } + + public void updateFeatureRendererFrom(FeatureRenderer fr) + { + if (seqPanel.seqCanvas.getFeatureRenderer()!=null) { + seqPanel.seqCanvas.getFeatureRenderer().transferSettings(fr); + } + } }