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