package com.onpositive.gae.tools.core;
import java.io.File;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceNode;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.jface.preference.PreferenceNode;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPropertyPage;
import com.onpositive.gae.tools.WebRootDirStorage;
public class WebRootDirProvider {
public static IContainer calculate(IProject project) {
String[] webDir = null;
try {
String tmp = null;
tmp = WebRootDirStorage.getWebRoot(project);
if (tmp != null && tmp.length() > 0) {
webDir = tmp.split("\\" + File.separator);
}
} catch (CoreException e) {
e.printStackTrace();
}
if (webDir == null) {
webDir = new String[] { "war" };
}
IContainer warFolder = project;
for (String s : webDir) {
if (warFolder instanceof IFolder) {
warFolder = ((IFolder) warFolder).getFolder(s);
}
if (warFolder instanceof IProject) {
warFolder = ((IProject) warFolder).getFolder(s);
}
}
// project.getFolder(webDir);
return warFolder;
}
public static void showPropPage(final IProject project) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
MessageDialog.openError(Display.getDefault().getActiveShell(),
"Error", "War directory did not found.");
// PreferenceDialog createPreferenceDialogOn = PreferencesUtil
// .createPropertyDialogOn(Display.getDefault()
// .getActiveShell(), project,
// "com.onpositive.gae.tools.core.pages",
// new String[]{"com.onpositive.gae.tools.core.weblocation"},
// project);
// createPreferenceDialogOn.open();
IWorkbenchPropertyPage page = new WebDirectoryLocation();
page.setElement(project);
PreferenceManager mgr = new PreferenceManager();
IPreferenceNode node = new PreferenceNode("1", page);
mgr.addToRoot(node);
PreferenceDialog dialog = new PreferenceDialog(Display
.getDefault().getActiveShell(), mgr);
dialog.create();
dialog.setMessage(page.getTitle());
dialog.open();
}
});
}
}