Coverage Report - wjhk.jupload2.gui.JUploadFileChooser
 
Classes in this File Line Coverage Branch Coverage Complexity
JUploadFileChooser
0 %
0/21
0 %
0/2
1,333
 
 1  
 //
 2  
 // $Id: JUploadPanelImpl.java 205 2007-05-28 20:24:01 +0000 (lun., 28 mai 2007)
 3  
 // felfert $
 4  
 //
 5  
 // jupload - A file upload applet.
 6  
 // Copyright 2007 The JUpload Team
 7  
 //
 8  
 // Created: ?
 9  
 // Creator: etienne_sf
 10  
 // Last modified: $Date: 2007-05-28 20:24:01 +0000 (lun., 28 mai 2007) $
 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  
 
 22  
 package wjhk.jupload2.gui;
 23  
 
 24  
 import javax.swing.JFileChooser;
 25  
 
 26  
 import wjhk.jupload2.policies.UploadPolicy;
 27  
 
 28  
 /**
 29  
  * This class allows easy personalization of the java file chooser. It asks the
 30  
  * current upload policy for all current configuration parameters. It is created
 31  
  * by the {@link JUploadPanel} instances.
 32  
  */
 33  
 @SuppressWarnings("serial")
 34  
 public class JUploadFileChooser extends JFileChooser {
 35  
 
 36  
     // /////////////////////////////////////////////////////////////////////////////////////////////////////
 37  
     // /////////////////////////////// Attributes
 38  
     // /////////////////////////////////////////////////////////////////////////////////////////////////////
 39  
 
 40  
     /** The current upload policy */
 41  0
     private UploadPolicy uploadPolicy = null;
 42  
 
 43  0
     private JUploadFileFilter fileFilter = null;
 44  
 
 45  
     /** This file view add picture management capabilities to the file chooser */
 46  0
     private JUploadFileView fileView = null;
 47  
 
 48  
     // /////////////////////////////////////////////////////////////////////////////////////////////////////
 49  
     // /////////////////////////////// Methods
 50  
     // /////////////////////////////////////////////////////////////////////////////////////////////////////
 51  
 
 52  
     /**
 53  
      * The 'standard' constructor for our file chooser
 54  
      * 
 55  
      * @param uploadPolicyParam
 56  
      */
 57  
     public JUploadFileChooser(UploadPolicy uploadPolicyParam) {
 58  0
         super(uploadPolicyParam.getCurrentBrowsingDirectory());
 59  
 
 60  0
         uploadPolicyParam.displayDebug(
 61  
                 "Starting JUploadFileChooser constructor", 80);
 62  0
         this.uploadPolicy = uploadPolicyParam;
 63  
 
 64  0
         this.fileFilter = new JUploadFileFilter(this.uploadPolicy);
 65  0
         this.fileView = new JUploadFileView(this.uploadPolicy, this);
 66  
 
 67  
         // TODO This breaks usability. probably use a persistent value of a
 68  
         // cookie later.
 69  
         // this.fileChooser.setCurrentDirectory(new File(System
 70  
         // .getProperty("user.dir")));
 71  0
         setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
 72  0
         setMultiSelectionEnabled(true);
 73  
 
 74  
         // Hidden file should not be visible.
 75  0
         setFileHidingEnabled(true);
 76  
 
 77  
         // The file view must be set, whether or not a file filter exists
 78  
         // for this upload policy.
 79  0
         setFileView(this.fileView);
 80  0
         if (this.uploadPolicy.fileFilterGetDescription() != null) {
 81  0
             setFileFilter(this.fileFilter);
 82  
             // If a file filter has been given to the applet, only these file
 83  
             // should be allowed.
 84  0
             setAcceptAllFileFilterUsed(false);
 85  
         }
 86  0
     }
 87  
 
 88  
     /**
 89  
      * Shutdown any running task. Currently, only the JUploadFileView may have
 90  
      * running tasks, when calculating icon for picture files.
 91  
      */
 92  
     public void shutdownNow() {
 93  0
         this.fileView.shutdownNow();
 94  0
     }
 95  
 
 96  
     /**
 97  
      * This method is called when the file chooser is closed. We just shutdown
 98  
      * any running job.
 99  
      */
 100  
     @Override
 101  
     public void approveSelection() {
 102  0
         shutdownNow();
 103  0
         super.approveSelection();
 104  0
     }
 105  
 
 106  
 }