126 private boolean showDirectoryIcons;
127 private boolean showFileIcons;
128 private GTKFileView fileView = new GTKFileView();
129 private PropertyChangeListener gtkFCPropertyChangeListener;
130 private Action approveSelectionAction = new GTKApproveSelectionAction();
131 private GTKDirectoryListModel directoryListModel;
132
133 public GTKFileChooserUI(JFileChooser filechooser) {
134 super(filechooser);
135 }
136
137 protected ActionMap createActionMap() {
138 ActionMap map = new ActionMapUIResource();
139 map.put("approveSelection", getApproveSelectionAction());
140 map.put("cancelSelection", getCancelSelectionAction());
141 map.put("Go Up", getChangeToParentDirectoryAction());
142 map.put("fileNameCompletion", getFileNameCompletionAction());
143 return map;
144 }
145
146 public String getFileName() {
147 JFileChooser fc = getFileChooser();
148 String typedInName = fileNameTextField != null ?
149 fileNameTextField.getText() : null;
150
151 if (!fc.isMultiSelectionEnabled()) {
152 return typedInName;
153 }
154
155 int mode = fc.getFileSelectionMode();
156 JList<File> list = mode == JFileChooser.DIRECTORIES_ONLY ?
157 directoryList : fileList;
158 Object[] files = list.getSelectedValues();
159 int len = files.length;
160 Vector<String> result = new Vector<String>(len + 1);
161
162 // we return all selected file names
163 for (int i = 0; i < len; i++) {
164 File file = (File)files[i];
165 result.add(file.getName());
402 public void mouseEntered(MouseEvent evt) {
403 if (list != null) {
404 TransferHandler th1 = getFileChooser().getTransferHandler();
405 TransferHandler th2 = list.getTransferHandler();
406 if (th1 != th2) {
407 list.setTransferHandler(th1);
408 }
409 if (getFileChooser().getDragEnabled() != list.getDragEnabled()) {
410 list.setDragEnabled(getFileChooser().getDragEnabled());
411 }
412 }
413 }
414 }
415
416 protected MouseListener createDoubleClickListener(JFileChooser fc, JList<?> list) {
417 return new DoubleClickListener(list);
418 }
419
420
421
422 protected class SelectionListener implements ListSelectionListener {
423 public void valueChanged(ListSelectionEvent e) {
424 if (!e.getValueIsAdjusting()) {
425 JFileChooser chooser = getFileChooser();
426 JList<?> list = (JList) e.getSource();
427
428 if (chooser.isMultiSelectionEnabled()) {
429 File[] files = null;
430 Object[] objects = list.getSelectedValues();
431 if (objects != null) {
432 if (objects.length == 1
433 && ((File)objects[0]).isDirectory()
434 && chooser.isTraversable(((File)objects[0]))
435 && (chooser.getFileSelectionMode() != JFileChooser.DIRECTORIES_ONLY
436 || !chooser.getFileSystemView().isFileSystem(((File)objects[0])))) {
437 setDirectorySelected(true);
438 setDirectory(((File)objects[0]));
439 } else {
440 ArrayList<File> fList = new ArrayList<File>(objects.length);
441 for (Object object : objects) {
|
126 private boolean showDirectoryIcons;
127 private boolean showFileIcons;
128 private GTKFileView fileView = new GTKFileView();
129 private PropertyChangeListener gtkFCPropertyChangeListener;
130 private Action approveSelectionAction = new GTKApproveSelectionAction();
131 private GTKDirectoryListModel directoryListModel;
132
133 public GTKFileChooserUI(JFileChooser filechooser) {
134 super(filechooser);
135 }
136
137 protected ActionMap createActionMap() {
138 ActionMap map = new ActionMapUIResource();
139 map.put("approveSelection", getApproveSelectionAction());
140 map.put("cancelSelection", getCancelSelectionAction());
141 map.put("Go Up", getChangeToParentDirectoryAction());
142 map.put("fileNameCompletion", getFileNameCompletionAction());
143 return map;
144 }
145
146 @SuppressWarnings("deprecation")
147 public String getFileName() {
148 JFileChooser fc = getFileChooser();
149 String typedInName = fileNameTextField != null ?
150 fileNameTextField.getText() : null;
151
152 if (!fc.isMultiSelectionEnabled()) {
153 return typedInName;
154 }
155
156 int mode = fc.getFileSelectionMode();
157 JList<File> list = mode == JFileChooser.DIRECTORIES_ONLY ?
158 directoryList : fileList;
159 Object[] files = list.getSelectedValues();
160 int len = files.length;
161 Vector<String> result = new Vector<String>(len + 1);
162
163 // we return all selected file names
164 for (int i = 0; i < len; i++) {
165 File file = (File)files[i];
166 result.add(file.getName());
403 public void mouseEntered(MouseEvent evt) {
404 if (list != null) {
405 TransferHandler th1 = getFileChooser().getTransferHandler();
406 TransferHandler th2 = list.getTransferHandler();
407 if (th1 != th2) {
408 list.setTransferHandler(th1);
409 }
410 if (getFileChooser().getDragEnabled() != list.getDragEnabled()) {
411 list.setDragEnabled(getFileChooser().getDragEnabled());
412 }
413 }
414 }
415 }
416
417 protected MouseListener createDoubleClickListener(JFileChooser fc, JList<?> list) {
418 return new DoubleClickListener(list);
419 }
420
421
422
423 @SuppressWarnings("deprecation")
424 protected class SelectionListener implements ListSelectionListener {
425 public void valueChanged(ListSelectionEvent e) {
426 if (!e.getValueIsAdjusting()) {
427 JFileChooser chooser = getFileChooser();
428 JList<?> list = (JList) e.getSource();
429
430 if (chooser.isMultiSelectionEnabled()) {
431 File[] files = null;
432 Object[] objects = list.getSelectedValues();
433 if (objects != null) {
434 if (objects.length == 1
435 && ((File)objects[0]).isDirectory()
436 && chooser.isTraversable(((File)objects[0]))
437 && (chooser.getFileSelectionMode() != JFileChooser.DIRECTORIES_ONLY
438 || !chooser.getFileSystemView().isFileSystem(((File)objects[0])))) {
439 setDirectorySelected(true);
440 setDirectory(((File)objects[0]));
441 } else {
442 ArrayList<File> fList = new ArrayList<File>(objects.length);
443 for (Object object : objects) {
|