invalidate alignPanel before changing size
[jalview.git] / src / jalview / gui / IdwidthAdjuster.java
1 package jalview.gui;\r
2 \r
3 import javax.swing.*;\r
4 import java.awt.event.*;\r
5 import java.awt.*;\r
6 \r
7 \r
8 public class IdwidthAdjuster extends JPanel implements MouseListener, MouseMotionListener\r
9 {\r
10   boolean active = false;\r
11   int oldX=0;\r
12   Image image;\r
13   AlignmentPanel ap ;\r
14 \r
15   public IdwidthAdjuster(AlignmentPanel ap)\r
16   {\r
17     this.ap = ap;\r
18     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
19        if (url != null)\r
20          image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
21 \r
22     addMouseListener(this);\r
23     addMouseMotionListener(this);\r
24   }\r
25 \r
26   public void mousePressed(MouseEvent evt)\r
27   { oldX = evt.getX(); }\r
28 \r
29   public void mouseReleased(MouseEvent evt){ active = false; repaint(); }\r
30   public void mouseEntered(MouseEvent evt) { active = true;  repaint();}\r
31   public void mouseExited(MouseEvent evt)  { active = false; repaint();}\r
32   public void mouseDragged(MouseEvent evt)\r
33   {\r
34     active = true;\r
35     Dimension d = ap.idPanel.idCanvas.getPreferredSize();\r
36     int dif = evt.getX() - oldX;\r
37 \r
38     if(d.width+dif>20 || dif>0)\r
39     {\r
40       ap.idPanel.idCanvas.setPreferredSize(new Dimension(d.width + dif,d.height));\r
41       ap.invalidate();\r
42       ap.RefreshPanels();\r
43     }\r
44 \r
45     oldX = evt.getX();\r
46   }\r
47 \r
48   public void mouseMoved(MouseEvent evt)   {}\r
49   public void mouseClicked(MouseEvent evt) {}\r
50 \r
51   public void paintComponent(Graphics g)\r
52   {\r
53     g.setColor(Color.white);\r
54     g.fillRect(0,0, getWidth(), getHeight());\r
55     if(active)\r
56     {\r
57       if(image!=null)\r
58         g.drawImage(image, getWidth()-20, 2, this);\r
59     }\r
60   }\r
61 \r
62 }\r