X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationPanel.java;h=128110be21198fbd7b2d218ab287bb3c91ec93aa;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=90f45951bd1db8ccfba96bbe0188c8a64793dfe3;hpb=f52d7fc6ab9bf2c926f0208c225d3dc6e65c8ecf;p=jalview.git diff --git a/src/jalview/gui/AnnotationPanel.java b/src/jalview/gui/AnnotationPanel.java index 90f4595..128110b 100755 --- a/src/jalview/gui/AnnotationPanel.java +++ b/src/jalview/gui/AnnotationPanel.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * @@ -14,17 +14,20 @@ * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.gui; import java.awt.*; import java.awt.event.*; import java.awt.image.*; + import javax.swing.*; import jalview.datamodel.*; import jalview.renderer.AnnotationRenderer; import jalview.renderer.AwtRenderPanelI; +import jalview.util.MessageManager; /** * AnnotationPanel displays visible portion of annotation rows below unwrapped @@ -266,7 +269,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, else if (evt.getActionCommand().equals(LABEL)) { String exMesg = collectAnnotVals(anot, av.getColumnSelection(), LABEL); - String label = JOptionPane.showInputDialog(this, "Enter label", + String label = JOptionPane.showInputDialog(this, MessageManager.getString("label.enter_label"), exMesg); if (label == null) @@ -348,7 +351,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, } String label = JOptionPane.showInputDialog( - "Enter a label for the structure?", symbol); + MessageManager.getString("label.enter_label_for_the_structure"), symbol); if (label == null) { @@ -358,8 +361,11 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, if ((label.length() > 0) && !aa[activeRow].hasText) { aa[activeRow].hasText = true; + if (evt.getActionCommand().equals(STEM)) + { + aa[activeRow].showAllColLabels=true; + } } - for (int i = 0; i < av.getColumnSelection().size(); i++) { int index = av.getColumnSelection().columnAt(i); @@ -374,12 +380,13 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, anot[index].secondaryStructure = type; anot[index].displayCharacter = label; + } } - aa[activeRow].validateRangeAndDisplay(); - - adjustPanelHeight(); + av.getAlignment().validateAnnotation(aa[activeRow]); ap.alignmentChanged(); + + adjustPanelHeight(); repaint(); return; @@ -481,7 +488,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, return; } - JPopupMenu pop = new JPopupMenu("Structure type"); + JPopupMenu pop = new JPopupMenu(MessageManager.getString("label.structure_type")); JMenuItem item; /* * Just display the needed structure options @@ -663,7 +670,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, && aa[row].annotations[res].description != null && aa[row].annotations[res].description.length() > 0) { - this.setToolTipText(aa[row].annotations[res].description); + this.setToolTipText(""+JvSwingUtils.wrapTooltip(aa[row].annotations[res].description)+""); } else { @@ -699,16 +706,11 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, @Override public void mouseClicked(MouseEvent evt) { - if (activeRow != -1) - { - AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); - AlignmentAnnotation anot = aa[activeRow]; - - if (anot.description.equals("secondary structure")) - { - // System.out.println(anot.description+" "+anot.getRNAStruc()); - } - } +// if (activeRow != -1) +// { +// AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); +// AlignmentAnnotation anot = aa[activeRow]; +// } } // TODO mouseClicked-content and drawCursor are quite experimental! @@ -800,7 +802,10 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, imageFresh = false; g.drawImage(image, 0, 0, this); } - + /** + * set true to enable redraw timing debug output on stderr + */ + private final boolean debugRedraw = false; /** * non-Thread safe repaint * @@ -809,7 +814,6 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, */ public void fastPaint(int horizontal) { - if ((horizontal == 0) || gg == null || av.getAlignment().getAlignmentAnnotation() == null || av.getAlignment().getAlignmentAnnotation().length < 1 @@ -818,8 +822,9 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, repaint(); return; } + long stime=System.currentTimeMillis(); gg.copyArea(0, 0, imgWidth, getHeight(), -horizontal * av.charWidth, 0); - + long mtime=System.currentTimeMillis(); int sr = av.startRes; int er = av.endRes + 1; int transX = 0; @@ -839,9 +844,13 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, drawComponent(gg, sr, er); gg.translate(-transX, 0); - + long dtime=System.currentTimeMillis(); fastPaint = true; repaint(); + long rtime=System.currentTimeMillis(); + if (debugRedraw) { + System.err.println("Scroll:\t"+horizontal+"\tCopyArea:\t"+(mtime-stime)+"\tDraw component:\t"+(dtime-mtime)+"\tRepaint call:\t"+(rtime-dtime)); + } } @@ -920,7 +929,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, g.setColor(Color.black); if (av.validCharWidth) { - g.drawString("Alignment has no annotations", 20, 15); + g.drawString(MessageManager.getString("label.alignment_has_no_annotations"), 20, 15); } return; @@ -954,9 +963,12 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, @Override public int[] getVisibleVRange() { + if (ap!=null && ap.alabels!=null) + { int sOffset=-ap.alabels.scrollOffset; int visHeight = sOffset+ap.annotationSpaceFillerHolder.getHeight(); bounds[0] = sOffset; bounds[1]=visHeight; return bounds; + } else return null; } }