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();
|