From 38c8d93a6b5edecdbca47c4d63c4e446c401ca3f Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 31 Jan 2013 19:25:43 +0400 Subject: [PATCH] EA-43386 (dogs and nulls are forbidden) --- .../fileChooser/ex/FileChooserDialogImpl.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java index 2b313d131512..f775685995ef 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -124,7 +124,8 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD show(); if (myChosenFiles.length > 0) { callback.consume(Arrays.asList(myChosenFiles)); - } else if (callback instanceof FileChooser.FileChooserConsumer){ + } + else if (callback instanceof FileChooser.FileChooserConsumer) { ((FileChooser.FileChooserConsumer)callback).cancelled(); } } @@ -357,13 +358,21 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD myFileSystemTree.registerMouseListener(group); } + @Nullable private VirtualFile[] getSelectedFilesInt() { if (myTreeIsUpdating || !myUiUpdater.isEmpty()) { - if (!isTextFieldActive() || StringUtil.isEmpty(myPathTextField.getTextFieldText())) - return VirtualFile.EMPTY_ARRAY; - final LocalFsFinder.VfsFile toFind = (LocalFsFinder.VfsFile)myPathTextField.getFile(); - return toFind == null || !toFind.exists() ? VirtualFile.EMPTY_ARRAY : new VirtualFile[]{toFind.getFile()}; + if (isTextFieldActive() && !StringUtil.isEmpty(myPathTextField.getTextFieldText())) { + LookupFile toFind = myPathTextField.getFile(); + if (toFind instanceof LocalFsFinder.VfsFile && toFind.exists()) { + VirtualFile file = ((LocalFsFinder.VfsFile)toFind).getFile(); + if (file != null) { + return new VirtualFile[]{file}; + } + } + } + return VirtualFile.EMPTY_ARRAY; } + final List selectedFiles = Arrays.asList(myFileSystemTree.getSelectedFiles()); return VfsUtilCore.toVirtualFileArray(FileChooserUtil.getChosenFiles(myChooserDescriptor, selectedFiles)); }