/*******************************************************************************
* Copyright (c) 2013 AKSW Xturtle Project, itemis AG (http://www.itemis.eu).
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
package de.itemis.tooling.xturtle.ui.wizard;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.xtext.ui.XtextProjectHelper;
import org.eclipse.xtext.ui.util.ProjectFactory;
import org.eclipse.xtext.ui.wizard.AbstractProjectCreator;
import org.eclipse.xtext.util.StringInputStream;
import com.google.common.base.Charsets;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class TurtleProjectCreator extends AbstractProjectCreator{
private static final String FILE_NAME = "example.ttl";
@Inject
private Provider<ProjectFactory> projectFactoryProvider;
@Override
protected ProjectFactory createProjectFactory() {
return projectFactoryProvider.get();
}
@Override
protected String getModelFolderName() {
throw new UnsupportedOperationException();
}
@Override
protected List<String> getAllFolders() {
return Collections.emptyList();
}
protected String[] getProjectNatures() {
return new String[] { XtextProjectHelper.NATURE_ID/*,"de.itemis.tooling.xturtle.ui.de.itemis.tooling.xturtleNature"*/};
}
protected String[] getBuilders() {
return new String[] { XtextProjectHelper.BUILDER_ID };
}
protected void enhanceProject(final IProject project, final IProgressMonitor monitor) throws CoreException {
project.setDefaultCharset(Charsets.UTF_8.name(), monitor);
IFile file = project.getFile(FILE_NAME);
file.create(new StringInputStream(TurtleNewFileWizard.initialFileContent), true, monitor);
file.setCharset(Charsets.UTF_8.name(), monitor);
project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
}
@Override
protected IFile getModelFile(IProject project) throws CoreException {
return project.getFile(FILE_NAME);
}
@Override
protected List<IProject> getReferencedProjects() {
return ((XturtleProjectInfo)getProjectInfo()).getReferencedProjects();
}
}