Formatted source
[jalview.git] / src / jalview / appletgui / 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 \r
20 package jalview.appletgui;\r
21 \r
22 import java.awt.*;\r
23 import java.awt.event.*;\r
24 \r
25 public class IdwidthAdjuster\r
26     extends Panel implements MouseListener, MouseMotionListener\r
27 {\r
28   boolean active = false;\r
29   int oldX = 0;\r
30   Image image;\r
31   AlignmentPanel ap;\r
32 \r
33   public IdwidthAdjuster(AlignmentPanel ap)\r
34   {\r
35     setLayout(null);\r
36     this.ap = ap;\r
37     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
38     if (url != null)\r
39     {\r
40       image = java.awt.Toolkit.getDefaultToolkit().getImage(url);\r
41     }\r
42 \r
43     addMouseListener(this);\r
44     addMouseMotionListener(this);\r
45   }\r
46 \r
47   public void mousePressed(MouseEvent evt)\r
48   {\r
49     oldX = evt.getX();\r
50   }\r
51 \r
52   public void mouseReleased(MouseEvent evt)\r
53   {\r
54     active = false;\r
55     repaint();\r
56   }\r
57 \r
58   public void mouseEntered(MouseEvent evt)\r
59   {\r
60     active = true;\r
61     repaint();\r
62   }\r
63 \r
64   public void mouseExited(MouseEvent evt)\r
65   {\r
66     active = false;\r
67     repaint();\r
68   }\r
69 \r
70   public void mouseDragged(MouseEvent evt)\r
71   {\r
72     active = true;\r
73     Dimension d = ap.idPanel.idCanvas.getSize();\r
74     int dif = evt.getX() - oldX;\r
75 \r
76     if (d.width + dif > 20 || dif > 0)\r
77     {\r
78       ap.setIdWidth(d.width + dif, d.height);\r
79       this.setSize(d.width + dif, getSize().height);\r
80     }\r
81 \r
82     oldX = evt.getX();\r
83   }\r
84 \r
85   public void mouseMoved(MouseEvent evt)\r
86   {}\r
87 \r
88   public void mouseClicked(MouseEvent evt)\r
89   {}\r
90 \r
91   public void paint(Graphics g)\r
92   {\r
93     g.setColor(Color.white);\r
94     g.fillRect(0, 0, getSize().width, getSize().height);\r
95     if (active)\r
96     {\r
97       if (image != null)\r
98       {\r
99         g.drawImage(image, getSize().width - 20, 2, this);\r
100       }\r
101     }\r
102   }\r
103 \r
104 }\r