/* * Licensed Materials - Property of Perforce Software, Inc. * © Copyright Perforce Software, Inc. 2014, 2021 * © Copyright IBM Corp. 2009, 2014 * © Copyright ILOG 1996, 2009 * All Rights Reserved. * * Note to U.S. Government Users Restricted Rights: * The Software and Documentation were developed at private expense and * are "Commercial Items" as that term is defined at 48 CFR 2.101, * consisting of "Commercial Computer Software" and * "Commercial Computer Software Documentation", as such terms are * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4, * as applicable. */ import java.awt.Component; import java.io.File; import javax.swing.filechooser.FileFilter; import javax.swing.JFileChooser; public class ProjectFileChooser { /** * The default file filter. */ private FileFilter fileFilter; /** * The file chooser. */ private JFileChooser fileChooser; /** * Creates an XML file chooser. */ public ProjectFileChooser() { fileFilter = new FileFilter() { Override public boolean accept(File file) { return file.isDirectory() || file.getName().endsWith("igpr"); } Override public String getDescription() { return "Gantt Designer files"; } Override public boolean equals(Object obj) { if (obj instanceof FileFilter && getDescription().equals(((FileFilter) obj).getDescription())) return true; else return false; } }; String slash = System.getProperty("file.separator"); String dataFolder = System.getProperty("user.dir") + slash + "data"; fileChooser = new JFileChooser(dataFolder); fileChooser.setFileFilter(fileFilter); } /** * Selects a file to open. * @return The selected file. */ public File showOpenDialog(Component parent) { int ret = fileChooser.showOpenDialog(parent); if (ret != JFileChooser.APPROVE_OPTION) return null; return fileChooser.getSelectedFile(); } /** * Selects a file to save. * @return The selected file. */ public File showSaveDialog(Component parent) { int ret = fileChooser.showSaveDialog(parent); if (ret != JFileChooser.APPROVE_OPTION) return null; return fileChooser.getSelectedFile(); } /** * Returns the current directory of the file chooser. */ public File getCurrentDirectory() { return fileChooser.getCurrentDirectory(); } /** * Sets the current directory of the file chooser. Passing in * <code>null</code> sets the file chooser to point to the user's default * directory. */ public void setCurrentDirectory(File dir) { fileChooser.setCurrentDirectory(dir); } }