]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/gui/RecentFileTrigger.java
Version 13, August 2011
[GpsPrune.git] / tim / prune / gui / RecentFileTrigger.java
1 package tim.prune.gui;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5 import java.io.File;
6 import java.util.ArrayList;
7
8 import tim.prune.App;
9 import tim.prune.UpdateMessageBroker;
10 import tim.prune.config.Config;
11 import tim.prune.data.RecentFile;
12 import tim.prune.load.BabelLoadFromFile;
13
14 /**
15  * Class to act as a trigger when a menu item for a recent file is clicked
16  */
17 public class RecentFileTrigger implements ActionListener
18 {
19         private App _app = null;
20         private int _index = 0;
21
22
23         /**
24          * Constructor
25          * @param inApp App object
26          * @param inIndex menu index from 0
27          */
28         public RecentFileTrigger(App inApp, int inIndex)
29         {
30                 _app = inApp;
31                 _index = inIndex;
32         }
33
34         /**
35          * React to click on menu item
36          */
37         public void actionPerformed(ActionEvent arg0)
38         {
39                 RecentFile rf = Config.getRecentFileList().getFile(_index);
40                 if (rf != null && rf.isValid())
41                 {
42                         if (rf.isRegularLoad())
43                         {
44                                 // Trigger a regular file load
45                                 ArrayList<File> dataFiles = new ArrayList<File>();
46                                 dataFiles.add(rf.getFile());
47                                 _app.loadDataFiles(dataFiles);
48                         }
49                         else
50                         {
51                                 // Trigger a load via gpsbabel
52                                 new BabelLoadFromFile(_app).beginWithFile(rf.getFile());
53                         }
54                 }
55                 else
56                 {
57                         _app.showErrorMessage("function.open", "error.load.noread");
58                         Config.getRecentFileList().verifyAll(); // Called on a file which no longer exists
59                         UpdateMessageBroker.informSubscribers();
60                 }
61         }
62 }