< prev index next >

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java

Print this page




 485                 TransferHandler th1 = getFileChooser().getTransferHandler();
 486                 TransferHandler th2 = list.getTransferHandler();
 487                 if (th1 != th2) {
 488                     list.setTransferHandler(th1);
 489                 }
 490                 if (getFileChooser().getDragEnabled() != list.getDragEnabled()) {
 491                     list.setDragEnabled(getFileChooser().getDragEnabled());
 492                 }
 493             }
 494         }
 495 
 496         public void mouseExited(MouseEvent evt) {
 497         }
 498 
 499         public void mousePressed(MouseEvent evt) {
 500         }
 501 
 502         public void mouseReleased(MouseEvent evt) {
 503         }
 504 

 505         public void valueChanged(ListSelectionEvent evt) {
 506             if(!evt.getValueIsAdjusting()) {
 507                 JFileChooser chooser = getFileChooser();
 508                 FileSystemView fsv = chooser.getFileSystemView();
 509                 @SuppressWarnings("unchecked")
 510                 JList<?> list = (JList)evt.getSource();
 511 
 512                 int fsm = chooser.getFileSelectionMode();
 513                 boolean useSetDirectory = usesSingleFilePane &&
 514                                           (fsm == JFileChooser.FILES_ONLY);
 515 
 516                 if (chooser.isMultiSelectionEnabled()) {
 517                     File[] files = null;
 518                     Object[] objects = list.getSelectedValues();
 519                     if (objects != null) {
 520                         if (objects.length == 1
 521                             && ((File)objects[0]).isDirectory()
 522                             && chooser.isTraversable(((File)objects[0]))
 523                             && (useSetDirectory || !fsv.isFileSystem(((File)objects[0])))) {
 524                             setDirectorySelected(true);


1288     }
1289 
1290     private static final TransferHandler defaultTransferHandler = new FileTransferHandler();
1291 
1292     /**
1293      * Data transfer support for the file chooser.  Since files are currently presented
1294      * as a list, the list support is reused with the added flavor of DataFlavor.javaFileListFlavor
1295      */
1296     @SuppressWarnings("serial") // JDK-implementation class
1297     static class FileTransferHandler extends TransferHandler implements UIResource {
1298 
1299         /**
1300          * Create a Transferable to use as the source for a data transfer.
1301          *
1302          * @param c  The component holding the data to be transfered.  This
1303          *  argument is provided to enable sharing of TransferHandlers by
1304          *  multiple components.
1305          * @return  The representation of the data to be transfered.
1306          *
1307          */

1308         protected Transferable createTransferable(JComponent c) {
1309             Object[] values = null;
1310             if (c instanceof JList) {
1311                 values = ((JList)c).getSelectedValues();
1312             } else if (c instanceof JTable) {
1313                 JTable table = (JTable)c;
1314                 int[] rows = table.getSelectedRows();
1315                 if (rows != null) {
1316                     values = new Object[rows.length];
1317                     for (int i=0; i<rows.length; i++) {
1318                         values[i] = table.getValueAt(rows[i], 0);
1319                     }
1320                 }
1321             }
1322             if (values == null || values.length == 0) {
1323                 return null;
1324             }
1325 
1326             StringBuilder plainBuf = new StringBuilder();
1327             StringBuilder htmlBuf = new StringBuilder();




 485                 TransferHandler th1 = getFileChooser().getTransferHandler();
 486                 TransferHandler th2 = list.getTransferHandler();
 487                 if (th1 != th2) {
 488                     list.setTransferHandler(th1);
 489                 }
 490                 if (getFileChooser().getDragEnabled() != list.getDragEnabled()) {
 491                     list.setDragEnabled(getFileChooser().getDragEnabled());
 492                 }
 493             }
 494         }
 495 
 496         public void mouseExited(MouseEvent evt) {
 497         }
 498 
 499         public void mousePressed(MouseEvent evt) {
 500         }
 501 
 502         public void mouseReleased(MouseEvent evt) {
 503         }
 504 
 505         @SuppressWarnings("deprecation")
 506         public void valueChanged(ListSelectionEvent evt) {
 507             if(!evt.getValueIsAdjusting()) {
 508                 JFileChooser chooser = getFileChooser();
 509                 FileSystemView fsv = chooser.getFileSystemView();
 510                 @SuppressWarnings("unchecked")
 511                 JList<?> list = (JList)evt.getSource();
 512 
 513                 int fsm = chooser.getFileSelectionMode();
 514                 boolean useSetDirectory = usesSingleFilePane &&
 515                                           (fsm == JFileChooser.FILES_ONLY);
 516 
 517                 if (chooser.isMultiSelectionEnabled()) {
 518                     File[] files = null;
 519                     Object[] objects = list.getSelectedValues();
 520                     if (objects != null) {
 521                         if (objects.length == 1
 522                             && ((File)objects[0]).isDirectory()
 523                             && chooser.isTraversable(((File)objects[0]))
 524                             && (useSetDirectory || !fsv.isFileSystem(((File)objects[0])))) {
 525                             setDirectorySelected(true);


1289     }
1290 
1291     private static final TransferHandler defaultTransferHandler = new FileTransferHandler();
1292 
1293     /**
1294      * Data transfer support for the file chooser.  Since files are currently presented
1295      * as a list, the list support is reused with the added flavor of DataFlavor.javaFileListFlavor
1296      */
1297     @SuppressWarnings("serial") // JDK-implementation class
1298     static class FileTransferHandler extends TransferHandler implements UIResource {
1299 
1300         /**
1301          * Create a Transferable to use as the source for a data transfer.
1302          *
1303          * @param c  The component holding the data to be transfered.  This
1304          *  argument is provided to enable sharing of TransferHandlers by
1305          *  multiple components.
1306          * @return  The representation of the data to be transfered.
1307          *
1308          */
1309         @SuppressWarnings("deprecation")
1310         protected Transferable createTransferable(JComponent c) {
1311             Object[] values = null;
1312             if (c instanceof JList) {
1313                 values = ((JList)c).getSelectedValues();
1314             } else if (c instanceof JTable) {
1315                 JTable table = (JTable)c;
1316                 int[] rows = table.getSelectedRows();
1317                 if (rows != null) {
1318                     values = new Object[rows.length];
1319                     for (int i=0; i<rows.length; i++) {
1320                         values[i] = table.getValueAt(rows[i], 0);
1321                     }
1322                 }
1323             }
1324             if (values == null || values.length == 0) {
1325                 return null;
1326             }
1327 
1328             StringBuilder plainBuf = new StringBuilder();
1329             StringBuilder htmlBuf = new StringBuilder();


< prev index next >