public void actionPerformed(ActionEvent evt) { Object src = evt.getSource(); String cmd = evt.getActionCommand(); if (src == backButton) { back(); } else if (src == nextButton) { FileChooserUI ui = chooser.getUI(); if (ui instanceof BasicFileChooserUI) { // Workaround for bug 4528663. This is necessary to // pick up the contents of the file chooser text field. // This will trigger an APPROVE_SELECTION action. ((BasicFileChooserUI) ui).getApproveSelectionAction(). actionPerformed(null); } else { next(); } } else if (src == closeButton) { close(); } else if (APPROVE_SELECTION.equals(cmd)) { next(); } else if (CANCEL_SELECTION.equals(cmd)) { close(); } }
/** * Resets the UI property to a value from the current look and feel. * * @see JComponent#updateUI */ public void updateUI() { if (isAcceptAllFileFilterUsed()) { removeChoosableFileFilter(getAcceptAllFileFilter()); } FileChooserUI ui = ((FileChooserUI)UIManager.getUI(this)); if (fileSystemView == null) { // We were probably deserialized setFileSystemView(FileSystemView.getFileSystemView()); } setUI(ui); if(isAcceptAllFileFilterUsed()) { addChoosableFileFilter(getAcceptAllFileFilter()); } }
public void updateUI() { if (isAcceptAllFileFilterUsed()) { removeChoosableFileFilter(getAcceptAllFileFilter()); } FileChooserUI ui = ((FileChooserUI)UIManager.getUI(this)); if (fileSystemView == null) { // We were probably deserialized setFileSystemView(MockFileSystemView.getFileSystemView()); } setUI(ui); if(isAcceptAllFileFilterUsed()) { addChoosableFileFilter(getAcceptAllFileFilter()); } }
/** JDKBUG: get current selected filename. */ private String getCurrentFileName() { final FileChooserUI fchui = getUI(); String fileName; if (fchui instanceof MetalFileChooserUI) { fileName = ((MetalFileChooserUI)fchui).getFileName(); } else if(WindowsFileChooserUIClass!=null && WindowsFileChooserUIClass.isInstance(fchui) && getFileNameMethod!=null) { try{ fileName = (String)getFileNameMethod.invoke(fchui, (Object[])null); } catch(Exception ex){ fileName=null; } } else { fileName = null; } return fileName == null || fileName.trim().length()== 0 ? null : fileName; }
private void cleanField() { FileChooserUI myUi = getUI(); if (myUi instanceof BasicFileChooserUI) { BasicFileChooserUI mui = (BasicFileChooserUI) myUi; mui.setFileName(""); } }
@Override public void setSelectedFile(File file) { super.setSelectedFile(file); FileChooserUI ui = getUI(); if (file != null && ui instanceof BasicFileChooserUI) { ((BasicFileChooserUI) ui).setFileName(file.getName()); } }
/** * Creates and returns a new <code>JDialog</code> wrapping * <code>this</code> centered on the <code>parent</code> * in the <code>parent</code>'s frame. * This method can be overriden to further manipulate the dialog, * to disable resizing, set the location, etc. Example: * <pre> * class MyFileChooser extends JFileChooser { * protected JDialog createDialog(Component parent) throws HeadlessException { * JDialog dialog = super.createDialog(parent); * dialog.setLocation(300, 200); * dialog.setResizable(false); * return dialog; * } * } * </pre> * * @param parent the parent component of the dialog; * can be <code>null</code> * @return a new <code>JDialog</code> containing this instance * @exception HeadlessException if GraphicsEnvironment.isHeadless() * returns true. * @see java.awt.GraphicsEnvironment#isHeadless * @since 1.4 */ protected JDialog createDialog(Component parent) throws HeadlessException { FileChooserUI ui = getUI(); String title = ui.getDialogTitle(this); putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, title); JDialog dialog; Window window = JOptionPane.getWindowForComponent(parent); if (window instanceof Frame) { dialog = new JDialog((Frame)window, title, true); } else { dialog = new JDialog((Dialog)window, title, true); } dialog.setComponentOrientation(this.getComponentOrientation()); Container contentPane = dialog.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(this, BorderLayout.CENTER); if (JDialog.isDefaultLookAndFeelDecorated()) { boolean supportsWindowDecorations = UIManager.getLookAndFeel().getSupportsWindowDecorations(); if (supportsWindowDecorations) { dialog.getRootPane().setWindowDecorationStyle(JRootPane.FILE_CHOOSER_DIALOG); } } dialog.pack(); dialog.setLocationRelativeTo(parent); return dialog; }
/** * Invokes the <code>getAcceptAllFileFilter</code> method on each UI handled by this object. * * @return the value obtained from the first UI, which is * the UI obtained from the default <code>LookAndFeel</code> */ public FileFilter getAcceptAllFileFilter(JFileChooser a) { FileFilter returnValue = ((FileChooserUI) (uis.elementAt(0))).getAcceptAllFileFilter(a); for (int i = 1; i < uis.size(); i++) { ((FileChooserUI) (uis.elementAt(i))).getAcceptAllFileFilter(a); } return returnValue; }
/** * Invokes the <code>getFileView</code> method on each UI handled by this object. * * @return the value obtained from the first UI, which is * the UI obtained from the default <code>LookAndFeel</code> */ public FileView getFileView(JFileChooser a) { FileView returnValue = ((FileChooserUI) (uis.elementAt(0))).getFileView(a); for (int i = 1; i < uis.size(); i++) { ((FileChooserUI) (uis.elementAt(i))).getFileView(a); } return returnValue; }
/** * Invokes the <code>getApproveButtonText</code> method on each UI handled by this object. * * @return the value obtained from the first UI, which is * the UI obtained from the default <code>LookAndFeel</code> */ public String getApproveButtonText(JFileChooser a) { String returnValue = ((FileChooserUI) (uis.elementAt(0))).getApproveButtonText(a); for (int i = 1; i < uis.size(); i++) { ((FileChooserUI) (uis.elementAt(i))).getApproveButtonText(a); } return returnValue; }
/** * Invokes the <code>getDialogTitle</code> method on each UI handled by this object. * * @return the value obtained from the first UI, which is * the UI obtained from the default <code>LookAndFeel</code> */ public String getDialogTitle(JFileChooser a) { String returnValue = ((FileChooserUI) (uis.elementAt(0))).getDialogTitle(a); for (int i = 1; i < uis.size(); i++) { ((FileChooserUI) (uis.elementAt(i))).getDialogTitle(a); } return returnValue; }