source: josm/trunk/src/org/openstreetmap/josm/gui/io/RecentlyOpenedFilesMenu.java@ 9966

Last change on this file since 9966 was 8836, checked in by Don-vip, 9 years ago

fix Checkstyle issues

  • Property svn:eol-style set to native
File size: 3.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.ActionEvent;
8import java.io.File;
9import java.util.Collection;
10import java.util.Collections;
11
12import javax.swing.AbstractAction;
13import javax.swing.JMenu;
14import javax.swing.JMenuItem;
15import javax.swing.JSeparator;
16import javax.swing.event.MenuEvent;
17import javax.swing.event.MenuListener;
18
19import org.openstreetmap.josm.Main;
20import org.openstreetmap.josm.actions.OpenFileAction.OpenFileTask;
21import org.openstreetmap.josm.tools.ImageProvider;
22
23/**
24 * Show list of recently opened files
25 */
26public class RecentlyOpenedFilesMenu extends JMenu {
27 private ClearAction clearAction;
28
29 public RecentlyOpenedFilesMenu() {
30 super(tr("Open Recent"));
31 setToolTipText(tr("List of recently opened files"));
32 setIcon(new ImageProvider("openrecent").setSize(ImageProvider.ImageSizes.MENU).get());
33 putClientProperty("help", ht("/Action/OpenRecent"));
34
35 // build dynamically
36 addMenuListener(new MenuListener() {
37 @Override
38 public void menuSelected(MenuEvent e) {
39 rebuild();
40 }
41
42 @Override
43 public void menuDeselected(MenuEvent e) {
44 }
45
46 @Override
47 public void menuCanceled(MenuEvent e) {
48 }
49 });
50 }
51
52 private void rebuild() {
53 removeAll();
54 Collection<String> fileHistory = Main.pref.getCollection("file-open.history");
55
56 for (final String file : fileHistory) {
57 add(new AbstractAction() {
58 {
59 putValue(NAME, file);
60 putValue("help", ht("/Action/OpenRecent"));
61 putValue("toolbar", Boolean.FALSE);
62 }
63 @Override
64 public void actionPerformed(ActionEvent e) {
65 File f = new File(file);
66 OpenFileTask task = new OpenFileTask(Collections.singletonList(f), null);
67 task.setRecordHistory(true);
68 Main.worker.submit(task);
69 }
70 });
71 }
72 add(new JSeparator());
73 if (clearAction == null) {
74 clearAction = new ClearAction();
75 }
76 JMenuItem clearItem = new JMenuItem(clearAction);
77 clearItem.setEnabled(!fileHistory.isEmpty());
78 add(clearItem);
79 }
80
81 private static class ClearAction extends AbstractAction {
82
83 ClearAction() {
84 super(tr("Clear"));
85 putValue(SHORT_DESCRIPTION, tr("Clear the list of recently opened files"));
86 putValue("help", ht("/Action/OpenRecent"));
87 putValue("toolbar", "recentlyopenedfiles/clear");
88 }
89
90 @Override
91 public void actionPerformed(ActionEvent e) {
92 Main.pref.putCollection("file-open.history", null);
93 }
94 }
95}
Note: See TracBrowser for help on using the repository browser.