Bug #757 » paste.patch
| src/test/java/wjhk/jupload2/testhelpers/JUploadPanelTestHelper.java (copie de travail) | ||
|---|---|---|
| 
     package wjhk.jupload2.testhelpers;
 
   | 
||
| 
     | 
||
| 
     import java.awt.event.ActionListener;
 
   | 
||
| 
     import java.awt.event.KeyListener;
 
   | 
||
| 
     import java.awt.event.MouseEvent;
 
   | 
||
| 
     import java.awt.event.MouseListener;
 
   | 
||
| 
     | 
||
| ... | ... | |
| 
     		throw new UnsupportedOperationException(this.getClass()
 
   | 
||
| 
     				+ ".getMouseListener() is not implemented in tests cases");
 
   | 
||
| 
     	}
 
   | 
||
| 
     | 
||
| 
         /**
 
   | 
||
| 
     	 * @see wjhk.jupload2.gui.JUploadPanel#getKeyListener()
 
   | 
||
| 
     	 */
 
   | 
||
| 
     	public KeyListener getKeyListener() {
 
   | 
||
| 
     		throw new UnsupportedOperationException(this.getClass()
 
   | 
||
| 
     				+ ".getKeyListener() is not implemented in tests cases");
 
   | 
||
| 
     	}
 
   | 
||
| 
     | 
||
| 
     	/**
 
   | 
||
| 
     	 * @see wjhk.jupload2.gui.JUploadPanel#getPreparationProgressBar()
 
   | 
||
| src/main/java/wjhk/jupload2/gui/JUploadPanelImpl.java (copie de travail) | ||
|---|---|---|
| 
     import java.awt.event.ActionEvent; 
   | 
||
| 
     import java.awt.event.ActionListener; 
   | 
||
| 
     import java.awt.event.InputEvent; 
   | 
||
| 
     import java.awt.event.KeyEvent; 
   | 
||
| 
     import java.awt.event.KeyListener; 
   | 
||
| 
     import java.awt.event.MouseEvent; 
   | 
||
| 
     import java.awt.event.MouseListener; 
   | 
||
| ... | ... | |
| 
     import javax.swing.JPanel; 
   | 
||
| 
     import javax.swing.JProgressBar; 
   | 
||
| 
     import javax.swing.JScrollPane; 
   | 
||
| 
     import javax.swing.KeyStroke; 
   | 
||
| 
     import javax.swing.ScrollPaneConstants; 
   | 
||
| 
     import javax.swing.SwingConstants; 
   | 
||
| 
     import javax.swing.TransferHandler; 
   | 
||
| ... | ... | |
| 
      * @version $Revision$ 
   | 
||
| 
      */ 
   | 
||
| 
     public class JUploadPanelImpl extends JPanel implements ActionListener, 
   | 
||
| 
     		JUploadPanel, MouseListener { 
   | 
||
| 
     		JUploadPanel, MouseListener, KeyListener { 
   | 
||
| 
     	/** A generated serialVersionUID, to avoid warning during compilation */ 
   | 
||
| 
     	private static final long serialVersionUID = -1212601012568225757L; 
   | 
||
| ... | ... | |
| 
     				this.uploadPolicy, this); 
   | 
||
| 
     		this.setTransferHandler(jUploadTransfertHandler); 
   | 
||
| 
     		this.filePanel.setTransferHandler(jUploadTransfertHandler); 
   | 
||
| 
             ((FilePanelTableImp) this.filePanel).addKeyListener(this); 
   | 
||
| 
             ((FilePanelTableImp) this.filePanel).setFocusable(true); 
   | 
||
| 
     		ActionMap map = this.getActionMap(); 
   | 
||
| 
     		map.put(TransferHandler.getPasteAction().getValue(Action.NAME), 
   | 
||
| 
     				TransferHandler.getPasteAction()); 
   | 
||
| 
             map.put(TransferHandler.getPasteAction().getValue(Action.NAME), TransferHandler.getPasteAction()); 
   | 
||
| 
     		// The JUploadPanelImpl will listen to Mouse messages for the standard 
   | 
||
| 
     		// component. The current only application of this, it the CTRL+Righ 
   | 
||
| ... | ... | |
| 
     		this.uploadButton.addMouseListener(this); 
   | 
||
| 
     		this.jLogWindowPane.addMouseListener(this); 
   | 
||
| 
     		logWindow.addMouseListener(this); 
   | 
||
| 
             this.jLogWindowPane.setFocusable(true); 
   | 
||
| 
     		this.logWindow.addMouseListener(this); 
   | 
||
| 
             this.logWindow.setFocusable(true); 
   | 
||
| 
     		this.preparationProgressBar.addMouseListener(this); 
   | 
||
| 
     		this.uploadProgressBar.addMouseListener(this); 
   | 
||
| 
             this.uploadProgressBar.addKeyListener(this); 
   | 
||
| 
             this.uploadProgressBar.setFocusable(true); 
   | 
||
| 
     		this.statusLabel.addMouseListener(this); 
   | 
||
| 
             this.statusLabel.addKeyListener(this); 
   | 
||
| 
     | 
||
| 
     		// Then: display them on the applet 
   | 
||
| 
     		this.uploadPolicy.addComponentsToJUploadPanel(this); 
   | 
||
| 
     	} 
   | 
||
| ... | ... | |
| 
     				.getValue(Action.NAME); 
   | 
||
| 
     		if (e.getActionCommand().equals(actionPaste)) { 
   | 
||
| 
     			Action a = getActionMap().get(actionPaste); 
   | 
||
| 
     			if (a != null) { 
   | 
||
| 
     				a.actionPerformed(new ActionEvent(this.filePanel, 
   | 
||
| 
                         ActionEvent.ACTION_PERFORMED, e.getActionCommand())); 
   | 
||
| 
                     this.uploadPolicy.afterFileDropped(new DropTargetDropEvent(new DropTarget( 
   | 
||
| 
                         this.filePanel.getDropComponent(), this.dndListener).getDropTargetContext(), 
   | 
||
| 
                         new Point(), DnDConstants.ACTION_MOVE, DnDConstants.ACTION_COPY_OR_MOVE )); 
   | 
||
| 
     			} 
   | 
||
| 
                 processPasteAction(e.getActionCommand());			 
   | 
||
| 
     		} else if (e.getActionCommand() == this.browseButton.getActionCommand()) { 
   | 
||
| 
     			doBrowse(); 
   | 
||
| 
     		} else if (e.getActionCommand() == this.removeButton.getActionCommand()) { 
   | 
||
| ... | ... | |
| 
     			doStopUpload(); 
   | 
||
| 
     		} 
   | 
||
| 
     		// focus the table. This is necessary in order to enable mouse 
   | 
||
| 
     		// events 
   | 
||
| 
     		// for triggering tooltips. 
   | 
||
| 
     		// events for triggering tooltips. 
   | 
||
| 
     		this.filePanel.focusTable(); 
   | 
||
| 
     	} 
   | 
||
| ... | ... | |
| 
     				} 
   | 
||
| 
     			} 
   | 
||
| 
     		} 
   | 
||
| 
             this.filePanel.focusTable(); 
   | 
||
| 
     		return false; 
   | 
||
| 
     	} 
   | 
||
| ... | ... | |
| 
     	public ActionListener getActionListener() { 
   | 
||
| 
     		return this; 
   | 
||
| 
     	} 
   | 
||
| 
         /** {@inheritDoc} */ 
   | 
||
| 
         public KeyListener getKeyListener() { 
   | 
||
| 
     		return this; 
   | 
||
| 
     	} 
   | 
||
| 
     	/** {@inheritDoc} */ 
   | 
||
| 
     	public JButton getBrowseButton() { 
   | 
||
| ... | ... | |
| 
     		return fileUploadManagerThread; 
   | 
||
| 
     	} 
   | 
||
| 
       public void keyTyped(KeyEvent e) { 
   | 
||
| 
         if(e.isControlDown() && (e.getKeyChar() == 'c' || e.getKeyChar() == 'C' || e.getKeyChar() == '\u0016')) { 
   | 
||
| 
           processPasteAction("paste"); 
   | 
||
| 
           this.filePanel.focusTable(); 
   | 
||
| 
         } 
   | 
||
| 
       } 
   | 
||
| 
       public void keyPressed(KeyEvent e) { 
   | 
||
| 
       } 
   | 
||
| 
       public void keyReleased(KeyEvent e) {      
   | 
||
| 
       } 
   | 
||
| 
     | 
||
| 
     | 
||
| 
       protected void processPasteAction(String command) { 
   | 
||
| 
           Action a = getActionMap().get(TransferHandler.getPasteAction().getValue(Action.NAME)); 
   | 
||
| 
           if (a != null) { 
   | 
||
| 
               a.actionPerformed(new ActionEvent(this.filePanel, ActionEvent.ACTION_PERFORMED, command)); 
   | 
||
| 
               this.uploadPolicy.afterFileDropped(new DropTargetDropEvent(new DropTarget( 
   | 
||
| 
                   this.filePanel.getDropComponent(), this.dndListener).getDropTargetContext(), 
   | 
||
| 
                   new Point(), DnDConstants.ACTION_MOVE, DnDConstants.ACTION_COPY_OR_MOVE )); 
   | 
||
| 
           } 
   | 
||
| 
       } 
   | 
||
| 
     } 
   | 
||
| src/main/java/wjhk/jupload2/gui/JUploadPanel.java (copie de travail) | ||
|---|---|---|
| 
     package wjhk.jupload2.gui; 
   | 
||
| 
     import java.awt.event.ActionListener; 
   | 
||
| 
     import java.awt.event.KeyListener; 
   | 
||
| 
     import java.awt.event.MouseEvent; 
   | 
||
| 
     import java.awt.event.MouseListener; 
   | 
||
| ... | ... | |
| 
          * @return the MouseListener 
   | 
||
| 
          */ 
   | 
||
| 
         public MouseListener getMouseListener(); 
   | 
||
| 
     | 
||
| 
          /** 
   | 
||
| 
          * The component that manages the keyboard. 
   | 
||
| 
          *  
   | 
||
| 
          * @return the KeyListener 
   | 
||
| 
          */ 
   | 
||
| 
     	public KeyListener getKeyListener(); 
   | 
||
| 
         /** 
   | 
||
| 
          * @return the preparationProgressBar 
   | 
||
| src/main/java/wjhk/jupload2/gui/filepanel/FilePanelTableImp.java (copie de travail) | ||
|---|---|---|
| 
         /** 
   | 
||
| 
          * The main panel of the applet. 
   | 
||
| 
          */ 
   | 
||
| 
         private JUploadPanel juploadPanel = null;; 
   | 
||
| 
         private JUploadPanel juploadPanel = null; 
   | 
||
| 
         /** 
   | 
||
| 
          * Creates a new instance. 
   | 
||
| ... | ... | |
| 
             setLayout(new BorderLayout()); 
   | 
||
| 
             addMouseListener(juploadPanel.getMouseListener()); 
   | 
||
| 
             addKeyListener(juploadPanel.getKeyListener()); 
   | 
||
| 
             setTransferHandler(juploadPanel.getTransferHandler()); 
   | 
||
| 
             this.jtable = new FilePanelJTable(juploadPanel, uploadPolicy); 
   | 
||
| ... | ... | |
| 
             JScrollPane scrollPane = new JScrollPane(this.jtable); 
   | 
||
| 
             add(scrollPane, BorderLayout.CENTER); 
   | 
||
| 
             scrollPane.addMouseListener(juploadPanel.getMouseListener()); 
   | 
||
| 
             scrollPane.addKeyListener(juploadPanel.getKeyListener()); 
   | 
||
| 
         } 
   | 
||
| 
         /** 
   | 
||
| src/main/java/wjhk/jupload2/policies/DefaultUploadPolicy.java (copie de travail) | ||
|---|---|---|
| 
     		// Then, we display it to the user. 
   | 
||
| 
     		String alertMsg = errorText; 
   | 
||
| 
     		// Then, the message body can be completed by the exception message. 
   | 
||
| 
     		if (exception != null && (errorText == null || errorText.equals(""))) { 
   | 
||
| 
     		if (exception != null && (errorText == null || "".equals(errorText))) { 
   | 
||
| 
     			// Ok, we have an exception. 
   | 
||
| 
     			if (exception.getCause() != null) { 
   | 
||
| 
     				alertMsg = exception.getCause().getMessage(); 
   | 
||