package org.jkan997.slingbeans.nbprojects; import org.jkan997.slingbeans.nbprojects.content.ContentProject; import java.io.IOException; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; import org.netbeans.spi.project.ProjectFactory; import org.netbeans.spi.project.ProjectFactory2; import org.netbeans.spi.project.ProjectState; import org.openide.filesystems.FileObject; import org.openide.util.lookup.ServiceProvider; //@ServiceProvider(service = ProjectFactory.class) public class SlingBeansProjectFactory implements ProjectFactory { public static final String PROJECT_FILE = "sb-content"; @Override public boolean isProject(FileObject projectDirectory) { return projectDirectory.getFileObject(PROJECT_FILE) != null; } //Specifies when the project will be opened, i.e., if the project exists: @Override public Project loadProject(FileObject dir, ProjectState state) throws IOException { return isProject(dir) ? new ContentProject(dir, state) : null; } @Override public void saveProject(final Project project) throws IOException, ClassCastException { // leave unimplemented for the moment } }