Formatting
[jalview.git] / src / jalview / gui / IdwidthAdjuster.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2007 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 /**\r
26  * DOCUMENT ME!\r
27  *\r
28  * @author $author$\r
29  * @version $Revision$\r
30  */\r
31 public class IdwidthAdjuster\r
32     extends JPanel implements MouseListener,\r
33     MouseMotionListener\r
34 {\r
35   boolean active = false;\r
36   int oldX = 0;\r
37   Image image;\r
38   AlignmentPanel ap;\r
39 \r
40   /**\r
41    * Creates a new IdwidthAdjuster object.\r
42    *\r
43    * @param ap DOCUMENT ME!\r
44    */\r
45   public IdwidthAdjuster(AlignmentPanel ap)\r
46   {\r
47     this.ap = ap;\r
48 \r
49     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
50 \r
51     if (url != null)\r
52     {\r
53       image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
54     }\r
55 \r
56     addMouseListener(this);\r
57     addMouseMotionListener(this);\r
58   }\r
59 \r
60   /**\r
61    * DOCUMENT ME!\r
62    *\r
63    * @param evt DOCUMENT ME!\r
64    */\r
65   public void mousePressed(MouseEvent evt)\r
66   {\r
67     oldX = evt.getX();\r
68   }\r
69 \r
70   /**\r
71    * DOCUMENT ME!\r
72    *\r
73    * @param evt DOCUMENT ME!\r
74    */\r
75   public void mouseReleased(MouseEvent evt)\r
76   {\r
77     active = false;\r
78     repaint();\r
79   }\r
80 \r
81   /**\r
82    * DOCUMENT ME!\r
83    *\r
84    * @param evt DOCUMENT ME!\r
85    */\r
86   public void mouseEntered(MouseEvent evt)\r
87   {\r
88     active = true;\r
89     repaint();\r
90   }\r
91 \r
92   /**\r
93    * DOCUMENT ME!\r
94    *\r
95    * @param evt DOCUMENT ME!\r
96    */\r
97   public void mouseExited(MouseEvent evt)\r
98   {\r
99     active = false;\r
100     repaint();\r
101   }\r
102 \r
103   /**\r
104    * DOCUMENT ME!\r
105    *\r
106    * @param evt DOCUMENT ME!\r
107    */\r
108   public void mouseDragged(MouseEvent evt)\r
109   {\r
110     active = true;\r
111 \r
112     Dimension d = ap.idPanel.idCanvas.getPreferredSize();\r
113     int dif = evt.getX() - oldX;\r
114 \r
115     if ( ( (d.width + dif) > 20) || (dif > 0))\r
116     {\r
117       ap.idPanel.idCanvas.setPreferredSize(new Dimension(d.width + dif,\r
118           d.height));\r
119       ap.repaint();\r
120     }\r
121 \r
122     oldX = evt.getX();\r
123   }\r
124 \r
125   /**\r
126    * DOCUMENT ME!\r
127    *\r
128    * @param evt DOCUMENT ME!\r
129    */\r
130   public void mouseMoved(MouseEvent evt)\r
131   {\r
132   }\r
133 \r
134   /**\r
135    * DOCUMENT ME!\r
136    *\r
137    * @param evt DOCUMENT ME!\r
138    */\r
139   public void mouseClicked(MouseEvent evt)\r
140   {\r
141   }\r
142 \r
143   /**\r
144    * DOCUMENT ME!\r
145    *\r
146    * @param g DOCUMENT ME!\r
147    */\r
148   public void paintComponent(Graphics g)\r
149   {\r
150     g.setColor(Color.white);\r
151     g.fillRect(0, 0, getWidth(), getHeight());\r
152 \r
153     if (active)\r
154     {\r
155       if (image != null)\r
156       {\r
157         g.drawImage(image, getWidth() - 20, 2, this);\r
158       }\r
159     }\r
160   }\r
161 }\r