X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationLabels.java;h=b1a8aff6a863f3756989c1439747b8d3ef36ad01;hb=f0efe3029537bbbbe788e16eb85cb0af9c0fb81e;hp=dbf2ab120c4c3d20220077ae3d20980a14cd4dfd;hpb=4389a166735bf1203894abdf3cf7dd57c4856dbc;p=jalview.git diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index dbf2ab1..b1a8aff 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -25,6 +25,7 @@ import jalview.analysis.AlignmentUtils; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; @@ -42,8 +43,6 @@ import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.MediaTracker; import java.awt.RenderingHints; import java.awt.Toolkit; import java.awt.datatransfer.StringSelection; @@ -53,10 +52,9 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Iterator; import java.util.regex.Pattern; import javax.swing.JCheckBoxMenuItem; @@ -74,9 +72,16 @@ import javax.swing.ToolTipManager; public class AnnotationLabels extends JPanel implements MouseListener, MouseMotionListener, ActionListener { - // width in pixels within which height adjuster arrows are shown and active + /** + * width in pixels within which height adjuster arrows are shown and active + */ private static final int HEIGHT_ADJUSTER_WIDTH = 50; + /** + * height in pixels for allowing height adjuster to be active + */ + private static int HEIGHT_ADJUSTER_HEIGHT = 10; + private static final Pattern LEFT_ANGLE_BRACKET_PATTERN = Pattern .compile("<"); @@ -106,10 +111,6 @@ public class AnnotationLabels extends JPanel private static final String COPYCONS_SEQ = MessageManager .getString("label.copy_consensus_sequence"); - private static Image adjusterImage; - - private static int adjusterImageHeight; - private final boolean debugRedraw = false; private AlignmentPanel ap; @@ -139,11 +140,6 @@ public class AnnotationLabels extends JPanel av = ap.av; ToolTipManager.sharedInstance().registerComponent(this); - if (adjusterImage == null) - { - loadAdjusterImage(); - } - addMouseListener(this); addMouseMotionListener(this); addMouseWheelListener(ap.getAnnotationPanel()); @@ -155,37 +151,6 @@ public class AnnotationLabels extends JPanel } /** - * Loads the gif for the panel height adjustment - */ - protected void loadAdjusterImage() - { - java.net.URL url = getClass().getResource("/images/idwidth.gif"); - Image temp = null; - - if (url != null) - { - temp = Toolkit.getDefaultToolkit().createImage(url); - } - - try - { - MediaTracker mt = new MediaTracker(this); - mt.addImage(temp, 0); - mt.waitForID(0); - } catch (Exception ex) - { - } - - BufferedImage bi = new BufferedImage(temp.getHeight(this), - temp.getWidth(this), BufferedImage.TYPE_INT_RGB); - Graphics2D g = (Graphics2D) bi.getGraphics(); - g.rotate(Math.toRadians(90)); - g.drawImage(temp, 0, -bi.getWidth(this), this); - adjusterImage = bi; - adjusterImageHeight = bi.getHeight(); - } - - /** * DOCUMENT ME! * * @param y @@ -492,13 +457,15 @@ public class AnnotationLabels extends JPanel if (!ann.groupRef.isUseInfoLetterHeight()) { ann.groupRef.setIgnoreBelowBackground(cbmi.getState()); + // todo and recompute group annotation } } else if (!ap.av.isInfoLetterHeight()) { ap.av.setIgnoreBelowBackground(cbmi.getState(), ap); + // todo and recompute annotation } - ap.alignmentChanged(); + ap.alignmentChanged(); // todo not like this } }); pop.add(cbmi); @@ -515,11 +482,13 @@ public class AnnotationLabels extends JPanel { ann.groupRef.setInfoLetterHeight((letterHeight.getState())); ann.groupRef.setIgnoreBelowBackground(true); + // todo and recompute group annotation } else { ap.av.setInfoLetterHeight(letterHeight.getState(), ap); ap.av.setIgnoreBelowBackground(true, ap); + // todo and recompute annotation } ap.alignmentChanged(); } @@ -548,7 +517,7 @@ public class AnnotationLabels extends JPanel @Override public void actionPerformed(ActionEvent e) { - ann.groupRef.setshowHMMSequenceLogo(cprofl.getState()); + ann.groupRef.setShowHMMSequenceLogo(cprofl.getState()); ap.repaint(); } }); @@ -564,7 +533,7 @@ public class AnnotationLabels extends JPanel ann.groupRef .setNormaliseHMMSequenceLogo(cproflnorm.getState()); // automatically enable logo display if we're clicked - ann.groupRef.setshowHMMSequenceLogo(true); + ann.groupRef.setShowHMMSequenceLogo(true); ap.repaint(); } }); @@ -593,7 +562,6 @@ public class AnnotationLabels extends JPanel @Override public void actionPerformed(ActionEvent e) { - av.updateInformation(ap); av.setShowHMMSequenceLogo(cprof.getState()); ap.repaint(); } @@ -936,7 +904,7 @@ public class AnnotationLabels extends JPanel protected void showOrHideAdjuster(MouseEvent evt) { boolean was = resizePanel; - resizePanel = evt.getY() < adjusterImageHeight && evt.getX() < HEIGHT_ADJUSTER_WIDTH; + resizePanel = evt.getY() < HEIGHT_ADJUSTER_HEIGHT && evt.getX() < HEIGHT_ADJUSTER_WIDTH; if (resizePanel != was) { @@ -1087,8 +1055,9 @@ public class AnnotationLabels extends JPanel Alignment ds = new Alignment(dseqs); if (av.hasHiddenColumns()) { - omitHidden = av.getAlignment().getHiddenColumns() - .getVisibleSequenceStrings(0, sq.getLength(), seqs); + Iterator it = av.getAlignment().getHiddenColumns() + .getVisContigsIterator(0, sq.getLength(), false); + omitHidden = new String[] { sq.getSequenceStringFromIterator(it) }; } int[] alignmentStartEnd = new int[] { 0, ds.getWidth() - 1 }; @@ -1104,13 +1073,12 @@ public class AnnotationLabels extends JPanel Toolkit.getDefaultToolkit().getSystemClipboard() .setContents(new StringSelection(output), Desktop.instance); - ArrayList hiddenColumns = null; + HiddenColumns hiddenColumns = null; if (av.hasHiddenColumns()) { - - hiddenColumns = av.getAlignment().getHiddenColumns() - .getHiddenColumnsCopy(); + hiddenColumns = new HiddenColumns( + av.getAlignment().getHiddenColumns()); } Desktop.jalviewClipboard = new Object[] { seqs, ds, // what is the dataset @@ -1343,11 +1311,7 @@ public class AnnotationLabels extends JPanel } } - if (resizePanel) - { - // g.drawImage(adjusterImage, 2, 0 - getScrollOffset(), this); - } - else if (dragEvent != null && aa != null) + if (!resizePanel && dragEvent != null && aa != null) { g.setColor(Color.lightGray); g.drawString(aa[selectedRow].label, dragEvent.getX(),