下面列出了javax.swing.JFileChooser#FILES_AND_DIRECTORIES 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void selectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectButtonActionPerformed
if (!isSane())
return;
int selectionType = importer.canImportDirectories() ? JFileChooser.FILES_AND_DIRECTORIES : JFileChooser.FILES_ONLY;
String[][] filetypes = importer.getFileExtensions(properties.getImportOpensZipFiles());
File importFile = SelectFile.selectFile(this, "Select " + importer.getFormatName() + " file to import",
properties.getDefaultImportDir(), false, false, selectionType, filetypes);
if (importFile != null) {
filenameTextField.setText(importFile.getPath());
// Tell the user that the data in the tree importer is obsolete.
treeImporter.clear();
try {
properties.setDefaultImportDir(importFile.getParentFile().getCanonicalPath());
} catch (IOException ex) {
// we may ignore this
}
}
}
/**
* Adds the directory or file field.
*
* @param label
* the label
* @param defaultPath
* the default path
* @param columns
* the columns
*/
public void addDirectoryOrFileField(String label, String defaultPath, int columns) {
addStringField(label, defaultPath, columns);
if (isHeadless())
return;
TextField text = (TextField) stringField.lastElement();
GridBagLayout layout = (GridBagLayout) getLayout();
GridBagConstraints constraints = layout.getConstraints(text);
Button button = new Button("Browse...");
DirectoryListener listener = new DirectoryListener("Browse for " + label, text,
JFileChooser.FILES_AND_DIRECTORIES);
button.addActionListener(listener);
button.addKeyListener(this);
Panel panel = new Panel();
panel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
panel.add(text);
panel.add(button);
layout.setConstraints(panel, constraints);
add(panel);
}
MainPanel(LogVisualizer logVisualizer, ExecutePlanCallback executePlanCallback,
Properties properties, PropertyChangeCallback propertyChangeCallback) {
this.visualizer = logVisualizer;
this.propertyChangeCallback = propertyChangeCallback;
setLayout(null);
logFileSelectionBox = new FileSelectionBox("LogFilePath", this::onLogFileSelected,
properties.getProperty(GuiPropertyKeys.DEFAULT_LOG_FILE_PATH.getKey()), JFileChooser.FILES_AND_DIRECTORIES);
logFileSelectionBox.setLocation(0, 0);
logFileSelectionBox.setSize(380, 40);
parserPropertyBox = new FileSelectionBox("ParserPropertyFilePath",
this::onParserPropertySelected, properties.getProperty(GuiPropertyKeys
.DEFAULT_PARSER_FILE_PATH.getKey()), JFileChooser.FILES_ONLY);
parserPropertyBox.setLocation(0, 45);
parserPropertyBox.setSize(380, 40);
loadLogBox = new LoadLogBox(logVisualizer);
loadLogBox.setLocation(450, 0);
loadLogBox.setSize(300, 50);
planBox = new PlanBox(logVisualizer, executePlanCallback, properties.getProperty(GuiPropertyKeys
.DEFAULT_PLAN_PATH.getKey()), propertyChangeCallback);
planBox.setLocation(0, 100);
planBox.setSize(750, 430);
add(logFileSelectionBox);
add(parserPropertyBox);
add(loadLogBox);
add(planBox);
}
/**
* This method is called by the IDE to pass
* the environment to the property editor.
* @param env Environment passed by the ide.
*/
public void attachEnv(PropertyEnv env) {
this.env = env;
// clearing to defaults
directories = true;
files = true;
fileFilter = null;
fileHiding = false;
Object dirs = env.getFeatureDescriptor().getValue(PROPERTY_SHOW_DIRECTORIES);
if (dirs instanceof Boolean) {
directories = ((Boolean)dirs).booleanValue();
} // XXX else if != null, warn
Object fil = env.getFeatureDescriptor().getValue(PROPERTY_SHOW_FILES);
if (fil instanceof Boolean) {
files = ((Boolean)fil).booleanValue();
} // XXX else if != null, warn
Object filter = env.getFeatureDescriptor().getValue(PROPERTY_FILTER);
if (filter instanceof FilenameFilter) {
fileFilter = new DelegatingFilenameFilter((FilenameFilter)filter);
} else if (filter instanceof javax.swing.filechooser.FileFilter) {
fileFilter = (javax.swing.filechooser.FileFilter)filter;
} else if (filter instanceof java.io.FileFilter) {
fileFilter = new DelegatingFileFilter((java.io.FileFilter)filter);
} // XXX else if != null, warn
Object curDir = env.getFeatureDescriptor().getValue(PROPERTY_CURRENT_DIR);
if (curDir instanceof File) {
currentDirectory = (File)curDir;
if(! currentDirectory.isDirectory()) {
Logger.getAnonymousLogger().warning("java.io.File will not accept currentDir=" + currentDirectory); // NOI18N
currentDirectory = null;
}
} // XXX else if != null, warn
Object baseDir = env.getFeatureDescriptor().getValue(PROPERTY_BASE_DIR);
if(baseDir instanceof File) {
baseDirectory = (File)baseDir;
// As baseDir accept only directories in their absolute form.
if(!baseDirectory.isDirectory() || !baseDirectory.isAbsolute()) {
Logger.getAnonymousLogger().warning("java.io.File will not accept baseDir=" + baseDirectory); // NOI18N
baseDirectory = null;
}
} // XXX else if != null, warn
if (files) {
mode = directories ? JFileChooser.FILES_AND_DIRECTORIES :
JFileChooser.FILES_ONLY;
} else {
mode = directories ? JFileChooser.DIRECTORIES_ONLY :
JFileChooser.FILES_AND_DIRECTORIES; // both false, what now? XXX warn
}
Object fileHide = env.getFeatureDescriptor().getValue(PROPERTY_FILE_HIDING);
if (fileHide instanceof Boolean) {
fileHiding = ((Boolean)fileHide).booleanValue();
}
if (env.getFeatureDescriptor() instanceof Node.Property){
Node.Property prop = (Node.Property)env.getFeatureDescriptor();
editable = prop.canWrite();
}
}