X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=1574d0350772b2e8882ebb5f29efbbd05d8155b5;hb=01a838156a865a61389825b3c5c968b6d8eee8f3;hp=c3ebd7153f026eaeb325d5e66f268dd1cf7b81b7;hpb=61aec75b49682917c6c445682aa97ce8de7344aa;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index c3ebd71..1574d03 100755 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -27,10 +27,10 @@ import jalview.schemes.*; import java.awt.*; import java.awt.event.*; import java.awt.print.*; - import java.io.*; - import javax.swing.*; +import java.beans.*; + /** @@ -96,11 +96,39 @@ public class AlignmentPanel extends GAlignmentPanel hscroll.addAdjustmentListener(this); vscroll.addAdjustmentListener(this); + final AlignmentPanel ap = this; + av.addPropertyChangeListener(new PropertyChangeListener() + { + public void propertyChange(PropertyChangeEvent evt) + { + if (evt.getPropertyName().equals("alignment")) + { + PaintRefresher.Refresh(ap, + av.getSequenceSetId(), + true, + true); + alignmentChanged(); + } + } + }); adjustAnnotationHeight(); } + public void alignmentChanged() + { + av.alignmentChanged(this); + + if (overviewPanel != null) + overviewPanel.updateOverviewImage(); + + alignFrame.updateEditMenuBar(); + + repaint(); + } + + /** * DOCUMENT ME! @@ -285,7 +313,6 @@ public class AlignmentPanel extends GAlignmentPanel annotationSpaceFillerHolder.getWidth(), height)); - annotationPanel.repaint(); repaint(); } @@ -687,18 +714,19 @@ public class AlignmentPanel extends GAlignmentPanel pg.setFont(new Font(av.getFont().getName(), Font.ITALIC, av.getFont().getSize())); + SequenceI seq; for (int i = startSeq; i < endSeq; i++) { + seq = av.getAlignment().getSequenceAt(i); if ( (av.getSelectionGroup() != null) && - av.getSelectionGroup().getSequences(false).contains( - av.getAlignment().getSequenceAt(i))) + av.getSelectionGroup().getSequences(false).contains(seq)) { currentColor = Color.gray; currentTextColor = Color.black; } else { - currentColor = av.getAlignment().getSequenceAt(i).getColor(); + currentColor = av.getSequenceColour(seq); currentTextColor = Color.black; } @@ -708,10 +736,17 @@ public class AlignmentPanel extends GAlignmentPanel pg.setColor(currentTextColor); - String string = av.getAlignment().getSequenceAt(i).getDisplayId - ( av.getShowJVSuffix()); + int xPos = 0; + if (av.rightAlignIds) + { + fm = pg.getFontMetrics(); + xPos = idWidth - fm.stringWidth( + seq.getDisplayId(av.getShowJVSuffix()) + ) - 4; + } - pg.drawString(string, 0, + pg.drawString(seq.getDisplayId( av.getShowJVSuffix()), + xPos, ( ( (i - startSeq) * av.charHeight) + av.getCharHeight()) - (av.getCharHeight() / 5)); } @@ -802,8 +837,13 @@ public class AlignmentPanel extends GAlignmentPanel { SequenceI s = av.alignment.getSequenceAt(i); String string = s.getDisplayId( av.getShowJVSuffix()); - - pg.drawString(string, 0, + int xPos = 0; + if (av.rightAlignIds) + { + FontMetrics fm = getFontMetrics(italic); + xPos = idWidth - fm.stringWidth( string ) - 4; + } + pg.drawString(string, xPos, ( (i * av.charHeight) + ypos + av.charHeight) - (av.charHeight / 5)); }