722 protected void handleFileDropEvent(final DropTargetDropEvent dtde) { |
722 protected void handleFileDropEvent(final DropTargetDropEvent dtde) { |
723 dtde.acceptDrop(dtde.getDropAction()); |
723 dtde.acceptDrop(dtde.getDropAction()); |
724 final Transferable transferable = dtde.getTransferable(); |
724 final Transferable transferable = dtde.getTransferable(); |
725 |
725 |
726 try { |
726 try { |
|
727 @SuppressWarnings("unchecked") |
727 final java.util.List<File> fileList = (java.util.List<File>)transferable.getTransferData(DataFlavor.javaFileListFlavor); |
728 final java.util.List<File> fileList = (java.util.List<File>)transferable.getTransferData(DataFlavor.javaFileListFlavor); |
728 dropFiles(fileList.toArray(new File[fileList.size()])); |
729 dropFiles(fileList.toArray(new File[fileList.size()])); |
729 dtde.dropComplete(true); |
730 dtde.dropComplete(true); |
730 } catch (final Exception e) { |
731 } catch (final Exception e) { |
731 dtde.dropComplete(false); |
732 dtde.dropComplete(false); |
1142 public Dimension getMaximumSize(final JComponent c) { |
1143 public Dimension getMaximumSize(final JComponent c) { |
1143 return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); |
1144 return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); |
1144 } |
1145 } |
1145 |
1146 |
1146 @SuppressWarnings("serial") // anonymous class |
1147 @SuppressWarnings("serial") // anonymous class |
1147 protected ListCellRenderer createDirectoryComboBoxRenderer(final JFileChooser fc) { |
1148 protected ListCellRenderer<File> createDirectoryComboBoxRenderer(final JFileChooser fc) { |
1148 return new AquaComboBoxRendererInternal(directoryComboBox) { |
1149 return new AquaComboBoxRendererInternal<File>(directoryComboBox) { |
1149 public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { |
1150 public Component getListCellRendererComponent(final JList<? extends File> list, |
1150 super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); |
1151 final File directory, |
1151 final File directory = (File)value; |
1152 final int index, |
|
1153 final boolean isSelected, |
|
1154 final boolean cellHasFocus) { |
|
1155 super.getListCellRendererComponent(list, directory, index, isSelected, cellHasFocus); |
1152 if (directory == null) { |
1156 if (directory == null) { |
1153 setText(""); |
1157 setText(""); |
1154 return this; |
1158 return this; |
1155 } |
1159 } |
1156 |
1160 |
1171 |
1175 |
1172 /** |
1176 /** |
1173 * Data model for a type-face selection combo-box. |
1177 * Data model for a type-face selection combo-box. |
1174 */ |
1178 */ |
1175 @SuppressWarnings("serial") // Superclass is not serializable across versions |
1179 @SuppressWarnings("serial") // Superclass is not serializable across versions |
1176 protected class DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel { |
1180 protected class DirectoryComboBoxModel extends AbstractListModel<File> implements ComboBoxModel<File> { |
1177 Vector<File> fDirectories = new Vector<File>(); |
1181 Vector<File> fDirectories = new Vector<File>(); |
1178 int topIndex = -1; |
1182 int topIndex = -1; |
1179 int fPathCount = 0; |
1183 int fPathCount = 0; |
1180 |
1184 |
1181 File fSelectedDirectory = null; |
1185 File fSelectedDirectory = null; |
1246 |
1250 |
1247 public int getSize() { |
1251 public int getSize() { |
1248 return fDirectories.size(); |
1252 return fDirectories.size(); |
1249 } |
1253 } |
1250 |
1254 |
1251 public Object getElementAt(final int index) { |
1255 public File getElementAt(final int index) { |
1252 return fDirectories.elementAt(index); |
1256 return fDirectories.elementAt(index); |
1253 } |
1257 } |
1254 } |
1258 } |
1255 |
1259 |
1256 // |
1260 // |
1257 // Renderer for Types ComboBox |
1261 // Renderer for Types ComboBox |
1258 // |
1262 // |
1259 @SuppressWarnings("serial") // anonymous class |
1263 @SuppressWarnings("serial") // anonymous class |
1260 protected ListCellRenderer createFilterComboBoxRenderer() { |
1264 protected ListCellRenderer<FileFilter> createFilterComboBoxRenderer() { |
1261 return new AquaComboBoxRendererInternal(filterComboBox) { |
1265 return new AquaComboBoxRendererInternal<FileFilter>(filterComboBox) { |
1262 public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { |
1266 public Component getListCellRendererComponent(final JList<? extends FileFilter> list, |
1263 super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); |
1267 final FileFilter filter, |
1264 final FileFilter filter = (FileFilter)value; |
1268 final int index, |
|
1269 final boolean isSelected, |
|
1270 final boolean cellHasFocus) { |
|
1271 super.getListCellRendererComponent(list, filter, index, isSelected, cellHasFocus); |
1265 if (filter != null) setText(filter.getDescription()); |
1272 if (filter != null) setText(filter.getDescription()); |
1266 return this; |
1273 return this; |
1267 } |
1274 } |
1268 }; |
1275 }; |
1269 } |
1276 } |
1354 protected FilterComboBoxAction() { |
1361 protected FilterComboBoxAction() { |
1355 super("FilterComboBoxAction"); |
1362 super("FilterComboBoxAction"); |
1356 } |
1363 } |
1357 |
1364 |
1358 public void actionPerformed(final ActionEvent e) { |
1365 public void actionPerformed(final ActionEvent e) { |
1359 getFileChooser().setFileFilter((FileFilter)filterComboBox.getSelectedItem()); |
1366 getFileChooser().setFileFilter((FileFilter) filterComboBox.getSelectedItem()); |
1360 } |
1367 } |
1361 } |
1368 } |
1362 |
1369 |
1363 /** |
1370 /** |
1364 * Acts when DirectoryComboBox has changed the selected item. |
1371 * Acts when DirectoryComboBox has changed the selected item. |
1501 tPanel.add(sep); |
1508 tPanel.add(sep); |
1502 tPanel.add(Box.createRigidArea(new Dimension(1, 7))); |
1509 tPanel.add(Box.createRigidArea(new Dimension(1, 7))); |
1503 fTextfieldPanel.add(tPanel, BorderLayout.CENTER); |
1510 fTextfieldPanel.add(tPanel, BorderLayout.CENTER); |
1504 |
1511 |
1505 // DirectoryComboBox, left-justified, 200x20 not including drop shadow |
1512 // DirectoryComboBox, left-justified, 200x20 not including drop shadow |
1506 directoryComboBox = new JComboBox(); |
1513 directoryComboBox = new JComboBox<>(); |
1507 directoryComboBox.putClientProperty("JComboBox.lightweightKeyboardNavigation", "Lightweight"); |
1514 directoryComboBox.putClientProperty("JComboBox.lightweightKeyboardNavigation", "Lightweight"); |
1508 fDirectoryComboBoxModel = createDirectoryComboBoxModel(fc); |
1515 fDirectoryComboBoxModel = createDirectoryComboBoxModel(fc); |
1509 directoryComboBox.setModel(fDirectoryComboBoxModel); |
1516 directoryComboBox.setModel(fDirectoryComboBoxModel); |
1510 directoryComboBox.addActionListener(directoryComboBoxAction); |
1517 directoryComboBox.addActionListener(directoryComboBoxAction); |
1511 directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc)); |
1518 directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc)); |
1549 tPanel.add(formatLabel); |
1556 tPanel.add(formatLabel); |
1550 |
1557 |
1551 // Combobox |
1558 // Combobox |
1552 filterComboBoxModel = createFilterComboBoxModel(); |
1559 filterComboBoxModel = createFilterComboBoxModel(); |
1553 fc.addPropertyChangeListener(filterComboBoxModel); |
1560 fc.addPropertyChangeListener(filterComboBoxModel); |
1554 filterComboBox = new JComboBox(filterComboBoxModel); |
1561 filterComboBox = new JComboBox<>(filterComboBoxModel); |
1555 formatLabel.setLabelFor(filterComboBox); |
1562 formatLabel.setLabelFor(filterComboBox); |
1556 filterComboBox.setRenderer(createFilterComboBoxRenderer()); |
1563 filterComboBox.setRenderer(createFilterComboBoxRenderer()); |
1557 d = new Dimension(220, (int)filterComboBox.getMinimumSize().getHeight()); |
1564 d = new Dimension(220, (int)filterComboBox.getMinimumSize().getHeight()); |
1558 filterComboBox.setPreferredSize(d); |
1565 filterComboBox.setPreferredSize(d); |
1559 filterComboBox.setMaximumSize(d); |
1566 filterComboBox.setMaximumSize(d); |
1786 protected void paintComponent(final Graphics g) { |
1793 protected void paintComponent(final Graphics g) { |
1787 border.paintBorder(this, g, 0, 0, getWidth() + 1, getHeight()); |
1794 border.paintBorder(this, g, 0, 0, getWidth() + 1, getHeight()); |
1788 } |
1795 } |
1789 } |
1796 } |
1790 |
1797 |
1791 JComboBox directoryComboBox; |
1798 JComboBox<File> directoryComboBox; |
1792 DirectoryComboBoxModel fDirectoryComboBoxModel; |
1799 DirectoryComboBoxModel fDirectoryComboBoxModel; |
1793 private final Action directoryComboBoxAction = new DirectoryComboBoxAction(); |
1800 private final Action directoryComboBoxAction = new DirectoryComboBoxAction(); |
1794 |
1801 |
1795 JTextField filenameTextField; |
1802 JTextField filenameTextField; |
1796 |
1803 |
1797 JTableExtension fFileList; |
1804 JTableExtension fFileList; |
1798 |
1805 |
1799 private FilterComboBoxModel filterComboBoxModel; |
1806 private FilterComboBoxModel filterComboBoxModel; |
1800 JComboBox filterComboBox; |
1807 JComboBox<FileFilter> filterComboBox; |
1801 private final Action filterComboBoxAction = new FilterComboBoxAction(); |
1808 private final Action filterComboBoxAction = new FilterComboBoxAction(); |
1802 |
1809 |
1803 private static final Dimension hstrut10 = new Dimension(10, 1); |
1810 private static final Dimension hstrut10 = new Dimension(10, 1); |
1804 private static final Dimension vstrut10 = new Dimension(1, 10); |
1811 private static final Dimension vstrut10 = new Dimension(1, 10); |
1805 |
1812 |