Lines 20-25
package org.apache.jmeter.gui.util;
Link Here
|
20 |
|
20 |
|
21 |
import java.awt.Component; |
21 |
import java.awt.Component; |
22 |
import java.io.File; |
22 |
import java.io.File; |
|
|
23 |
import java.util.Arrays; |
23 |
|
24 |
|
24 |
import javax.swing.JFileChooser; |
25 |
import javax.swing.JFileChooser; |
25 |
import javax.swing.filechooser.FileFilter; |
26 |
import javax.swing.filechooser.FileFilter; |
Lines 27-32
import javax.swing.filechooser.FileFilter;
Link Here
|
27 |
import org.apache.commons.lang3.StringUtils; |
28 |
import org.apache.commons.lang3.StringUtils; |
28 |
import org.apache.jmeter.gui.GuiPackage; |
29 |
import org.apache.jmeter.gui.GuiPackage; |
29 |
import org.apache.jmeter.gui.JMeterFileFilter; |
30 |
import org.apache.jmeter.gui.JMeterFileFilter; |
|
|
31 |
import org.slf4j.Logger; |
32 |
import org.slf4j.LoggerFactory; |
30 |
|
33 |
|
31 |
/** |
34 |
/** |
32 |
* Class implementing a file open dialogue |
35 |
* Class implementing a file open dialogue |
Lines 39-44
public final class FileDialoger {
Link Here
|
39 |
|
42 |
|
40 |
private static JFileChooser jfc = new JFileChooser(); |
43 |
private static JFileChooser jfc = new JFileChooser(); |
41 |
|
44 |
|
|
|
45 |
private static final Logger LOG = LoggerFactory.getLogger(FileDialoger.class); |
46 |
|
42 |
/** |
47 |
/** |
43 |
* Prevent instantiation of utility class. |
48 |
* Prevent instantiation of utility class. |
44 |
*/ |
49 |
*/ |
Lines 180-198
public final class FileDialoger {
Link Here
|
180 |
} else { |
185 |
} else { |
181 |
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); |
186 |
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); |
182 |
} |
187 |
} |
183 |
if(!StringUtils.isEmpty(existingFileName)) { |
188 |
setCurrentDirOnJFC(existingFileName, lastJFCDirectory, System.getProperty("user.dir")); |
184 |
File existingFileStart = new File(existingFileName); |
|
|
185 |
if(existingFileStart.exists() && existingFileStart.canRead()) { |
186 |
jfc.setCurrentDirectory(new File(existingFileName)); |
187 |
} |
188 |
} |
189 |
else if (lastJFCDirectory == null) { |
190 |
String start = System.getProperty("user.dir", ""); //$NON-NLS-1$//$NON-NLS-2$ |
191 |
|
192 |
if (start.length() > 0) { |
193 |
jfc.setCurrentDirectory(new File(start)); |
194 |
} |
195 |
} |
196 |
clearFileFilters(); |
189 |
clearFileFilters(); |
197 |
if(exts != null && exts.length > 0) { |
190 |
if(exts != null && exts.length > 0) { |
198 |
JMeterFileFilter currentFilter = new JMeterFileFilter(exts); |
191 |
JMeterFileFilter currentFilter = new JMeterFileFilter(exts); |
Lines 200-209
public final class FileDialoger {
Link Here
|
200 |
jfc.setAcceptAllFileFilterUsed(true); |
193 |
jfc.setAcceptAllFileFilterUsed(true); |
201 |
jfc.setFileFilter(currentFilter); |
194 |
jfc.setFileFilter(currentFilter); |
202 |
} |
195 |
} |
203 |
if(lastJFCDirectory==null) { |
|
|
204 |
lastJFCDirectory = System.getProperty("user.dir", ""); //$NON-NLS-1$//$NON-NLS-2$ |
205 |
} |
206 |
jfc.setCurrentDirectory(new File(lastJFCDirectory)); |
207 |
int retVal = jfc.showOpenDialog(parentComponent); |
196 |
int retVal = jfc.showOpenDialog(parentComponent); |
208 |
lastJFCDirectory = jfc.getCurrentDirectory().getAbsolutePath(); |
197 |
lastJFCDirectory = jfc.getCurrentDirectory().getAbsolutePath(); |
209 |
|
198 |
|
Lines 213-218
public final class FileDialoger {
Link Here
|
213 |
return null; |
202 |
return null; |
214 |
} |
203 |
} |
215 |
|
204 |
|
|
|
205 |
private static void setCurrentDirOnJFC(String... dirNames) { |
206 |
for (String dirName : dirNames) { |
207 |
if (StringUtils.isBlank(dirName)) { |
208 |
continue; |
209 |
} |
210 |
File possibleDir = new File(dirName); |
211 |
if (possibleDir.exists() && possibleDir.canRead()) { |
212 |
jfc.setCurrentDirectory(possibleDir); |
213 |
return; |
214 |
} |
215 |
} |
216 |
LOG.info("No valid initial directory found for: {}", |
217 |
Arrays.asList(dirNames)); |
218 |
jfc.setCurrentDirectory(null); |
219 |
} |
220 |
|
216 |
private static void clearFileFilters() { |
221 |
private static void clearFileFilters() { |
217 |
FileFilter[] filters = jfc.getChoosableFileFilters(); |
222 |
FileFilter[] filters = jfc.getChoosableFileFilters(); |
218 |
for (FileFilter filter : filters) { |
223 |
for (FileFilter filter : filters) { |