1 /*
2  * $Id$
3  *
4  * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
5  * Copyright (c) 2002-2014, Professor Benoit Macq
6  * Copyright (c) 2010-2011, Kaori Hagihara
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 import java.awt.*;
32 import java.awt.event.*;
33 import javax.swing.*;
34 
35 class ResizeListener implements ComponentListener
36 {
37     private ImageViewer iv;
38     private Dimension largest;
39 
ResizeListener( ImageViewer _iv)40     public ResizeListener( ImageViewer _iv)
41     {
42 	iv = _iv;
43 	largest = iv.getSize();
44     }
45 
componentHidden(ComponentEvent e)46     public void componentHidden(ComponentEvent e) {}
47 
componentMoved(ComponentEvent e)48     public void componentMoved(ComponentEvent e) {}
49 
componentResized(ComponentEvent e)50     public void componentResized(ComponentEvent e) {
51 	Dimension cursize = iv.getSize();
52 	if( largest.getWidth() < cursize.getWidth() || largest.getHeight() < cursize.getHeight()){
53 	    update_largest( cursize);
54 	    iv.enlarge();
55 	}
56     }
57 
update_largest( Dimension cursize)58     private void update_largest( Dimension cursize)
59     {
60 	if( largest.getWidth() < cursize.getWidth())
61 	    largest.setSize( cursize.getWidth(), largest.getHeight());
62 	if( largest.getHeight() < cursize.getHeight())
63 	    largest.setSize( largest.getWidth(), cursize.getHeight());
64     }
65 
componentShown(ComponentEvent e)66     public void componentShown(ComponentEvent e) {}
67 }
68