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