package org.limewire.ui.swing.library;
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.ui.swing.action.AbstractAction;
import org.limewire.ui.swing.library.navigator.LibraryNavItem;
import org.limewire.ui.swing.library.navigator.LibraryNavigatorPanel;
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;
import com.google.inject.Provider;
public class AddFileAction extends AbstractAction {
private final Provider<LibraryNavigatorPanel> libraryNavigatorPanel;
private final LibraryWarningController librarySupport;
@Inject
public AddFileAction(Provider<LibraryNavigatorPanel> libraryNavigatorPanel, LibraryWarningController librarySupport) {
super(I18n.tr("Add Files"));
this.libraryNavigatorPanel = libraryNavigatorPanel;
this.librarySupport = librarySupport;
}
@Override
public void actionPerformed(ActionEvent e) {
final List<File> files = FileChooser.getInput(GuiUtils.getMainFrame(), I18n.tr("Add File(s)"),
I18n.tr("Add File(s)"), FileChooser.getLastInputDirectory(),
JFileChooser.FILES_AND_DIRECTORIES, JFileChooser.APPROVE_OPTION, true,
new FileFilter() {
@Override
public boolean accept(File f) {
return f.exists();
}
@Override
public String getDescription() {
return I18n.tr("All Files and Folders");
}
});
if (files != null) {
LibraryNavItem item = libraryNavigatorPanel.get().getSelectedNavItem();
if(item != null) {
librarySupport.addFiles(item.getLocalFileList(), files);
}
}
}
}