List of usage examples for javax.swing.filechooser FileNameExtensionFilter getDescription
public String getDescription()
From source file:org.yccheok.jstock.gui.Utils.java
public static FileEx promptSavePortfolioCSVAndExcelJFileChooser(final String suggestedFileName) { final JStockOptions jStockOptions = JStock.instance().getJStockOptions(); final JFileChooser chooser = new JFileChooser(jStockOptions.getLastFileIODirectory()); final FileNameExtensionFilter csvFilter = new FileNameExtensionFilter("CSV Documents (*.csv)", "csv"); final FileNameExtensionFilter xlsFilter = new FileNameExtensionFilter("Microsoft Excel (*.xls)", "xls"); chooser.setAcceptAllFileFilterUsed(false); chooser.addChoosableFileFilter(csvFilter); chooser.addChoosableFileFilter(xlsFilter); final org.yccheok.jstock.gui.file.PortfolioSelectionJPanel portfolioSelectionJPanel = new org.yccheok.jstock.gui.file.PortfolioSelectionJPanel(); chooser.setAccessory(portfolioSelectionJPanel); chooser.addPropertyChangeListener(JFileChooser.FILE_FILTER_CHANGED_PROPERTY, new PropertyChangeListener() { @Override// w w w. ja va2s .c om public void propertyChange(PropertyChangeEvent evt) { final boolean flag = ((FileNameExtensionFilter) evt.getNewValue()).equals(csvFilter); portfolioSelectionJPanel.setEnabled(flag); chooser.setSelectedFile(chooser.getFileFilter().getDescription().equals(csvFilter.getDescription()) ? new File(portfolioSelectionJPanel.getSuggestedFileName()) : new File(suggestedFileName)); } }); portfolioSelectionJPanel.addJRadioButtonsActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { chooser.setSelectedFile(new File(portfolioSelectionJPanel.getSuggestedFileName())); } }); final java.util.Map<String, FileNameExtensionFilter> map = new HashMap<String, FileNameExtensionFilter>(); map.put(csvFilter.getDescription(), csvFilter); map.put(xlsFilter.getDescription(), xlsFilter); final FileNameExtensionFilter filter = map.get(jStockOptions.getLastSavedFileNameExtensionDescription()); if (filter != null) { chooser.setFileFilter(filter); } // Only enable portfolioSelectionJPanel, if CSV is being selected. portfolioSelectionJPanel .setEnabled(chooser.getFileFilter().getDescription().equals(csvFilter.getDescription())); chooser.setSelectedFile(chooser.getFileFilter().getDescription().equals(csvFilter.getDescription()) ? new File(portfolioSelectionJPanel.getSuggestedFileName()) : new File(suggestedFileName)); while (true) { final int returnVal = chooser.showSaveDialog(JStock.instance()); if (returnVal != JFileChooser.APPROVE_OPTION) { return null; } File file = chooser.getSelectedFile(); if (file == null) { return null; } // Ensure the saved file is in correct extension. If user provide correct // file extension explicitly, leave it as is. If not, mutate the filename. final String extension = Utils.getFileExtension(file); if (extension.equals("csv") == false && extension.equals("xls") == false) { if (chooser.getFileFilter().getDescription().equals(csvFilter.getDescription())) { file = new File(file.getAbsolutePath() + ".csv"); } else if (chooser.getFileFilter().getDescription().equals(xlsFilter.getDescription())) { file = new File(file.getAbsolutePath() + ".xls"); } else { // Impossible. return null; } } if (file.exists()) { final String output = MessageFormat .format(MessagesBundle.getString("question_message_replace_old_template"), file.getName()); final int result = javax.swing.JOptionPane.showConfirmDialog(JStock.instance(), output, MessagesBundle.getString("question_title_replace_old"), javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.QUESTION_MESSAGE); if (result != javax.swing.JOptionPane.YES_OPTION) { continue; } } final String parent = chooser.getSelectedFile().getParent(); if (parent != null) { jStockOptions.setLastFileIODirectory(parent); } if (Utils.getFileExtension(file).equals("csv")) { jStockOptions.setLastFileNameExtensionDescription(csvFilter.getDescription()); } else if (Utils.getFileExtension(file).equals("xls")) { jStockOptions.setLastFileNameExtensionDescription(xlsFilter.getDescription()); } else { // Impossible. return null; } return new FileEx(file, portfolioSelectionJPanel.getType()); } }
From source file:org.yccheok.jstock.gui.Utils.java
private static File promptOpenJFileChooser(FileNameExtensionFilter... fileNameExtensionFilters) { final JStockOptions jStockOptions = JStock.instance().getJStockOptions(); final JFileChooser chooser = new JFileChooser(jStockOptions.getLastFileIODirectory()); chooser.setAcceptAllFileFilterUsed(false); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { chooser.addChoosableFileFilter(fileNameExtensionFilter); }/* w w w . j ava 2 s .c o m*/ final java.util.Map<String, FileNameExtensionFilter> map = new HashMap<String, FileNameExtensionFilter>(); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { map.put(fileNameExtensionFilter.getDescription(), fileNameExtensionFilter); } final FileNameExtensionFilter filter = map.get(jStockOptions.getLastSavedFileNameExtensionDescription()); if (filter != null) { chooser.setFileFilter(filter); } int returnVal = chooser.showOpenDialog(JStock.instance()); if (returnVal != JFileChooser.APPROVE_OPTION) { return null; } File file = chooser.getSelectedFile(); if (file == null || !file.exists()) { return null; } final String parent = chooser.getSelectedFile().getParent(); if (parent != null) { jStockOptions.setLastFileIODirectory(parent); } final String extension = Utils.getFileExtension(file); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { final String[] extensions = fileNameExtensionFilter.getExtensions(); if (extensions.length <= 0) { continue; } if (extension.equals(extensions[0])) { jStockOptions.setLastFileNameExtensionDescription(fileNameExtensionFilter.getDescription()); return file; } } return null; }
From source file:org.yccheok.jstock.gui.Utils.java
private static File promptSaveJFileChooser(String suggestedFileName, FileNameExtensionFilter... fileNameExtensionFilters) { final JStockOptions jStockOptions = JStock.instance().getJStockOptions(); final JFileChooser chooser = new JFileChooser(jStockOptions.getLastFileIODirectory()); chooser.setAcceptAllFileFilterUsed(false); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { chooser.addChoosableFileFilter(fileNameExtensionFilter); }//from w w w . j a v a 2 s .c om chooser.setSelectedFile(new File(suggestedFileName)); final java.util.Map<String, FileNameExtensionFilter> map = new HashMap<String, FileNameExtensionFilter>(); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { map.put(fileNameExtensionFilter.getDescription(), fileNameExtensionFilter); } final FileNameExtensionFilter filter = map.get(jStockOptions.getLastSavedFileNameExtensionDescription()); if (filter != null) { chooser.setFileFilter(filter); } while (true) { final int returnVal = chooser.showSaveDialog(JStock.instance()); if (returnVal != JFileChooser.APPROVE_OPTION) { return null; } File file = chooser.getSelectedFile(); if (file == null) { return null; } // Ensure the saved file is in correct extension. If user provide correct // file extension explicitly, leave it as is. If not, mutate the filename. final String extension = Utils.getFileExtension(file); boolean found = false; root: for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { String[] extensions = fileNameExtensionFilter.getExtensions(); for (String e : extensions) { if (e.equals(extension)) { found = true; break root; } } } if (!found) { for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { String[] extensions = fileNameExtensionFilter.getExtensions(); if (extensions.length <= 0) { continue; } final String e = extensions[0]; if (chooser.getFileFilter().getDescription().equals(fileNameExtensionFilter.getDescription())) { if (e.startsWith(".")) { file = new File(file.getAbsolutePath() + e); } else { file = new File(file.getAbsolutePath() + "." + e); } break; } } } if (file.exists()) { final String output = MessageFormat .format(MessagesBundle.getString("question_message_replace_old_template"), file.getName()); final int result = javax.swing.JOptionPane.showConfirmDialog(JStock.instance(), output, MessagesBundle.getString("question_title_replace_old"), javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.QUESTION_MESSAGE); if (result != javax.swing.JOptionPane.YES_OPTION) { continue; } } final String parent = chooser.getSelectedFile().getParent(); if (parent != null) { jStockOptions.setLastFileIODirectory(parent); } final String e = Utils.getFileExtension(file); for (FileNameExtensionFilter fileNameExtensionFilter : fileNameExtensionFilters) { String[] extensions = fileNameExtensionFilter.getExtensions(); if (extensions.length <= 0) { continue; } if (e.equals(extensions[0])) { jStockOptions.setLastFileNameExtensionDescription(fileNameExtensionFilter.getDescription()); break; } } return file; } }