GPL license added
[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 \r
20 package jalview.gui;\r
21 \r
22 import javax.swing.*;\r
23 import java.awt.event.*;\r
24 import java.awt.*;\r
25 \r
26 \r
27 public class IdwidthAdjuster extends JPanel implements MouseListener, 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     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
38        if (url != null)\r
39          image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
40 \r
41     addMouseListener(this);\r
42     addMouseMotionListener(this);\r
43   }\r
44 \r
45   public void mousePressed(MouseEvent evt)\r
46   { oldX = evt.getX(); }\r
47 \r
48   public void mouseReleased(MouseEvent evt){ active = false; repaint(); }\r
49   public void mouseEntered(MouseEvent evt) { active = true;  repaint();}\r
50   public void mouseExited(MouseEvent evt)  { active = false; repaint();}\r
51   public void mouseDragged(MouseEvent evt)\r
52   {\r
53     active = true;\r
54     Dimension d = ap.idPanel.idCanvas.getPreferredSize();\r
55     int dif = evt.getX() - oldX;\r
56 \r
57     if(d.width+dif>20 || dif>0)\r
58     {\r
59       ap.idPanel.idCanvas.setPreferredSize(new Dimension(d.width + dif,d.height));\r
60       ap.repaint();\r
61     }\r
62 \r
63     oldX = evt.getX();\r
64   }\r
65 \r
66   public void mouseMoved(MouseEvent evt)   {}\r
67   public void mouseClicked(MouseEvent evt) {}\r
68 \r
69   public void paintComponent(Graphics g)\r
70   {\r
71     g.setColor(Color.white);\r
72     g.fillRect(0,0, getWidth(), getHeight());\r
73     if(active)\r
74     {\r
75       if(image!=null)\r
76         g.drawImage(image, getWidth()-20, 2, this);\r
77     }\r
78   }\r
79 \r
80 }\r