View Javadoc
1   //
2   // $Id$
3   //
4   // jupload - A file upload applet.
5   //
6   // Copyright 2007 The JUpload Team
7   //
8   // Created: 10 oct. 07
9   // Creator: etienne_sf
10  // Last modified: $Date$
11  //
12  // This program is free software; you can redistribute it and/or modify
13  // it under the terms of the GNU General Public License as published by
14  // the Free Software Foundation; either version 2 of the License, or
15  // (at your option) any later version.
16  //
17  // This program is distributed in the hope that it will be useful,
18  // but WITHOUT ANY WARRANTY; without even the implied warranty of
19  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  // GNU General Public License for more details.
21  //
22  // You should have received a copy of the GNU General Public License
23  // along with this program; if not, write to the Free Software
24  // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25  
26  package wjhk.jupload2.policies;
27  
28  import java.awt.BorderLayout;
29  import java.awt.GridLayout;
30  import java.awt.dnd.DropTargetDropEvent;
31  
32  import wjhk.jupload2.context.JUploadContext;
33  import wjhk.jupload2.exception.JUploadException;
34  import wjhk.jupload2.gui.JUploadPanel;
35  
36  /**
37   * 
38   * Upload policy that is a simple box. It's a 'simple' drop target. Upload
39   * starts immediately, when files are dropped on the applet. <BR>
40   * The only component displayed on the applet is the progress bar.
41   * 
42   * @author etienne_sf
43   * 
44   */
45  public class FilesTogetherUploadPolicy extends DefaultUploadPolicy {
46  
47      /**
48       * The JUpload constructor for this upload policy. Like all upload policies,
49       * this constructor is called by the {@link UploadPolicyFactory}
50       * 
51       * @param juploadContext
52       * @throws JUploadException
53       */
54      public FilesTogetherUploadPolicy(JUploadContext juploadContext)
55              throws JUploadException {
56          super(juploadContext);
57      }
58  
59      /**
60       * This methods allow the upload policy to override the default disposition
61       * of the components on the applet.
62       * 
63       * @see UploadPolicy#addComponentsToJUploadPanel(JUploadPanel)
64       */
65  
66      @Override
67      public void addComponentsToJUploadPanel(JUploadPanel jUploadPanel) {
68          // Set the global layout of the panel.
69          jUploadPanel.getJComponent().setLayout(new GridLayout(1, 1));
70          jUploadPanel.getJComponent().setLayout(new BorderLayout());
71          // Then, add on the screen of the only component that is visible.
72          jUploadPanel.getJComponent().add(jUploadPanel.getUploadProgressBar(),
73                  BorderLayout.CENTER);
74          // Now, we add the log window.
75          jUploadPanel.showOrHideLogWindow();
76          jUploadPanel.getJComponent().add(jUploadPanel.getJLogWindowPane(),
77                  BorderLayout.SOUTH);
78      }
79  
80      /**
81       * Default reaction after a successful drop operation: no action.
82       * 
83       * @see UploadPolicy#afterFileDropped(DropTargetDropEvent)
84       */
85  
86      @Override
87      public void afterFileDropped(DropTargetDropEvent dropEvent) {
88          getContext().getUploadPanel().doStartUpload();
89      }
90  
91  }