/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.nbstudio.core;
import org.nbstudio.project.CacheProject;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.swing.JFileChooser;
import org.nbstudio.cachefilechooser.CacheFileChooser;
import org.nbstudio.cachefilechooser.CacheFileNameExtensionFilter;
import org.nbstudio.cachefilesystem.CacheFileSystem;
import org.netbeans.api.project.ProjectManager;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.URLMapper;
/**
*
* @author daimor
*/
//@ActionID(category = "Project", id = "org.netbeans.modules.project.ui.OpenProject")
//@ActionRegistration(
// displayName = "org.nbstudio.Bundle#CTL_OpenProject",
// iconBase = "org/nbstudio/core/resources/openProject.png")
public class OpenProject implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
try {
CacheFileChooser fileChooser = new CacheFileChooser();
fileChooser.setMultiSelectionEnabled(false);
fileChooser.getFileSystemView().setShowProjectFiles(true);
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.addChoosableFileFilter(new CacheFileNameExtensionFilter("Project files", new String[]{"prj"}));
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int answer = fileChooser.showOpenDialog(null);
if (answer == JFileChooser.APPROVE_OPTION) {
File[] files;
if (fileChooser.isMultiSelectionEnabled()) {
files = fileChooser.getSelectedFiles();
} else {
files = new File[]{fileChooser.getSelectedFile()};
}
for (File file : files) {
URL fileURL = file.toURI().toURL();
FileObject fileObject = URLMapper.findFileObject(fileURL);
CacheProject prj = (CacheProject) ProjectManager.getDefault().findProject(fileObject);
CacheFileSystem fs = (CacheFileSystem) fileObject.getFileSystem();
// if (fs.getConnection().addProject(prj)) {
//// OpenProjects.getDefault().open(new Project[]{prj}, false);
// }
}
}
} catch (HeadlessException | IOException | IllegalArgumentException ex) {
ex.printStackTrace();
}
}
}