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

Last change on this file since 10242 was 10173, checked in by Don-vip, 8 years ago

sonar - squid:S1186 - Methods should not be empty

  • Property svn:eol-style set to native
File size: 3.1 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 /**
30 * Constructs a new {@code RecentlyOpenedFilesMenu}.
31 */
32 public RecentlyOpenedFilesMenu() {
33 super(tr("Open Recent"));
34 setToolTipText(tr("List of recently opened files"));
35 setIcon(new ImageProvider("openrecent").setSize(ImageProvider.ImageSizes.MENU).get());
36 putClientProperty("help", ht("/Action/OpenRecent"));
37
38 // build dynamically
39 addMenuListener(new MenuListener() {
40 @Override
41 public void menuSelected(MenuEvent e) {
42 rebuild();
43 }
44
45 @Override
46 public void menuDeselected(MenuEvent e) {
47 // Do nothing
48 }
49
50 @Override
51 public void menuCanceled(MenuEvent e) {
52 // Do nothing
53 }
54 });
55 }
56
57 private void rebuild() {
58 removeAll();
59 Collection<String> fileHistory = Main.pref.getCollection("file-open.history");
60
61 for (final String file : fileHistory) {
62 add(new AbstractAction() {
63 {
64 putValue(NAME, file);
65 putValue("help", ht("/Action/OpenRecent"));
66 putValue("toolbar", Boolean.FALSE);
67 }
68 @Override
69 public void actionPerformed(ActionEvent e) {
70 File f = new File(file);
71 OpenFileTask task = new OpenFileTask(Collections.singletonList(f), null);
72 task.setRecordHistory(true);
73 Main.worker.submit(task);
74 }
75 });
76 }
77 add(new JSeparator());
78 if (clearAction == null) {
79 clearAction = new ClearAction();
80 }
81 JMenuItem clearItem = new JMenuItem(clearAction);
82 clearItem.setEnabled(!fileHistory.isEmpty());
83 add(clearItem);
84 }
85
86 private static class ClearAction extends AbstractAction {
87
88 ClearAction() {
89 super(tr("Clear"));
90 putValue(SHORT_DESCRIPTION, tr("Clear the list of recently opened files"));
91 putValue("help", ht("/Action/OpenRecent"));
92 putValue("toolbar", "recentlyopenedfiles/clear");
93 }
94
95 @Override
96 public void actionPerformed(ActionEvent e) {
97 Main.pref.putCollection("file-open.history", null);
98 }
99 }
100}
Note: See TracBrowser for help on using the repository browser.