src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java
Print this page
*** 80,97 ****
private String renameFileDialogText = null;
private String renameFileErrorTitle = null;
private String renameFileErrorText = null;
! private JComboBox filterComboBox;
private FilterComboBoxModel filterComboBoxModel;
// From Motif
private JPanel rightPanel;
! private JList directoryList;
! private JList fileList;
private JLabel pathField;
private JTextField fileNameTextField;
private static final Dimension hstrut3 = new Dimension(3, 1);
--- 80,97 ----
private String renameFileDialogText = null;
private String renameFileErrorTitle = null;
private String renameFileErrorText = null;
! private JComboBox<FileFilter> filterComboBox;
private FilterComboBoxModel filterComboBoxModel;
// From Motif
private JPanel rightPanel;
! private JList<File> directoryList;
! private JList<File> fileList;
private JLabel pathField;
private JTextField fileNameTextField;
private static final Dimension hstrut3 = new Dimension(3, 1);
*** 114,124 ****
private String filterLabelText = null;
private int pathLabelMnemonic = 0;
private int filterLabelMnemonic = 0;
! private JComboBox directoryComboBox;
private DirectoryComboBoxModel directoryComboBoxModel;
private Action directoryComboBoxAction = new DirectoryComboBoxAction();
private JPanel bottomButtonPanel;
private GTKDirectoryModel model = null;
private Action newFolderAction;
--- 114,124 ----
private String filterLabelText = null;
private int pathLabelMnemonic = 0;
private int filterLabelMnemonic = 0;
! private JComboBox<File> directoryComboBox;
private DirectoryComboBoxModel directoryComboBoxModel;
private Action directoryComboBoxAction = new DirectoryComboBoxAction();
private JPanel bottomButtonPanel;
private GTKDirectoryModel model = null;
private Action newFolderAction;
*** 151,161 ****
if (!fc.isMultiSelectionEnabled()) {
return typedInName;
}
int mode = fc.getFileSelectionMode();
! JList list = mode == JFileChooser.DIRECTORIES_ONLY ?
directoryList : fileList;
Object[] files = list.getSelectedValues();
int len = files.length;
Vector<String> result = new Vector<String>(len + 1);
--- 151,161 ----
if (!fc.isMultiSelectionEnabled()) {
return typedInName;
}
int mode = fc.getFileSelectionMode();
! JList<File> list = mode == JFileChooser.DIRECTORIES_ONLY ?
directoryList : fileList;
Object[] files = list.getSelectedValues();
int len = files.length;
Vector<String> result = new Vector<String>(len + 1);
*** 367,378 ****
public ListSelectionListener createListSelectionListener(JFileChooser fc) {
return new SelectionListener();
}
class DoubleClickListener extends MouseAdapter {
! JList list;
! public DoubleClickListener(JList list) {
this.list = list;
}
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) {
--- 367,378 ----
public ListSelectionListener createListSelectionListener(JFileChooser fc) {
return new SelectionListener();
}
class DoubleClickListener extends MouseAdapter {
! JList<?> list;
! public DoubleClickListener(JList<?> list) {
this.list = list;
}
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) {
*** 411,431 ****
}
}
}
}
! protected MouseListener createDoubleClickListener(JFileChooser fc, JList list) {
return new DoubleClickListener(list);
}
protected class SelectionListener implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
JFileChooser chooser = getFileChooser();
! JList list = (JList) e.getSource();
if (chooser.isMultiSelectionEnabled()) {
File[] files = null;
Object[] objects = list.getSelectedValues();
if (objects != null) {
--- 411,431 ----
}
}
}
}
! protected MouseListener createDoubleClickListener(JFileChooser fc, JList<?> list) {
return new DoubleClickListener(list);
}
protected class SelectionListener implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
JFileChooser chooser = getFileChooser();
! JList<?> list = (JList) e.getSource();
if (chooser.isMultiSelectionEnabled()) {
File[] files = null;
Object[] objects = list.getSelectedValues();
if (objects != null) {
*** 552,573 ****
@SuppressWarnings("serial") // anonymous class
JPanel comboBoxPanel = new JPanel(new FlowLayout(FlowLayout.CENTER,
0, 0) {
public void layoutContainer(Container target) {
super.layoutContainer(target);
! JComboBox comboBox = directoryComboBox;
if (comboBox.getWidth() > target.getWidth()) {
comboBox.setBounds(0, comboBox.getY(), target.getWidth(),
comboBox.getHeight());
}
}
});
comboBoxPanel.setBorder(new EmptyBorder(0, 0, 4, 0));
comboBoxPanel.setName("GTKFileChooser.directoryComboBoxPanel");
// CurrentDir ComboBox
directoryComboBoxModel = createDirectoryComboBoxModel(fc);
! directoryComboBox = new JComboBox(directoryComboBoxModel);
directoryComboBox.setName("GTKFileChooser.directoryComboBox");
directoryComboBox.putClientProperty( "JComboBox.lightweightKeyboardNavigation", "Lightweight" );
directoryComboBox.addActionListener(directoryComboBoxAction);
directoryComboBox.setMaximumRowCount(8);
comboBoxPanel.add(directoryComboBox);
--- 552,573 ----
@SuppressWarnings("serial") // anonymous class
JPanel comboBoxPanel = new JPanel(new FlowLayout(FlowLayout.CENTER,
0, 0) {
public void layoutContainer(Container target) {
super.layoutContainer(target);
! JComboBox<?> comboBox = directoryComboBox;
if (comboBox.getWidth() > target.getWidth()) {
comboBox.setBounds(0, comboBox.getY(), target.getWidth(),
comboBox.getHeight());
}
}
});
comboBoxPanel.setBorder(new EmptyBorder(0, 0, 4, 0));
comboBoxPanel.setName("GTKFileChooser.directoryComboBoxPanel");
// CurrentDir ComboBox
directoryComboBoxModel = createDirectoryComboBoxModel(fc);
! directoryComboBox = new JComboBox<>(directoryComboBoxModel);
directoryComboBox.setName("GTKFileChooser.directoryComboBox");
directoryComboBox.putClientProperty( "JComboBox.lightweightKeyboardNavigation", "Lightweight" );
directoryComboBox.addActionListener(directoryComboBoxAction);
directoryComboBox.setMaximumRowCount(8);
comboBoxPanel.add(directoryComboBox);
*** 708,718 ****
filterLabel.setDisplayedMnemonic(filterLabelMnemonic);
panel.add(filterLabel);
filterComboBoxModel = createFilterComboBoxModel();
fc.addPropertyChangeListener(filterComboBoxModel);
! filterComboBox = new JComboBox(filterComboBoxModel);
filterComboBox.setRenderer(createFilterComboBoxRenderer());
filterLabel.setLabelFor(filterComboBox);
interior.add(Box.createRigidArea(vstrut10));
interior.add(panel);
--- 708,718 ----
filterLabel.setDisplayedMnemonic(filterLabelMnemonic);
panel.add(filterLabel);
filterComboBoxModel = createFilterComboBoxModel();
fc.addPropertyChangeListener(filterComboBoxModel);
! filterComboBox = new JComboBox<>(filterComboBoxModel);
filterComboBox.setRenderer(createFilterComboBoxRenderer());
filterLabel.setLabelFor(filterComboBox);
interior.add(Box.createRigidArea(vstrut10));
interior.add(panel);
*** 849,859 ****
newFolderErrorText = null;
newFolderErrorSeparator = null;
}
protected JScrollPane createFilesList() {
! fileList = new JList();
fileList.setName("GTKFileChooser.fileList");
fileList.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesLabelText);
if (getFileChooser().isMultiSelectionEnabled()) {
fileList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
--- 849,859 ----
newFolderErrorText = null;
newFolderErrorSeparator = null;
}
protected JScrollPane createFilesList() {
! fileList = new JList<>();
fileList.setName("GTKFileChooser.fileList");
fileList.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, filesLabelText);
if (getFileChooser().isMultiSelectionEnabled()) {
fileList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
*** 875,885 ****
align(scrollpane);
return scrollpane;
}
protected JScrollPane createDirectoryList() {
! directoryList = new JList();
directoryList.setName("GTKFileChooser.directoryList");
directoryList.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, foldersLabelText);
align(directoryList);
directoryList.setCellRenderer(new DirectoryCellRenderer());
--- 875,885 ----
align(scrollpane);
return scrollpane;
}
protected JScrollPane createDirectoryList() {
! directoryList = new JList<>();
directoryList.setName("GTKFileChooser.directoryList");
directoryList.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, foldersLabelText);
align(directoryList);
directoryList.setCellRenderer(new DirectoryCellRenderer());
*** 928,949 ****
Collections.sort(v, fileComparator);
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class GTKDirectoryListModel extends AbstractListModel implements ListDataListener {
File curDir;
public GTKDirectoryListModel() {
getModel().addListDataListener(this);
directoryChanged();
}
public int getSize() {
return getModel().getDirectories().size() + 1;
}
! public Object getElementAt(int index) {
return index > 0 ? getModel().getDirectories().elementAt(index - 1):
curDir;
}
public void intervalAdded(ListDataEvent e) {
--- 928,950 ----
Collections.sort(v, fileComparator);
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class GTKDirectoryListModel extends AbstractListModel<File> implements ListDataListener {
File curDir;
public GTKDirectoryListModel() {
getModel().addListDataListener(this);
directoryChanged();
}
public int getSize() {
return getModel().getDirectories().size() + 1;
}
! @Override
! public File getElementAt(int index) {
return index > 0 ? getModel().getDirectories().elementAt(index - 1):
curDir;
}
public void intervalAdded(ListDataEvent e) {
*** 972,982 ****
getFileChooser().getCurrentDirectory(), ".");
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class GTKFileListModel extends AbstractListModel implements ListDataListener {
public GTKFileListModel() {
getModel().addListDataListener(this);
}
public int getSize() {
--- 973,983 ----
getFileChooser().getCurrentDirectory(), ".");
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class GTKFileListModel extends AbstractListModel<File> implements ListDataListener {
public GTKFileListModel() {
getModel().addListDataListener(this);
}
public int getSize() {
*** 989,999 ****
public int indexOf(Object o) {
return getModel().getFiles().indexOf(o);
}
! public Object getElementAt(int index) {
return getModel().getFiles().elementAt(index);
}
public void intervalAdded(ListDataEvent e) {
fireIntervalAdded(this, e.getIndex0(), e.getIndex1());
--- 990,1001 ----
public int indexOf(Object o) {
return getModel().getFiles().indexOf(o);
}
! @Override
! public File getElementAt(int index) {
return getModel().getFiles().elementAt(index);
}
public void intervalAdded(ListDataEvent e) {
fireIntervalAdded(this, e.getIndex0(), e.getIndex1());
*** 1017,1027 ****
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
protected class FileCellRenderer extends DefaultListCellRenderer {
! public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
setText(getFileChooser().getName((File) value));
if (showFileIcons) {
--- 1019,1029 ----
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
protected class FileCellRenderer extends DefaultListCellRenderer {
! public Component getListCellRendererComponent(JList<?> list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
setText(getFileChooser().getName((File) value));
if (showFileIcons) {
*** 1031,1041 ****
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
protected class DirectoryCellRenderer extends DefaultListCellRenderer {
! public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (showDirectoryIcons) {
--- 1033,1043 ----
}
}
@SuppressWarnings("serial") // Superclass is not serializable across versions
protected class DirectoryCellRenderer extends DefaultListCellRenderer {
! public Component getListCellRendererComponent(JList<?> list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (showDirectoryIcons) {
*** 1093,1103 ****
/**
* Data model for a type-face selection combo-box.
*/
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel {
Vector<File> directories = new Vector<File>();
File selectedDirectory = null;
JFileChooser chooser = getFileChooser();
FileSystemView fsv = chooser.getFileSystemView();
--- 1095,1105 ----
/**
* Data model for a type-face selection combo-box.
*/
@SuppressWarnings("serial") // Superclass is not serializable across versions
! protected class DirectoryComboBoxModel extends AbstractListModel<File> implements ComboBoxModel<File> {
Vector<File> directories = new Vector<File>();
File selectedDirectory = null;
JFileChooser chooser = getFileChooser();
FileSystemView fsv = chooser.getFileSystemView();
*** 1161,1171 ****
public int getSize() {
return directories.size();
}
! public Object getElementAt(int index) {
return directories.elementAt(index);
}
}
/**
--- 1163,1174 ----
public int getSize() {
return directories.size();
}
! @Override
! public File getElementAt(int index) {
return directories.elementAt(index);
}
}
/**
*** 1312,1322 ****
return "ComboBox.renderer";
}
return name;
}
! public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
--- 1315,1325 ----
return "ComboBox.renderer";
}
return name;
}
! public Component getListCellRendererComponent(JList<?> list, Object value,
int index, boolean isSelected,
boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
*** 1343,1354 ****
/**
* Data model for filter combo-box.
*/
@SuppressWarnings("serial") // JDK implementation class
! protected class FilterComboBoxModel extends AbstractListModel
! implements ComboBoxModel, PropertyChangeListener {
protected FileFilter[] filters;
protected FilterComboBoxModel() {
super();
filters = getFileChooser().getChoosableFileFilters();
--- 1346,1357 ----
/**
* Data model for filter combo-box.
*/
@SuppressWarnings("serial") // JDK implementation class
! protected class FilterComboBoxModel extends AbstractListModel<FileFilter>
! implements ComboBoxModel<FileFilter>, PropertyChangeListener {
protected FileFilter[] filters;
protected FilterComboBoxModel() {
super();
filters = getFileChooser().getChoosableFileFilters();
*** 1398,1408 ****
} else {
return 0;
}
}
! public Object getElementAt(int index) {
if (index > getSize() - 1) {
// This shouldn't happen. Try to recover gracefully.
return getFileChooser().getFileFilter();
}
if (filters != null) {
--- 1401,1412 ----
} else {
return 0;
}
}
! @Override
! public FileFilter getElementAt(int index) {
if (index > getSize() - 1) {
// This shouldn't happen. Try to recover gracefully.
return getFileChooser().getFileFilter();
}
if (filters != null) {