X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fgui%2FRecentFileTrigger.java;fp=tim%2Fprune%2Fgui%2FRecentFileTrigger.java;h=4be35d03ddf9ace0854a3e60e71506dde9454e24;hb=649c5da6ee1bbc590699e11a92316ece2ea8512d;hp=0000000000000000000000000000000000000000;hpb=eebbb64b5d63f9eea43a0dff908c30361a376768;p=GpsPrune.git diff --git a/tim/prune/gui/RecentFileTrigger.java b/tim/prune/gui/RecentFileTrigger.java new file mode 100644 index 0000000..4be35d0 --- /dev/null +++ b/tim/prune/gui/RecentFileTrigger.java @@ -0,0 +1,62 @@ +package tim.prune.gui; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.util.ArrayList; + +import tim.prune.App; +import tim.prune.UpdateMessageBroker; +import tim.prune.config.Config; +import tim.prune.data.RecentFile; +import tim.prune.load.BabelLoadFromFile; + +/** + * Class to act as a trigger when a menu item for a recent file is clicked + */ +public class RecentFileTrigger implements ActionListener +{ + private App _app = null; + private int _index = 0; + + + /** + * Constructor + * @param inApp App object + * @param inIndex menu index from 0 + */ + public RecentFileTrigger(App inApp, int inIndex) + { + _app = inApp; + _index = inIndex; + } + + /** + * React to click on menu item + */ + public void actionPerformed(ActionEvent arg0) + { + RecentFile rf = Config.getRecentFileList().getFile(_index); + if (rf != null && rf.isValid()) + { + if (rf.isRegularLoad()) + { + // Trigger a regular file load + ArrayList dataFiles = new ArrayList(); + dataFiles.add(rf.getFile()); + _app.loadDataFiles(dataFiles); + } + else + { + // Trigger a load via gpsbabel + new BabelLoadFromFile(_app).beginWithFile(rf.getFile()); + } + } + else + { + _app.showErrorMessage("function.open", "error.load.noread"); + Config.getRecentFileList().verifyAll(); // Called on a file which no longer exists + UpdateMessageBroker.informSubscribers(); + } + } +}