Changeset 3710 in josm for trunk/src/org/openstreetmap/josm/actions
- Timestamp:
- 2010-12-10T10:15:21+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
r3679 r3710 14 14 import java.util.Collection; 15 15 import java.util.Collections; 16 import java.util.LinkedHashSet; 16 17 import java.util.LinkedList; 17 18 import java.util.List; 18 19 20 import java.util.Set; 19 21 import javax.swing.JFileChooser; 20 22 import javax.swing.JOptionPane; … … 57 59 File[] files = fc.getSelectedFiles(); 58 60 OpenFileTask task = new OpenFileTask(Arrays.asList(files), fc.getFileFilter()); 61 task.setRecordHistory(true); 59 62 Main.worker.submit(task); 60 63 } … … 79 82 private FileFilter fileFilter; 80 83 private boolean cancelled; 84 private boolean recordHistory = false; 81 85 82 86 public OpenFileTask(List<File> files, FileFilter fileFilter, String title) { … … 88 92 public OpenFileTask(List<File> files, FileFilter fileFilter) { 89 93 this(files, fileFilter, tr("Opening files")); 94 } 95 96 /** 97 * save filename in history (for list of recently opened files) 98 * default: false 99 */ 100 public void setRecordHistory(boolean recordHistory) { 101 this.recordHistory = recordHistory; 102 } 103 104 public boolean isRecordHistory() { 105 return recordHistory; 90 106 } 91 107 … … 167 183 } 168 184 /** 169 * If the filter wasn'tchanged in the dialog, chosenImporter is null now.170 * When the filter was explicitly setto AllFormatsImporter, treat this the same.185 * If the filter hasn't been changed in the dialog, chosenImporter is null now. 186 * When the filter has been set explicitly to AllFormatsImporter, treat this the same. 171 187 */ 172 188 if (chosenImporter instanceof AllFormatsImporter) { … … 210 226 // find appropriate importer 211 227 MultiMap<FileImporter, File> map = new MultiMap<FileImporter, File>(); 212 List<File> filesWithKnownImporter = new LinkedList<File>();213 228 List<File> filesWithUnknownImporter = new LinkedList<File>(); 214 229 FILES: for (File f : files) { … … 216 231 if (importer.acceptFile(f)) { 217 232 map.put(importer, f); 218 filesWithKnownImporter.add(f);219 233 continue FILES; 220 234 } … … 228 242 Collections.sort(ims); 229 243 Collections.reverse(ims); 244 245 Set<String> fileHistory = new LinkedHashSet<String>(); 246 230 247 for (FileImporter importer : ims) { 231 248 List<File> files = new ArrayList<File>(map.get(importer)); 232 249 importData(importer, files); 250 251 if (recordHistory && !importer.isBatchImporter()) { 252 for (File f : files) { 253 fileHistory.add(f.getPath()); 254 } 255 } 256 } 257 258 if (recordHistory) { 259 Collection<String> oldFileHistory = Main.pref.getCollection("file-open.history"); 260 fileHistory.addAll(oldFileHistory); 261 int maxsize = Math.max(0, Main.pref.getInteger("file-open.history.max-size", 15)); 262 Collection<String> trimmedFileHistory = new ArrayList<String>(Math.min(maxsize, fileHistory.size())); 263 int i = 0; 264 for (String s : fileHistory) { 265 if (++i > maxsize) { 266 break; 267 } 268 trimmedFileHistory.add(s); 269 } 270 Main.pref.putCollection("file-open.history", trimmedFileHistory); 233 271 } 234 272 }
Note:
See TracChangeset
for help on using the changeset viewer.