Formatted source
[jalview.git] / src / jalview / gui / IdwidthAdjuster.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  *\r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package jalview.gui;\r
20 \r
21 import java.awt.*;\r
22 import java.awt.event.*;\r
23 import javax.swing.*;\r
24 \r
25 public class IdwidthAdjuster\r
26     extends JPanel implements MouseListener,\r
27     MouseMotionListener\r
28 {\r
29   boolean active = false;\r
30   int oldX = 0;\r
31   Image image;\r
32   AlignmentPanel ap;\r
33 \r
34   public IdwidthAdjuster(AlignmentPanel ap)\r
35   {\r
36     this.ap = ap;\r
37 \r
38     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
39 \r
40     if (url != null)\r
41     {\r
42       image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
43     }\r
44 \r
45     addMouseListener(this);\r
46     addMouseMotionListener(this);\r
47   }\r
48 \r
49   public void mousePressed(MouseEvent evt)\r
50   {\r
51     oldX = evt.getX();\r
52   }\r
53 \r
54   public void mouseReleased(MouseEvent evt)\r
55   {\r
56     active = false;\r
57     repaint();\r
58   }\r
59 \r
60   public void mouseEntered(MouseEvent evt)\r
61   {\r
62     active = true;\r
63     repaint();\r
64   }\r
65 \r
66   public void mouseExited(MouseEvent evt)\r
67   {\r
68     active = false;\r
69     repaint();\r
70   }\r
71 \r
72   public void mouseDragged(MouseEvent evt)\r
73   {\r
74     active = true;\r
75 \r
76     Dimension d = ap.idPanel.idCanvas.getPreferredSize();\r
77     int dif = evt.getX() - oldX;\r
78 \r
79     if ( ( (d.width + dif) > 20) || (dif > 0))\r
80     {\r
81       ap.idPanel.idCanvas.setPreferredSize(new Dimension(d.width + dif,\r
82           d.height));\r
83       ap.repaint();\r
84     }\r
85 \r
86     oldX = evt.getX();\r
87   }\r
88 \r
89   public void mouseMoved(MouseEvent evt)\r
90   {\r
91   }\r
92 \r
93   public void mouseClicked(MouseEvent evt)\r
94   {\r
95   }\r
96 \r
97   public void paintComponent(Graphics g)\r
98   {\r
99     g.setColor(Color.white);\r
100     g.fillRect(0, 0, getWidth(), getHeight());\r
101 \r
102     if (active)\r
103     {\r
104       if (image != null)\r
105       {\r
106         g.drawImage(image, getWidth() - 20, 2, this);\r
107       }\r
108     }\r
109   }\r
110 }\r