package org.limewire.ui.swing.menu;
import javax.swing.JMenu;
import javax.swing.event.MenuListener;
import org.limewire.ui.swing.action.DelayedMenuItemCreator;
import org.limewire.ui.swing.action.MnemonicMenu;
import org.limewire.ui.swing.util.I18n;
import org.limewire.util.OSUtils;
import com.google.inject.Inject;
import com.google.inject.Provider;
class FileMenu extends MnemonicMenu implements DelayedMenuItemCreator {
private final JMenu recentDownloadsMenu;
private Provider<OpenFileAction> openFileActionProvider;
private Provider<OpenLinkAction> openLinkActionProvider;
private Provider<AddFileAction> addFileActionProvider;
private Provider<FixStalledDownloadsAction> fixStalledDownloadsActionProvider;
private Provider<ExitAfterTransferAction> exitAfterTransferActionProvider;
private Provider<ExitAction> exitActionProvider;
@Inject
public FileMenu(RecentDownloadsMenu recentDownloadsMenu,
Provider<OpenFileAction> openFileActionProvider,
Provider<OpenLinkAction> openLinkActionProvider,
Provider<AddFileAction> addFileActionProvider,
Provider<FixStalledDownloadsAction> fixStalledDownloadsActionProvider,
Provider<ExitAfterTransferAction> exitAfterTransferActionProvider,
Provider<ExitAction> exitActionProvider) {
super(I18n.tr("&File"));
this.recentDownloadsMenu = recentDownloadsMenu;
this.openFileActionProvider = openFileActionProvider;
this.openLinkActionProvider = openLinkActionProvider;
this.addFileActionProvider = addFileActionProvider;
this.fixStalledDownloadsActionProvider = fixStalledDownloadsActionProvider;
this.exitAfterTransferActionProvider = exitAfterTransferActionProvider;
this.exitActionProvider = exitActionProvider;
}
@Override
public void createMenuItems() {
add(openFileActionProvider.get());
add(openLinkActionProvider.get());
add(recentDownloadsMenu);
addSeparator();
add(addFileActionProvider.get());
addSeparator();
add(fixStalledDownloadsActionProvider.get());
// Add exit actions.
if (!OSUtils.isMacOSX()) {
addSeparator();
add(exitAfterTransferActionProvider.get());
add(exitActionProvider.get());
}
}
@Override
public void addMenuListener(MenuListener listener) {
super.addMenuListener(listener);
recentDownloadsMenu.addMenuListener(listener);
}
}