package org.eclipse.vjet.eclipse.javatojs.ui.commands;
import java.util.ArrayList;
import java.util.List;
//import org.apache.log4j.Logger;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
public class WorkspaceUtil {
// private static final Logger logger = Logger.getLogger(WorkspaceUtil.class);
public WorkspaceUtil() {
super();
// TODO Auto-generated constructor stub
}
static public String getSemiColonDelimitedWorkspaceProjects() {
IProject[] workspaceProjects = getWorkspaceProjects();
StringBuilder projectString = new StringBuilder(2048);
for (IProject project : workspaceProjects) {
projectString.append(project.getName());
projectString.append(";");
}
return projectString.substring(0, projectString.length() - 1);
}
static public IProject[] getWorkspaceProjects() {
return ResourcesPlugin.getWorkspace().getRoot().getProjects();
}
public static List<IJavaProject> getAllProjects() throws JavaModelException {
IProject[] workspaceProjects = WorkspaceUtil.getWorkspaceProjects();
List<IJavaProject> javaProjectList = new ArrayList<IJavaProject>();
for (IProject workspaceProject : workspaceProjects) {
try {
if (isJavaProject(workspaceProject)) {
IJavaProject codeGenJavaProject = JavaCore
.create(workspaceProject);
// logger.info("project="+codeGenJavaProject.getElementName());
if (!codeGenJavaProject.isOpen()) {
codeGenJavaProject.open(null);
}
if (codeGenJavaProject.exists()) {
javaProjectList.add(codeGenJavaProject);
}
}
} catch (JavaModelException e) {
// Ignore projects that we can not open
continue;
} catch (CoreException e) {
// Ignore projects that we can not open
continue;
}
}
return javaProjectList;
}
public static boolean isJavaProject(IProject workspaceProject) throws CoreException {
return workspaceProject
.getNature("org.eclipse.jdt.core.javanature") != null;
}
}