package org.limewire.ui.swing.menu;
import java.awt.event.ActionEvent;
import java.util.Random;
import org.limewire.core.api.Application;
import org.limewire.ui.swing.action.AbstractAction;
import org.limewire.ui.swing.action.MnemonicMenu;
import org.limewire.ui.swing.action.UrlAction;
import org.limewire.ui.swing.home.HomeMediator;
import org.limewire.ui.swing.mainframe.AboutAction;
import org.limewire.ui.swing.nav.NavCategory;
import org.limewire.ui.swing.nav.Navigator;
import org.limewire.ui.swing.tray.Notification;
import org.limewire.ui.swing.tray.TrayNotifier;
import org.limewire.ui.swing.util.I18n;
import org.limewire.util.OSUtils;
import com.google.inject.Inject;
import com.google.inject.Provider;
class HelpMenu extends MnemonicMenu {
private final Application application;
private final Provider<TrayNotifier> trayNotifierProvider;
private final Provider<Navigator> navigatorProvider;
private final Provider<HomeMediator> homeMediatorProvider;
private final Provider<AboutAction> aboutAction;
@Inject
public HelpMenu(Application application,
Provider<TrayNotifier> trayNotifierProvider,
Provider<Navigator> navigatorProvider,
Provider<HomeMediator> homeMediatorProvider,
Provider<AboutAction> aboutAction) {
super(I18n.tr("&Help"));
this.application = application;
this.trayNotifierProvider = trayNotifierProvider;
this.navigatorProvider = navigatorProvider;
this.homeMediatorProvider = homeMediatorProvider;
this.aboutAction = aboutAction;
}
@Override
public void createMenuItems() {
add(new AbstractAction(I18n.tr("&Home Screen")) {
@Override
public void actionPerformed(ActionEvent e) {
navigatorProvider.get().getNavItem(NavCategory.LIMEWIRE, HomeMediator.NAME).select();
homeMediatorProvider.get().getComponent().loadDefaultUrl();
}
});
add(new UrlAction(I18n.tr("&Using LimeWire"), "http://www.limewire.com/client_redirect/?page=support"));
add(new UrlAction(I18n.tr("&FAQ"), "http://www.limewire.com/client_redirect/?page=faq"));
if(!application.isProVersion()) {
addSeparator();
add(new UrlAction(I18n.tr("Get Personalized &Tech Support"),"http://www.limewire.com/client_redirect/?page=gopro"));
}
if (!OSUtils.isMacOSX()) {
addSeparator();
add(aboutAction.get());
}
if (application.isTestingVersion()) {
addSeparator();
add(new AbstractAction("Error Test") {
@Override
public void actionPerformed(ActionEvent e) {
throw new RuntimeException("Test Error");
}
});
add(new AbstractAction("Tray Test") {
@Override
public void actionPerformed(ActionEvent e) {
if (new Random().nextBoolean()) {
Notification notification = new Notification("This is a not tooo long message title",
"This is a super looooooooooooooooooooooooooooooooong message.",
this);
trayNotifierProvider.get().showMessage(notification);
} else if (new Random().nextBoolean()) {
Notification notification = new Notification("Long super loooooooooooooong loooon loooong message title",
"This is a another very loooong loooong loooong loooong loooong loooong loooong loooong loooong message.",
this);
trayNotifierProvider.get().showMessage(notification);
} else {
Notification notification = new Notification("Short Title", "Short message.", this);
trayNotifierProvider.get().showMessage(notification);
}
}
});
}
}
}