1 package net.sourceforge.phpeclipse.xdebug.ui.php.model; 2 3 import net.sourceforge.phpeclipse.xdebug.php.launching.IXDebugConstants; 4 import net.sourceforge.phpeclipse.xdebug.php.model.XDebugLineBreakpoint; 5 6 import org.eclipse.core.resources.IResource; 7 import org.eclipse.core.runtime.CoreException; 8 import org.eclipse.debug.core.DebugPlugin; 9 import org.eclipse.debug.core.model.IBreakpoint; 10 import org.eclipse.debug.core.model.ILineBreakpoint; 11 import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; 12 import org.eclipse.jface.text.ITextSelection; 13 import org.eclipse.jface.viewers.ISelection; 14 import org.eclipse.ui.IEditorPart; 15 import org.eclipse.ui.IWorkbenchPart; 16 17 public class PHPLineBreakpointAdapter implements IToggleBreakpointsTarget { 18 toggleLineBreakpoints(IWorkbenchPart part, ISelection selection)19 public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) 20 throws CoreException { 21 IEditorPart editorPart = (IEditorPart)part; 22 23 IResource resource = (IResource) editorPart.getEditorInput().getAdapter(IResource.class); 24 ITextSelection textSelection = (ITextSelection) selection; 25 int lineNumber = textSelection.getStartLine()+1; 26 IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(IXDebugConstants.ID_PHP_DEBUG_MODEL); 27 for (int i = 0; i < breakpoints.length; i++) { 28 IBreakpoint breakpoint = breakpoints[i]; 29 if (resource.equals(breakpoint.getMarker().getResource())) { 30 if (((ILineBreakpoint)breakpoint).getLineNumber() == (lineNumber )) { 31 // remove 32 breakpoint.delete(); 33 return; 34 } 35 } 36 } 37 // create line breakpoint (doc line numbers start at 0) 38 XDebugLineBreakpoint lineBreakpoint = new XDebugLineBreakpoint(resource, lineNumber); 39 DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(lineBreakpoint); 40 41 } 42 canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection)43 public boolean canToggleLineBreakpoints(IWorkbenchPart part, 44 ISelection selection) { 45 // TODO Auto-generated method stub 46 return true; 47 } 48 toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection)49 public void toggleMethodBreakpoints(IWorkbenchPart part, 50 ISelection selection) throws CoreException { 51 // TODO Auto-generated method stub 52 53 } 54 canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection)55 public boolean canToggleMethodBreakpoints(IWorkbenchPart part, 56 ISelection selection) { 57 // TODO Auto-generated method stub 58 return false; 59 } 60 toggleWatchpoints(IWorkbenchPart part, ISelection selection)61 public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) 62 throws CoreException { 63 // TODO Auto-generated method stub 64 65 } 66 canToggleWatchpoints(IWorkbenchPart part, ISelection selection)67 public boolean canToggleWatchpoints(IWorkbenchPart part, 68 ISelection selection) { 69 // TODO Auto-generated method stub 70 return false; 71 } 72 73 } 74