package org.limewire.ui.swing.library.navigator; import javax.swing.Action; import javax.swing.JPopupMenu; import org.limewire.ui.swing.library.AddFileAction; import org.limewire.ui.swing.library.navigator.LibraryNavItem.NavType; import org.limewire.ui.swing.util.I18n; import com.google.inject.Inject; import com.google.inject.Provider; class LibraryNavPopupMenu extends JPopupMenu { private final AddFileAction addAction; private final ImportListAction importAction; private final ExportListAction exportAction; private final Provider<RenameAction> renameAction; private final ClearAction clearAction; private final Provider<DeleteListAction> deleteAction; @Inject public LibraryNavPopupMenu(LibraryNavigatorPanel navPanel, AddFileAction addAction, ImportListAction importAction, ExportListAction exportAction, Provider<RenameAction> renameAction, ClearAction clearAction, Provider<DeleteListAction> deleteAction) { this.addAction = addAction; this.importAction = importAction; this.exportAction = exportAction; this.renameAction = renameAction; this.clearAction = clearAction; this.deleteAction = deleteAction; this.addAction.putValue(Action.NAME, I18n.tr("Add Files...")); init(navPanel); } private void init(LibraryNavigatorPanel navPanel) { LibraryNavItem item = navPanel.getSelectedNavItem(); add(addAction); addSeparator(); add(importAction); add(exportAction); addSeparator(); if(item.getType() == NavType.LIBRARY || item.getType() == NavType.PUBLIC_SHARED) { add(clearAction).setEnabled(item.getLocalFileList().size() > 0); } else { add(renameAction.get()); addSeparator(); add(clearAction).setEnabled(item.getLocalFileList().size() > 0); add(deleteAction.get()).setEnabled(item.getType() == NavType.LIST && navPanel.getPrivateListCount() > 1); } } }