/**
*
*/
package org.limewire.ui.swing.menu;
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.List;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import org.limewire.core.api.library.LibraryManager;
import org.limewire.ui.swing.action.AbstractAction;
import org.limewire.ui.swing.util.FileChooser;
import org.limewire.ui.swing.util.GuiUtils;
import org.limewire.ui.swing.util.I18n;
import org.limewire.ui.swing.warnings.LibraryWarningController;
import com.google.inject.Inject;
class AddFileAction extends AbstractAction {
private final LibraryManager libraryManager;
private final LibraryWarningController librarySupport;
@Inject
public AddFileAction(LibraryManager libraryManager, LibraryWarningController librarySupport) {
super(I18n.tr("&Add to Library..."));
this.libraryManager = libraryManager;
this.librarySupport = librarySupport;
}
@Override
public void actionPerformed(ActionEvent e) {
List<File> files = FileChooser.getInput(GuiUtils.getMainFrame(), I18n.tr("Add to Library"),
I18n.tr("Add to Library"), FileChooser.getLastInputDirectory(),
JFileChooser.FILES_AND_DIRECTORIES, JFileChooser.APPROVE_OPTION, true,
new FileFilter() {
@Override
public boolean accept(File f) {
return f.isDirectory()
|| libraryManager.getLibraryData().isFileManageable(f);
}
@Override
public String getDescription() {
return I18n.tr("Valid Files");
}
});
if (files != null) {
librarySupport.addFiles(libraryManager.getLibraryManagedList(), files);
}
}
}