+ // Are there any recently-used files?
+ RecentFileList rfl = Config.getRecentFileList();
+ final int numRecentFiles = rfl.getNumEntries();
+ final boolean hasRecentFiles = numRecentFiles > 0;
+ _recentFileMenu.setEnabled(hasRecentFiles);
+ if (hasRecentFiles)
+ {
+ int numItems = _recentFileMenu.getMenuComponentCount();
+ if (numItems == numRecentFiles)
+ {
+ // Right number of items, just change texts
+ for (int i=0; i<numRecentFiles; i++)
+ {
+ JMenuItem item = _recentFileMenu.getItem(i);
+ item.setText(rfl.getFile(i)==null?"":rfl.getFile(i).getFile().getName());
+ item.setToolTipText(rfl.getFile(i)==null?null:rfl.getFile(i).getFile().getAbsolutePath());
+ }
+ }
+ else
+ {
+ // Rebuild menus
+ _recentFileMenu.removeAll();
+ for (int i=0; i<rfl.getSize(); i++)
+ {
+ RecentFile rf = rfl.getFile(i);
+ if (rf != null && rf.isValid())
+ {
+ JMenuItem menuItem = new JMenuItem(rf.getFile().getName());
+ menuItem.setToolTipText(rf.getFile().getAbsolutePath());
+ menuItem.addActionListener(new RecentFileTrigger(_app, i));
+ _recentFileMenu.add(menuItem);
+ }
+ }
+ }
+ }