package net.sourceforge.phpeclipse.xdebug.ui.php.model; import net.sourceforge.phpeclipse.xdebug.php.launching.IXDebugConstants; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugLineBreakpoint; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.ILineBreakpoint; import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPart; public class PHPLineBreakpointAdapter implements IToggleBreakpointsTarget { public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException { IEditorPart editorPart = (IEditorPart)part; IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class); ITextSelection textSelection = (ITextSelection) selection; int lineNumber = textSelection.getStartLine()+1; IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(IXDebugConstants.ID_PHP_BREAKPOINT_MODEL); for (int i = 0; i < breakpoints.length; i++) { IBreakpoint breakpoint = breakpoints[i]; if (resource.equals(breakpoint.getMarker().getResource())) { if (((ILineBreakpoint)breakpoint).getLineNumber() == (lineNumber )) { // remove breakpoint.delete(); return; } } } // create line breakpoint (doc line numbers start at 0) XDebugLineBreakpoint lineBreakpoint = new XDebugLineBreakpoint(resource, lineNumber); DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(lineBreakpoint); } public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) { // TODO Auto-generated method stub return true; } public void toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException { // TODO Auto-generated method stub } public boolean canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) { // TODO Auto-generated method stub return false; } public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) throws CoreException { // TODO Auto-generated method stub } public boolean canToggleWatchpoints(IWorkbenchPart part, ISelection selection) { // TODO Auto-generated method stub return false; } }