package org.limewire.ui.swing.library.navigator; import java.awt.event.ActionEvent; import javax.swing.JOptionPane; import org.limewire.ui.swing.action.AbstractAction; import org.limewire.ui.swing.components.FocusJOptionPane; import org.limewire.ui.swing.util.I18n; import com.google.inject.Inject; import com.google.inject.Provider; class ClearAction extends AbstractAction { private final Provider<LibraryNavigatorPanel> libraryNavigatorPanel; @Inject public ClearAction(Provider<LibraryNavigatorPanel> libraryNavigatorPanel) { super(I18n.tr("Clear")); this.libraryNavigatorPanel = libraryNavigatorPanel; } @Override public void actionPerformed(ActionEvent e) { final LibraryNavItem item = libraryNavigatorPanel.get().getSelectedNavItem(); int confirmation = FocusJOptionPane.showConfirmDialog(null, getMessage(item), I18n.tr("Clear Files"), JOptionPane.OK_CANCEL_OPTION); if (confirmation == JOptionPane.OK_OPTION) { item.getLocalFileList().clear(); } } private String getMessage(LibraryNavItem nav){ switch(nav.getType()) { case LIST: if (nav.isShared()){ return I18n.tr("Remove all files from {0}? This will stop sharing all of these files.", nav.getDisplayText()); } else { return I18n.tr("Remove all files from {0}?", nav.getDisplayText()); } case LIBRARY: return I18n.tr("Remove all files from your library? This will remove all files you've downloaded and stop sharing every file you are sharing."); case PUBLIC_SHARED: if (nav.isShared()){ return I18n.tr("Remove all files from {0}? This will stop sharing all of these files with the world.", nav.getDisplayText()); } else { return I18n.tr("Remove all files from {0}?", nav.getDisplayText()); } default: throw new IllegalStateException("unknown type: " + nav.getType()); } } }