source: 3thparty/jupload/src/main/java/wjhk/jupload2/gui/image/PictureDialog.java @ 3951

Revision 3951, 4.8 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1709 - Adicao de codigo fonte java do componente jupload

Line 
1//
2// $Id: PictureDialog.java 298 2007-07-12 10:17:32 +0000 (jeu., 12 juil. 2007)
3// etienne_sf $
4//
5// jupload - A file upload applet.
6// Copyright 2007 The JUpload Team
7//
8// Created: 2006-07-10
9// Creator: etienne_sf
10// Last modified: $Date: 2010-01-08 20:21:44 -0200 (Sex, 08 Jan 2010) $
11//
12// This program is free software; you can redistribute it and/or modify it under
13// the terms of the GNU General Public License as published by the Free Software
14// Foundation; either version 2 of the License, or (at your option) any later
15// version. This program is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
18// details. You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software Foundation, Inc.,
20// 675 Mass Ave, Cambridge, MA 02139, USA.
21
22package wjhk.jupload2.gui.image;
23
24import java.awt.BorderLayout;
25import java.awt.Cursor;
26import java.awt.Dimension;
27import java.awt.Frame;
28import java.awt.Toolkit;
29import java.awt.event.ActionEvent;
30import java.awt.event.ActionListener;
31import java.awt.event.ComponentEvent;
32import java.awt.event.ComponentListener;
33
34import javax.swing.JButton;
35import javax.swing.JDialog;
36
37import wjhk.jupload2.filedata.PictureFileData;
38import wjhk.jupload2.policies.UploadPolicy;
39
40/**
41 * A maximized modal dialog box, that display the selected picture.
42 *
43 * @author etienne_sf
44 */
45public class PictureDialog extends JDialog implements ActionListener,
46        ComponentListener {
47
48    /** A generated serialVersionUID, to avoid warning during compilation */
49    private static final long serialVersionUID = 7802205907550854333L;
50
51    JButton buttonClose;
52
53    PictureFileData pictureFileData = null;
54
55    PicturePanel picturePanel = null;
56
57    UploadPolicy uploadPolicy = null;
58
59    /**
60     * Creates a new instance.
61     *
62     * @param owner The parent frame.
63     * @param pictureFileData The picture to manage.
64     * @param uploadPolicy The upload policy which applies.
65     */
66    public PictureDialog(Frame owner, PictureFileData pictureFileData,
67            UploadPolicy uploadPolicy) {
68        super(owner, pictureFileData.getFileName(), true);
69
70        this.uploadPolicy = uploadPolicy;
71        this.pictureFileData = pictureFileData;
72
73        // This will be a long operation. The cursor will set back to normal in
74        // componentShown, see below
75        setCursor(new Cursor(Cursor.WAIT_CURSOR));
76
77        // Creation of the image area
78        this.picturePanel = new DialogPicturePanel(this, uploadPolicy,
79                pictureFileData);
80
81        // Creation of the buttonClose button.
82        this.buttonClose = new JButton(uploadPolicy
83                .getLocalizedString("buttonClose"));
84        this.buttonClose.setMaximumSize(new Dimension(100, 100));
85        this.buttonClose.addActionListener(this);
86
87        getContentPane().add(this.buttonClose, BorderLayout.SOUTH);
88        getContentPane().add(this.picturePanel);
89
90        pack();
91        // Correction given by
92        // setSize(getMaximumSize()); generate very high number under MAC OSX ->
93        // Applet Crash
94        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
95        setBounds(0, 0, screenSize.width, screenSize.height);
96
97        // The dialog is modal: the next line will return when the DialogPicture
98        // is hidden (to be closed, in our case)
99        // But we want to know when it will becom visible, to clear the wait
100        // cursor.
101        addComponentListener(this);
102        setVisible(true);
103
104        // MEMORY LEAK CORRECTION :
105
106        // Let's free some memory.
107        // This is necessary, as the finalize method is not called (if anyone
108        // has an explanation...).
109        // So, I have to manually free the memory consummed to display the
110        // image, here.
111        this.picturePanel.setPictureFile(null, null, null);
112    }
113
114    /**
115     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
116     */
117    public void actionPerformed(ActionEvent event) {
118        if (event.getActionCommand() == this.buttonClose.getActionCommand()) {
119            this.uploadPolicy.displayDebug(
120                    "[PictureDialog] Before this.dispose()", 10);
121            this.dispose();
122        }
123    }
124
125    /** {@inheritDoc} */
126    public void componentHidden(ComponentEvent arg0) {
127        // No action
128    }
129
130    /** {@inheritDoc} */
131    public void componentMoved(ComponentEvent arg0) {
132        // No action
133    }
134
135    /** {@inheritDoc} */
136    public void componentResized(ComponentEvent arg0) {
137        // No action
138    }
139
140    /** {@inheritDoc} */
141    public void componentShown(ComponentEvent arg0) {
142        // We set the cursor back to normal
143        setCursor(new Cursor(Cursor.HAND_CURSOR));
144    }
145
146}
Note: See TracBrowser for help on using the repository browser.