package com.mobilesorcery.sdk.html5.debug.jsdt;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.wst.jsdt.debug.core.breakpoints.IJavaScriptBreakpoint;
import org.eclipse.wst.jsdt.debug.core.breakpoints.IJavaScriptBreakpointParticipant;
import org.eclipse.wst.jsdt.debug.core.jsdi.ScriptReference;
import org.eclipse.wst.jsdt.debug.core.model.IJavaScriptThread;
import com.mobilesorcery.sdk.core.MoSyncProject;
import com.mobilesorcery.sdk.html5.Html5Plugin;
import com.mobilesorcery.sdk.html5.debug.JSODDSupport;
import com.mobilesorcery.sdk.html5.ui.DebuggingEnableTester;
public class ReloadBreakpointParticipant implements
IJavaScriptBreakpointParticipant {
public ReloadBreakpointParticipant() {
}
@Override
public int breakpointHit(IJavaScriptThread thread,
IJavaScriptBreakpoint breakpoint) {
if (isApplicable(breakpoint.getMarker().getResource())) {
return SUSPEND;
}
return DONT_CARE;
}
@Override
public int scriptLoaded(IJavaScriptThread thread, ScriptReference script,
IJavaScriptBreakpoint breakpoint) {
if (script instanceof SimpleScriptReference) {
if (isApplicable(((SimpleScriptReference) script).getFile())) {
return SUSPEND;
}
}
return DONT_CARE;
}
private boolean isApplicable(IResource resource) {
if (resource == null) {
return false;
}
IProject project = resource.getProject();
return DebuggingEnableTester.hasDebugSupport(MoSyncProject.create(project));
}
}