X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java index dfdc1ea..7725750 100644 --- a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java +++ b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java @@ -24,6 +24,7 @@ import net.sourceforge.phpdt.core.Signature; import net.sourceforge.phpdt.debug.core.PHPDebugModel; import net.sourceforge.phpdt.internal.debug.core.breakpoints.PHPLineBreakpoint; import net.sourceforge.phpdt.internal.debug.ui.PHPDebugUiPlugin; + import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -42,13 +43,14 @@ import org.eclipse.ui.texteditor.ITextEditor; /** * Toggles a line breakpoint in a Java editor. - * + * * @since 3.0 */ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { protected void report(String message, IWorkbenchPart part) { - IEditorStatusLine statusLine= (IEditorStatusLine) part.getAdapter(IEditorStatusLine.class); + IEditorStatusLine statusLine = (IEditorStatusLine) part + .getAdapter(IEditorStatusLine.class); if (statusLine != null) { if (message != null) { statusLine.setMessage(true, message, null); @@ -56,204 +58,257 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { statusLine.setMessage(true, null, null); } } - if (message != null && PHPDebugUiPlugin.getActiveWorkbenchShell() != null) { + if (message != null + && PHPDebugUiPlugin.getActiveWorkbenchShell() != null) { PHPDebugUiPlugin.getActiveWorkbenchShell().getDisplay().beep(); } } -// protected IType getType(ITextSelection selection) { -// IMember member= ActionDelegateHelper.getDefault().getCurrentMember(selection); -// IType type= null; -// if (member instanceof IType) { -// type = (IType)member; -// } else if (member != null) { -// type= member.getDeclaringType(); -// } -// // bug 52385: we don't want local and anonymous types from compilation unit, -// // we are getting 'not-always-correct' names for them. -// try { -// while (type != null && !type.isBinary() && type.isLocal()) { -// type= type.getDeclaringType(); -// } -// } catch (JavaModelException e) { -// PHPDebugUiPlugin.log(e); -// } -// return type; -// } + // protected IType getType(ITextSelection selection) { + // IMember member= + // ActionDelegateHelper.getDefault().getCurrentMember(selection); + // IType type= null; + // if (member instanceof IType) { + // type = (IType)member; + // } else if (member != null) { + // type= member.getDeclaringType(); + // } + // // bug 52385: we don't want local and anonymous types from compilation + // unit, + // // we are getting 'not-always-correct' names for them. + // try { + // while (type != null && !type.isBinary() && type.isLocal()) { + // type= type.getDeclaringType(); + // } + // } catch (JavaModelException e) { + // PHPDebugUiPlugin.log(e); + // } + // return type; + // } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(IWorkbenchPart, ISelection) + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(IWorkbenchPart, + * ISelection) */ - public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException { + public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) + throws CoreException { if (selection instanceof ITextSelection) { report(null, part); - IEditorPart editorPart = (IEditorPart)part; - ITextSelection textSelection = (ITextSelection)selection; -// IType type = getType(textSelection); + IEditorPart editorPart = (IEditorPart) part; + ITextSelection textSelection = (ITextSelection) selection; + // IType type = getType(textSelection); IEditorInput editorInput = editorPart.getEditorInput(); - IDocument document= ((ITextEditor)editorPart).getDocumentProvider().getDocument(editorInput); - int lineNumber= textSelection.getStartLine() + 1; - int offset= textSelection.getOffset(); + IDocument document = ((ITextEditor) editorPart) + .getDocumentProvider().getDocument(editorInput); + int lineNumber = textSelection.getStartLine() + 1; + int offset = textSelection.getOffset(); try { -// if (type == null) { -// IClassFile classFile= (IClassFile)editorInput.getAdapter(IClassFile.class); -// if (classFile != null) { -// type= classFile.getType(); -// // bug 34856 - if this is an inner type, ensure the breakpoint is not -// // being added to the outer type -// if (type.getDeclaringType() != null) { -// ISourceRange sourceRange= type.getSourceRange(); -// int start= sourceRange.getOffset(); -// int end= start + sourceRange.getLength(); -// if (offset < start || offset > end) { -// // not in the inner type -// IStatusLineManager statusLine = editorPart.getEditorSite().getActionBars().getStatusLineManager(); -// statusLine .setErrorMessage(MessageFormat.format(ActionMessages.getString("ManageBreakpointRulerAction.Breakpoints_can_only_be_created_within_the_type_associated_with_the_editor__{0}._1"), new String[] { type.getTypeQualifiedName()})); //$NON-NLS-1$ -// Display.getCurrent().beep(); -// return; -// } -// } -// } -// } + // if (type == null) { + // IClassFile classFile= + // (IClassFile)editorInput.getAdapter(IClassFile.class); + // if (classFile != null) { + // type= classFile.getType(); + // // bug 34856 - if this is an inner type, ensure the + // breakpoint is not + // // being added to the outer type + // if (type.getDeclaringType() != null) { + // ISourceRange sourceRange= type.getSourceRange(); + // int start= sourceRange.getOffset(); + // int end= start + sourceRange.getLength(); + // if (offset < start || offset > end) { + // // not in the inner type + // IStatusLineManager statusLine = + // editorPart.getEditorSite().getActionBars().getStatusLineManager(); + // statusLine + // .setErrorMessage(MessageFormat.format(ActionMessages.getString("ManageBreakpointRulerAction.Breakpoints_can_only_be_created_within_the_type_associated_with_the_editor__{0}._1"), + // new String[] { type.getTypeQualifiedName()})); //$NON-NLS-1$ + // Display.getCurrent().beep(); + // return; + // } + // } + // } + // } -// String typeName= null; + // String typeName= null; IResource resource; - PHPLineBreakpoint breakpoint= null; -// if (type == null) { - if (editorInput instanceof IFileEditorInput) { - resource= ((IFileEditorInput)editorInput).getFile(); - } else { - resource= ResourcesPlugin.getWorkspace().getRoot(); - } -// } else { -// typeName= type.getFullyQualifiedName(); -// PHPLineBreakpoint breakpoint=PHPDebugModel.lineBreakpointExists(lineNumber); -// if (breakpoint==null) -// PHPDebugModel.createLineBreakpoint(getFile(), lineNumber, 0, true, null); -// else -// DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint( breakpoint, true ); -// - PHPLineBreakpoint existingBreakpoint= PHPDebugModel.lineBreakpointExists(lineNumber); //typeName, lineNumber); - if (existingBreakpoint != null) { - DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(existingBreakpoint, true); - return; - } else { - breakpoint = PHPDebugModel.createLineBreakpoint(resource, lineNumber, 0, true, null); - } - // } -// new BreakpointLocationVerifierJob(document, breakpoint, lineNumber, typeName, type, resource, (IEditorStatusLine) editorPart.getAdapter(IEditorStatusLine.class)).schedule(); + PHPLineBreakpoint breakpoint = null; + // if (type == null) { + if (editorInput instanceof IFileEditorInput) { + resource = ((IFileEditorInput) editorInput).getFile(); + } else { + resource = ResourcesPlugin.getWorkspace().getRoot(); + } + // } else { + // typeName= type.getFullyQualifiedName(); + // PHPLineBreakpoint + // breakpoint=PHPDebugModel.lineBreakpointExists(lineNumber); + // if (breakpoint==null) + // PHPDebugModel.createLineBreakpoint(getFile(), lineNumber, 0, + // true, null); + // else + // DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint( + // breakpoint, true ); + // + PHPLineBreakpoint existingBreakpoint = PHPDebugModel + .lineBreakpointExists(lineNumber); // typeName, + // lineNumber); + if (existingBreakpoint != null) { + DebugPlugin.getDefault().getBreakpointManager() + .removeBreakpoint(existingBreakpoint, true); + return; + } else { + breakpoint = PHPDebugModel.createLineBreakpoint(resource, + lineNumber, 0, true, null); + } + // } + // new BreakpointLocationVerifierJob(document, breakpoint, + // lineNumber, typeName, type, resource, (IEditorStatusLine) + // editorPart.getAdapter(IEditorStatusLine.class)).schedule(); } catch (CoreException ce) { - // TODO: no message in ActionMessages - //ExceptionHandler.handle(ce, ActionMessages.getString("ManageBreakpointActionDelegate.error.title1"), ActionMessages.getString("ManageBreakpointActionDelegate.error.message1")); //$NON-NLS-1$ //$NON-NLS-2$ + // TODO: no message in ActionMessages + // ExceptionHandler.handle(ce, + // ActionMessages.getString("ManageBreakpointActionDelegate.error.title1"), + // ActionMessages.getString("ManageBreakpointActionDelegate.error.message1")); + // //$NON-NLS-1$ //$NON-NLS-2$ return; } } } - /*(non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(IWorkbenchPart, ISelection) + + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(IWorkbenchPart, + * ISelection) */ - public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) { + public boolean canToggleLineBreakpoints(IWorkbenchPart part, + ISelection selection) { return selection instanceof ITextSelection; } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, + * org.eclipse.jface.viewers.ISelection) */ - public void toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException { -// report(null, part); -// selection = translateToMembers(part, selection); -// if (selection instanceof ITextSelection) { -// ITextSelection textSelection = (ITextSelection) selection; -// if (selection != null) { -// CompilationUnit compilationUnit= parseCompilationUnit((ITextEditor)part); -// if (compilationUnit != null) { -// BreakpointMethodLocator locator= new BreakpointMethodLocator(textSelection.getOffset()); -// compilationUnit.accept(locator); -// String methodName= locator.getMethodName(); -// if (methodName == null) { -// report(ActionMessages.getString("ManageMethodBreakpointActionDelegate.CantAdd"), part); //$NON-NLS-1$ -// return; -// } -// String typeName= locator.getTypeName(); -// String methodSignature= locator.getMethodSignature(); -// if (methodSignature == null) { -// report(ActionMessages.getString("ManageMethodBreakpointActionDelegate.methodNonAvailable"), part); //$NON-NLS-1$ -// return; -// } -// // check if this method breakpoint already exist. If yes, remove it. -// IBreakpointManager breakpointManager= DebugPlugin.getDefault().getBreakpointManager(); -// IBreakpoint[] breakpoints= breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); -// for (int i= 0; i < breakpoints.length; i++) { -// IBreakpoint breakpoint= breakpoints[i]; -// if (breakpoint instanceof IJavaMethodBreakpoint) { -// IJavaMethodBreakpoint methodBreakpoint= (IJavaMethodBreakpoint)breakpoint; -// if (typeName.equals(methodBreakpoint.getTypeName()) -// && methodName.equals(methodBreakpoint.getMethodName()) -// && methodSignature.equals(methodBreakpoint.getMethodSignature())) { -// breakpointManager.removeBreakpoint(methodBreakpoint, true); -// return; -// } -// } -// } -// // add the breakpoint -// JDIDebugModel.createMethodBreakpoint(getResource((IEditorPart)part), typeName, methodName, methodSignature, true, false, false, -1, -1, -1, 0, true, new HashMap(10)); -// } -// } -// } else if (selection instanceof IStructuredSelection) { -// IMethod[] members= getMethods((IStructuredSelection)selection); -// if (members.length == 0) { -// report(ActionMessages.getString("ToggleBreakpointAdapter.9"), part); //$NON-NLS-1$ -// return; -// } -// // add or remove the breakpoint -// IBreakpointManager breakpointManager= DebugPlugin.getDefault().getBreakpointManager(); -// for (int i= 0, length= members.length; i < length; i++) { -// IMethod method= members[i]; -// IJavaBreakpoint breakpoint= getBreakpoint(method); -// if (breakpoint == null) { -// // add breakpoint -// int start = -1; -// int end = -1; -// ISourceRange range = method.getNameRange(); -// if (range != null) { -// start = range.getOffset(); -// end = start + range.getLength(); -// } -// Map attributes = new HashMap(10); -// BreakpointUtils.addJavaBreakpointAttributes(attributes, method); -// String methodName = method.getElementName(); -// if (method.isConstructor()) { -// methodName = ""; //$NON-NLS-1$ -// } -// IType type= method.getDeclaringType(); -// String methodSignature= method.getSignature(); -// if (!type.isBinary()) { -// //resolve the type names -// methodSignature= resolveMethodSignature(type, methodSignature); -// if (methodSignature == null) { -// IStatus status = new Status(IStatus.ERROR, JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, "Source method signature could not be resolved", null); //$NON-NLS-1$ -// throw new CoreException(status); -// } -// } -// JDIDebugModel.createMethodBreakpoint(BreakpointUtils.getBreakpointResource(method), type.getFullyQualifiedName(), methodName, methodSignature, true, false, false, -1, start, end, 0, true, attributes); -// } else { -// // remove breakpoint -// breakpointManager.removeBreakpoint(breakpoint, true); -// } -// } -// } + public void toggleMethodBreakpoints(IWorkbenchPart part, + ISelection selection) throws CoreException { + // report(null, part); + // selection = translateToMembers(part, selection); + // if (selection instanceof ITextSelection) { + // ITextSelection textSelection = (ITextSelection) selection; + // if (selection != null) { + // CompilationUnit compilationUnit= + // parseCompilationUnit((ITextEditor)part); + // if (compilationUnit != null) { + // BreakpointMethodLocator locator= new + // BreakpointMethodLocator(textSelection.getOffset()); + // compilationUnit.accept(locator); + // String methodName= locator.getMethodName(); + // if (methodName == null) { + // report(ActionMessages.getString("ManageMethodBreakpointActionDelegate.CantAdd"), + // part); //$NON-NLS-1$ + // return; + // } + // String typeName= locator.getTypeName(); + // String methodSignature= locator.getMethodSignature(); + // if (methodSignature == null) { + // report(ActionMessages.getString("ManageMethodBreakpointActionDelegate.methodNonAvailable"), + // part); //$NON-NLS-1$ + // return; + // } + // // check if this method breakpoint already exist. If yes, remove it. + // IBreakpointManager breakpointManager= + // DebugPlugin.getDefault().getBreakpointManager(); + // IBreakpoint[] breakpoints= + // breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); + // for (int i= 0; i < breakpoints.length; i++) { + // IBreakpoint breakpoint= breakpoints[i]; + // if (breakpoint instanceof IJavaMethodBreakpoint) { + // IJavaMethodBreakpoint methodBreakpoint= + // (IJavaMethodBreakpoint)breakpoint; + // if (typeName.equals(methodBreakpoint.getTypeName()) + // && methodName.equals(methodBreakpoint.getMethodName()) + // && methodSignature.equals(methodBreakpoint.getMethodSignature())) { + // breakpointManager.removeBreakpoint(methodBreakpoint, true); + // return; + // } + // } + // } + // // add the breakpoint + // JDIDebugModel.createMethodBreakpoint(getResource((IEditorPart)part), + // typeName, methodName, methodSignature, true, false, false, -1, -1, + // -1, 0, true, new HashMap(10)); + // } + // } + // } else if (selection instanceof IStructuredSelection) { + // IMethod[] members= getMethods((IStructuredSelection)selection); + // if (members.length == 0) { + // report(ActionMessages.getString("ToggleBreakpointAdapter.9"), part); + // //$NON-NLS-1$ + // return; + // } + // // add or remove the breakpoint + // IBreakpointManager breakpointManager= + // DebugPlugin.getDefault().getBreakpointManager(); + // for (int i= 0, length= members.length; i < length; i++) { + // IMethod method= members[i]; + // IJavaBreakpoint breakpoint= getBreakpoint(method); + // if (breakpoint == null) { + // // add breakpoint + // int start = -1; + // int end = -1; + // ISourceRange range = method.getNameRange(); + // if (range != null) { + // start = range.getOffset(); + // end = start + range.getLength(); + // } + // Map attributes = new HashMap(10); + // BreakpointUtils.addJavaBreakpointAttributes(attributes, method); + // String methodName = method.getElementName(); + // if (method.isConstructor()) { + // methodName = ""; //$NON-NLS-1$ + // } + // IType type= method.getDeclaringType(); + // String methodSignature= method.getSignature(); + // if (!type.isBinary()) { + // //resolve the type names + // methodSignature= resolveMethodSignature(type, methodSignature); + // if (methodSignature == null) { + // IStatus status = new Status(IStatus.ERROR, + // JDIDebugUIPlugin.getUniqueIdentifier(), IStatus.ERROR, "Source method + // signature could not be resolved", null); //$NON-NLS-1$ + // throw new CoreException(status); + // } + // } + // JDIDebugModel.createMethodBreakpoint(BreakpointUtils.getBreakpointResource(method), + // type.getFullyQualifiedName(), methodName, methodSignature, true, + // false, false, -1, start, end, 0, true, attributes); + // } else { + // // remove breakpoint + // breakpointManager.removeBreakpoint(breakpoint, true); + // } + // } + // } } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart, + * org.eclipse.jface.viewers.ISelection) */ - public boolean canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) { -// if (selection instanceof IStructuredSelection) { -// IStructuredSelection ss = (IStructuredSelection) selection; -// return getMethods(ss).length > 0; -// } else { -// return selection instanceof ITextSelection; -// } + public boolean canToggleMethodBreakpoints(IWorkbenchPart part, + ISelection selection) { + // if (selection instanceof IStructuredSelection) { + // IStructuredSelection ss = (IStructuredSelection) selection; + // return getMethods(ss).length > 0; + // } else { + // return selection instanceof ITextSelection; + // } return false; } @@ -266,7 +321,8 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { while (iterator.hasNext()) { Object thing = iterator.next(); try { - if (thing instanceof IMethod && !Flags.isAbstract(((IMethod)thing).getFlags())) { + if (thing instanceof IMethod + && !Flags.isAbstract(((IMethod) thing).getFlags())) { methods.add(thing); } } catch (JavaModelException e) { @@ -276,128 +332,153 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { } } -// protected IField[] getFields(IStructuredSelection selection) { -// if (selection.isEmpty()) { -// return new IField[0]; -// } else { -// List fields = new ArrayList(selection.size()); -// Iterator iterator = selection.iterator(); -// while (iterator.hasNext()) { -// Object thing = iterator.next(); -// if (thing instanceof IField) { -// fields.add(thing); -// } else if (thing instanceof IJavaFieldVariable) { -// IField field= getField((IJavaFieldVariable) thing); -// if (field != null) { -// fields.add(field); -// } -// } -// } -// return (IField[]) fields.toArray(new IField[fields.size()]); -// } -// } + // protected IField[] getFields(IStructuredSelection selection) { + // if (selection.isEmpty()) { + // return new IField[0]; + // } else { + // List fields = new ArrayList(selection.size()); + // Iterator iterator = selection.iterator(); + // while (iterator.hasNext()) { + // Object thing = iterator.next(); + // if (thing instanceof IField) { + // fields.add(thing); + // } else if (thing instanceof IJavaFieldVariable) { + // IField field= getField((IJavaFieldVariable) thing); + // if (field != null) { + // fields.add(field); + // } + // } + // } + // return (IField[]) fields.toArray(new IField[fields.size()]); + // } + // } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleWatchpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleWatchpoints(org.eclipse.ui.IWorkbenchPart, + * org.eclipse.jface.viewers.ISelection) */ - public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) throws CoreException { -// report(null, part); -// selection = translateToMembers(part, selection); -// if (selection instanceof ITextSelection) { -// ITextSelection textSelection= (ITextSelection) selection; -// CompilationUnit compilationUnit= parseCompilationUnit((ITextEditor)part); -// if (compilationUnit != null) { -// BreakpointFieldLocator locator= new BreakpointFieldLocator(textSelection.getOffset()); -// compilationUnit.accept(locator); -// String fieldName= locator.getFieldName(); -// if (fieldName == null) { -// report(ActionMessages.getString("ManageWatchpointActionDelegate.CantAdd"), part); //$NON-NLS-1$ -// return; -// } -// String typeName= locator.getTypeName(); -// // check if the watchpoint already exists. If yes, remove it -// IBreakpointManager breakpointManager= DebugPlugin.getDefault().getBreakpointManager(); -// IBreakpoint[] breakpoints= breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); -// for (int i= 0; i < breakpoints.length; i++) { -// IBreakpoint breakpoint= breakpoints[i]; -// if (breakpoint instanceof IJavaWatchpoint) { -// IJavaWatchpoint watchpoint= (IJavaWatchpoint)breakpoint; -// if (typeName.equals(watchpoint.getTypeName()) && fieldName.equals(watchpoint.getFieldName())) { -// breakpointManager.removeBreakpoint(watchpoint, true); -// return; -// } -// } -// } -// // add the watchpoint -// JDIDebugModel.createWatchpoint(getResource((IEditorPart)part), typeName, fieldName, -1, -1, -1, 0, true, new HashMap(10)); -// } -// } else if (selection instanceof IStructuredSelection) { -// IField[] members = getFields((IStructuredSelection)selection); -// if (members.length == 0) { -// report(ActionMessages.getString("ToggleBreakpointAdapter.10"), part); //$NON-NLS-1$ -// return; -// } -// // add or remove watchpoint -// IBreakpointManager breakpointManager= DebugPlugin.getDefault().getBreakpointManager(); -// for (int i= 0, length= members.length; i < length; i++) { -// IField element= members[i]; -// IJavaBreakpoint breakpoint= getBreakpoint(element); -// if (breakpoint == null) { -// IType type = element.getDeclaringType(); -// int start = -1; -// int end = -1; -// ISourceRange range = element.getNameRange(); -// if (range != null) { -// start = range.getOffset(); -// end = start + range.getLength(); -// } -// Map attributes = new HashMap(10); -// BreakpointUtils.addJavaBreakpointAttributes(attributes, element); -// JDIDebugModel.createWatchpoint(BreakpointUtils.getBreakpointResource(type), type.getFullyQualifiedName(), element.getElementName(), -1, start, end, 0, true, attributes); -// } else { -// // remove breakpoint -// breakpointManager.removeBreakpoint(breakpoint, true); -// } -// } -// } + public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) + throws CoreException { + // report(null, part); + // selection = translateToMembers(part, selection); + // if (selection instanceof ITextSelection) { + // ITextSelection textSelection= (ITextSelection) selection; + // CompilationUnit compilationUnit= + // parseCompilationUnit((ITextEditor)part); + // if (compilationUnit != null) { + // BreakpointFieldLocator locator= new + // BreakpointFieldLocator(textSelection.getOffset()); + // compilationUnit.accept(locator); + // String fieldName= locator.getFieldName(); + // if (fieldName == null) { + // report(ActionMessages.getString("ManageWatchpointActionDelegate.CantAdd"), + // part); //$NON-NLS-1$ + // return; + // } + // String typeName= locator.getTypeName(); + // // check if the watchpoint already exists. If yes, remove it + // IBreakpointManager breakpointManager= + // DebugPlugin.getDefault().getBreakpointManager(); + // IBreakpoint[] breakpoints= + // breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); + // for (int i= 0; i < breakpoints.length; i++) { + // IBreakpoint breakpoint= breakpoints[i]; + // if (breakpoint instanceof IJavaWatchpoint) { + // IJavaWatchpoint watchpoint= (IJavaWatchpoint)breakpoint; + // if (typeName.equals(watchpoint.getTypeName()) && + // fieldName.equals(watchpoint.getFieldName())) { + // breakpointManager.removeBreakpoint(watchpoint, true); + // return; + // } + // } + // } + // // add the watchpoint + // JDIDebugModel.createWatchpoint(getResource((IEditorPart)part), + // typeName, fieldName, -1, -1, -1, 0, true, new HashMap(10)); + // } + // } else if (selection instanceof IStructuredSelection) { + // IField[] members = getFields((IStructuredSelection)selection); + // if (members.length == 0) { + // report(ActionMessages.getString("ToggleBreakpointAdapter.10"), part); + // //$NON-NLS-1$ + // return; + // } + // // add or remove watchpoint + // IBreakpointManager breakpointManager= + // DebugPlugin.getDefault().getBreakpointManager(); + // for (int i= 0, length= members.length; i < length; i++) { + // IField element= members[i]; + // IJavaBreakpoint breakpoint= getBreakpoint(element); + // if (breakpoint == null) { + // IType type = element.getDeclaringType(); + // int start = -1; + // int end = -1; + // ISourceRange range = element.getNameRange(); + // if (range != null) { + // start = range.getOffset(); + // end = start + range.getLength(); + // } + // Map attributes = new HashMap(10); + // BreakpointUtils.addJavaBreakpointAttributes(attributes, element); + // JDIDebugModel.createWatchpoint(BreakpointUtils.getBreakpointResource(type), + // type.getFullyQualifiedName(), element.getElementName(), -1, start, + // end, 0, true, attributes); + // } else { + // // remove breakpoint + // breakpointManager.removeBreakpoint(breakpoint, true); + // } + // } + // } } - public static String resolveMethodSignature(IType type, String methodSignature) throws JavaModelException { - String[] parameterTypes= Signature.getParameterTypes(methodSignature); - int length= length= parameterTypes.length; - String[] resolvedParameterTypes= new String[length]; + public static String resolveMethodSignature(IType type, + String methodSignature) throws JavaModelException { + String[] parameterTypes = Signature.getParameterTypes(methodSignature); + int length = length = parameterTypes.length; + String[] resolvedParameterTypes = new String[length]; for (int i = 0; i < length; i++) { - resolvedParameterTypes[i]= resolveType(type, parameterTypes[i]); + resolvedParameterTypes[i] = resolveType(type, parameterTypes[i]); if (resolvedParameterTypes[i] == null) { return null; } } - String resolvedReturnType= resolveType(type, Signature.getReturnType(methodSignature)); + String resolvedReturnType = resolveType(type, Signature + .getReturnType(methodSignature)); if (resolvedReturnType == null) { return null; } - return Signature.createMethodSignature(resolvedParameterTypes, resolvedReturnType); + return Signature.createMethodSignature(resolvedParameterTypes, + resolvedReturnType); } - private static String resolveType(IType type, String typeSignature) throws JavaModelException { -// int count= Signature.getArrayCount(typeSignature); -// String elementTypeSignature= Signature.getElementType(typeSignature); -// if (elementTypeSignature.length() == 1) { -// // no need to resolve primitive types -// return typeSignature; -// } -// String elementTypeName= Signature.toString(elementTypeSignature); -// String[][] resolvedElementTypeNames= type.resolveType(elementTypeName); -// if (resolvedElementTypeNames == null || resolvedElementTypeNames.length != 1) { -// // the type name cannot be resolved -// return null; -// } -// String resolvedElementTypeName= Signature.toQualifiedName(resolvedElementTypeNames[0]); -// String resolvedElementTypeSignature= Signature.createTypeSignature(resolvedElementTypeName, true).replace('.', '/'); -// return Signature.createArraySignature(resolvedElementTypeSignature, count); + private static String resolveType(IType type, String typeSignature) + throws JavaModelException { + // int count= Signature.getArrayCount(typeSignature); + // String elementTypeSignature= Signature.getElementType(typeSignature); + // if (elementTypeSignature.length() == 1) { + // // no need to resolve primitive types + // return typeSignature; + // } + // String elementTypeName= Signature.toString(elementTypeSignature); + // String[][] resolvedElementTypeNames= + // type.resolveType(elementTypeName); + // if (resolvedElementTypeNames == null || + // resolvedElementTypeNames.length != 1) { + // // the type name cannot be resolved + // return null; + // } + // String resolvedElementTypeName= + // Signature.toQualifiedName(resolvedElementTypeNames[0]); + // String resolvedElementTypeSignature= + // Signature.createTypeSignature(resolvedElementTypeName, + // true).replace('.', '/'); + // return Signature.createArraySignature(resolvedElementTypeSignature, + // count); return ""; } @@ -405,27 +486,30 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { IResource resource; IEditorInput editorInput = editor.getEditorInput(); if (editorInput instanceof IFileEditorInput) { - resource= ((IFileEditorInput)editorInput).getFile(); + resource = ((IFileEditorInput) editorInput).getFile(); } else { - resource= ResourcesPlugin.getWorkspace().getRoot(); + resource = ResourcesPlugin.getWorkspace().getRoot(); } return resource; } /** * Returns a handle to the specified method or null if none. - * - * @param editorPart the editor containing the method + * + * @param editorPart + * the editor containing the method * @param typeName * @param methodName * @param signature * @return handle or null */ - protected IMethod getMethodHandle(IEditorPart editorPart, String typeName, String methodName, String signature) throws CoreException { - IJavaElement element = (IJavaElement) editorPart.getEditorInput().getAdapter(IJavaElement.class); + protected IMethod getMethodHandle(IEditorPart editorPart, String typeName, + String methodName, String signature) throws CoreException { + IJavaElement element = (IJavaElement) editorPart.getEditorInput() + .getAdapter(IJavaElement.class); IType type = null; if (element instanceof ICompilationUnit) { - IType[] types = ((ICompilationUnit)element).getAllTypes(); + IType[] types = ((ICompilationUnit) element).getAllTypes(); for (int i = 0; i < types.length; i++) { if (types[i].getFullyQualifiedName().equals(typeName)) { type = types[i]; @@ -433,9 +517,9 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { } } } -// else if (element instanceof IClassFile) { -// type = ((IClassFile)element).getType(); -// } + // else if (element instanceof IClassFile) { + // type = ((IClassFile)element).getType(); + // } if (type != null) { String[] sigs = Signature.getParameterTypes(signature); return type.getMethod(methodName, sigs); @@ -443,260 +527,280 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTarget { return null; } -// protected IJavaBreakpoint getBreakpoint(IMember element) { -// IBreakpointManager breakpointManager= DebugPlugin.getDefault().getBreakpointManager(); -// IBreakpoint[] breakpoints= breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); -// if (element instanceof IMethod) { -// IMethod method= (IMethod)element; -// for (int i= 0; i < breakpoints.length; i++) { -// IBreakpoint breakpoint= breakpoints[i]; -// if (breakpoint instanceof IJavaMethodBreakpoint) { -// IJavaMethodBreakpoint methodBreakpoint= (IJavaMethodBreakpoint)breakpoint; -// IMember container = null; -// try { -// container= BreakpointUtils.getMember(methodBreakpoint); -// } catch (CoreException e) { -// JDIDebugUIPlugin.log(e); -// return null; -// } -// if (container == null) { -// try { -// if (method.getDeclaringType().getFullyQualifiedName().equals(methodBreakpoint.getTypeName()) -// && method.getElementName().equals(methodBreakpoint.getMethodName()) -// && method.getSignature().equals(methodBreakpoint.getMethodSignature())) { -// return methodBreakpoint; -// } -// } catch (CoreException e) { -// JDIDebugUIPlugin.log(e); -// } -// } else { -// if (container instanceof IMethod) { -// if (method.getDeclaringType().getFullyQualifiedName().equals(container.getDeclaringType().getFullyQualifiedName())) { -// if (method.isSimilar((IMethod)container)) { -// return methodBreakpoint; -// } -// } -// } -// } -// } -// } -// } else if (element instanceof IField) { -// for (int i= 0; i < breakpoints.length; i++) { -// IBreakpoint breakpoint= breakpoints[i]; -// if (breakpoint instanceof IJavaWatchpoint) { -// try { -// if (equalFields(element, (IJavaWatchpoint)breakpoint)) -// return (IJavaBreakpoint)breakpoint; -// } catch (CoreException e) { -// JDIDebugUIPlugin.log(e); -// } -// } -// } -// } -// return null; -// } + // protected IJavaBreakpoint getBreakpoint(IMember element) { + // IBreakpointManager breakpointManager= + // DebugPlugin.getDefault().getBreakpointManager(); + // IBreakpoint[] breakpoints= + // breakpointManager.getBreakpoints(JDIDebugModel.getPluginIdentifier()); + // if (element instanceof IMethod) { + // IMethod method= (IMethod)element; + // for (int i= 0; i < breakpoints.length; i++) { + // IBreakpoint breakpoint= breakpoints[i]; + // if (breakpoint instanceof IJavaMethodBreakpoint) { + // IJavaMethodBreakpoint methodBreakpoint= + // (IJavaMethodBreakpoint)breakpoint; + // IMember container = null; + // try { + // container= BreakpointUtils.getMember(methodBreakpoint); + // } catch (CoreException e) { + // JDIDebugUIPlugin.log(e); + // return null; + // } + // if (container == null) { + // try { + // if + // (method.getDeclaringType().getFullyQualifiedName().equals(methodBreakpoint.getTypeName()) + // && method.getElementName().equals(methodBreakpoint.getMethodName()) + // && method.getSignature().equals(methodBreakpoint.getMethodSignature())) { + // return methodBreakpoint; + // } + // } catch (CoreException e) { + // JDIDebugUIPlugin.log(e); + // } + // } else { + // if (container instanceof IMethod) { + // if + // (method.getDeclaringType().getFullyQualifiedName().equals(container.getDeclaringType().getFullyQualifiedName())) + // { + // if (method.isSimilar((IMethod)container)) { + // return methodBreakpoint; + // } + // } + // } + // } + // } + // } + // } else if (element instanceof IField) { + // for (int i= 0; i < breakpoints.length; i++) { + // IBreakpoint breakpoint= breakpoints[i]; + // if (breakpoint instanceof IJavaWatchpoint) { + // try { + // if (equalFields(element, (IJavaWatchpoint)breakpoint)) + // return (IJavaBreakpoint)breakpoint; + // } catch (CoreException e) { + // JDIDebugUIPlugin.log(e); + // } + // } + // } + // } + // return null; + // } /** - * Compare two fields. The default equals() - * method for IField doesn't give the comparison desired. + * Compare two fields. The default equals() method for + * IField doesn't give the comparison desired. */ -// private boolean equalFields(IMember breakpointField, IJavaWatchpoint watchpoint) throws CoreException { -// return (breakpointField.getElementName().equals(watchpoint.getFieldName()) && -// breakpointField.getDeclaringType().getFullyQualifiedName().equals(watchpoint.getTypeName())); -// } -// -// protected CompilationUnit parseCompilationUnit(ITextEditor editor) { -// IEditorInput editorInput = editor.getEditorInput(); -// IDocument document= editor.getDocumentProvider().getDocument(editorInput); -// ASTParser parser = ASTParser.newParser(AST.JLS2); -// parser.setSource(document.get().toCharArray()); -// return (CompilationUnit) parser.createAST(null); -// } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleWatchpoints(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + // private boolean equalFields(IMember breakpointField, IJavaWatchpoint + // watchpoint) throws CoreException { + // return + // (breakpointField.getElementName().equals(watchpoint.getFieldName()) && + // breakpointField.getDeclaringType().getFullyQualifiedName().equals(watchpoint.getTypeName())); + // } + // + // protected CompilationUnit parseCompilationUnit(ITextEditor editor) { + // IEditorInput editorInput = editor.getEditorInput(); + // IDocument document= + // editor.getDocumentProvider().getDocument(editorInput); + // ASTParser parser = ASTParser.newParser(AST.JLS2); + // parser.setSource(document.get().toCharArray()); + // return (CompilationUnit) parser.createAST(null); + // } + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleWatchpoints(org.eclipse.ui.IWorkbenchPart, + * org.eclipse.jface.viewers.ISelection) */ - public boolean canToggleWatchpoints(IWorkbenchPart part, ISelection selection) { -// if (selection instanceof IStructuredSelection) { -// IStructuredSelection ss = (IStructuredSelection) selection; -// return getFields(ss).length > 0; -// } else { -// return selection instanceof ITextSelection; -// } + public boolean canToggleWatchpoints(IWorkbenchPart part, + ISelection selection) { + // if (selection instanceof IStructuredSelection) { + // IStructuredSelection ss = (IStructuredSelection) selection; + // return getFields(ss).length > 0; + // } else { + // return selection instanceof ITextSelection; + // } return false; } /** - * Returns a selection of the member in the given text selection, - * or the original selection if none. - * + * Returns a selection of the member in the given text selection, or the + * original selection if none. + * * @param part * @param selection * @return a structured selection of the member in the given text selection, - * or the original selection if none - * @exception CoreException if an exceptoin occurrs + * or the original selection if none + * @exception CoreException + * if an exceptoin occurrs */ -// protected ISelection translateToMembers(IWorkbenchPart part, ISelection selection) throws CoreException { -// if (selection instanceof ITextSelection && part instanceof IEditorPart) { -// ITextSelection textSelection = (ITextSelection)selection; -// IEditorPart editorPart = (IEditorPart) part; -// IEditorInput editorInput = editorPart.getEditorInput(); -// IMember m= null; -// IClassFile classFile= (IClassFile)editorInput.getAdapter(IClassFile.class); -// if (classFile != null) { -// IJavaElement e= classFile.getElementAt(textSelection.getOffset()); -// if (e instanceof IMember) { -// m= (IMember)e; -// } -// } else { -// IWorkingCopyManager manager= JavaUI.getWorkingCopyManager(); -// ICompilationUnit unit= manager.getWorkingCopy(editorInput); -// if (unit != null) { -// synchronized (unit) { -// unit.reconcile(ICompilationUnit.NO_AST /*don't create ast*/, false/*don't force problem detection*/, null/*use primary owner*/, null/*no progress monitor*/); -// } -// IJavaElement e = unit.getElementAt(textSelection.getOffset()); -// if (e instanceof IMember) { -// m= (IMember)e; -// } -// } -// } -// if (m != null) { -// return new StructuredSelection(m); -// } -// } -// return selection; -// } - + // protected ISelection translateToMembers(IWorkbenchPart part, ISelection + // selection) throws CoreException { + // if (selection instanceof ITextSelection && part instanceof IEditorPart) { + // ITextSelection textSelection = (ITextSelection)selection; + // IEditorPart editorPart = (IEditorPart) part; + // IEditorInput editorInput = editorPart.getEditorInput(); + // IMember m= null; + // IClassFile classFile= + // (IClassFile)editorInput.getAdapter(IClassFile.class); + // if (classFile != null) { + // IJavaElement e= classFile.getElementAt(textSelection.getOffset()); + // if (e instanceof IMember) { + // m= (IMember)e; + // } + // } else { + // IWorkingCopyManager manager= JavaUI.getWorkingCopyManager(); + // ICompilationUnit unit= manager.getWorkingCopy(editorInput); + // if (unit != null) { + // synchronized (unit) { + // unit.reconcile(ICompilationUnit.NO_AST /*don't create ast*/, false/*don't + // force problem detection*/, null/*use primary owner*/, null/*no progress + // monitor*/); + // } + // IJavaElement e = unit.getElementAt(textSelection.getOffset()); + // if (e instanceof IMember) { + // m= (IMember)e; + // } + // } + // } + // if (m != null) { + // return new StructuredSelection(m); + // } + // } + // return selection; + // } /** - * Returns a list of matching types (IType - Java model) that correspond to the - * declaring type (ReferenceType - JDI model) of the given variable. + * Returns a list of matching types (IType - Java model) that correspond to + * the declaring type (ReferenceType - JDI model) of the given variable. */ -// protected static List searchForDeclaringType(IJavaFieldVariable variable) { -// List types= new ArrayList(); -// ILaunch launch = variable.getDebugTarget().getLaunch(); -// if (launch == null) { -// return types; -// } -// -// ILaunchConfiguration configuration= launch.getLaunchConfiguration(); -// IJavaProject[] javaProjects = null; -// IWorkspace workspace= ResourcesPlugin.getWorkspace(); -// if (configuration != null) { -// // Launch configuration support -// try { -// String projectName= configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$ -// if (projectName.length() != 0) { -// javaProjects= new IJavaProject[] {JavaCore.create(workspace.getRoot().getProject(projectName))}; -// } else { -// IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects(); -// IProject project; -// List projectList= new ArrayList(); -// for (int i= 0, numProjects= projects.length; i < numProjects; i++) { -// project= projects[i]; -// if (project.isAccessible() && project.hasNature(JavaCore.NATURE_ID)) { -// projectList.add(JavaCore.create(project)); -// } -// } -// javaProjects= new IJavaProject[projectList.size()]; -// projectList.toArray(javaProjects); -// } -// } catch (CoreException e) { -// JDIDebugUIPlugin.log(e); -// } -// } -// if (javaProjects == null) { -// return types; -// } -// -// SearchEngine engine= new SearchEngine(); -// IJavaSearchScope scope= SearchEngine.createJavaSearchScope(javaProjects, true); -// String declaringType= null; -// try { -// declaringType= variable.getDeclaringType().getName(); -// } catch (DebugException x) { -// JDIDebugUIPlugin.log(x); -// return types; -// } -// ArrayList typeRefsFound= new ArrayList(3); -// ITypeNameRequestor requestor= new TypeInfoRequestor(typeRefsFound); -// try { -// engine.searchAllTypeNames( -// getPackage(declaringType), -// getTypeName(declaringType), -// SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE, -// IJavaSearchConstants.CLASS, -// scope, -// requestor, -// IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, -// null); -// } catch (JavaModelException x) { -// JDIDebugUIPlugin.log(x); -// return types; -// } -// Iterator iter= typeRefsFound.iterator(); -// TypeInfo typeInfo= null; -// while (iter.hasNext()) { -// typeInfo= (TypeInfo)iter.next(); -// try { -// types.add(typeInfo.resolveType(scope)); -// } catch (JavaModelException jme) { -// JDIDebugUIPlugin.log(jme); -// } -// } -// return types; -// } - + // protected static List searchForDeclaringType(IJavaFieldVariable variable) + // { + // List types= new ArrayList(); + // ILaunch launch = variable.getDebugTarget().getLaunch(); + // if (launch == null) { + // return types; + // } + // + // ILaunchConfiguration configuration= launch.getLaunchConfiguration(); + // IJavaProject[] javaProjects = null; + // IWorkspace workspace= ResourcesPlugin.getWorkspace(); + // if (configuration != null) { + // // Launch configuration support + // try { + // String projectName= + // configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, + // ""); //$NON-NLS-1$ + // if (projectName.length() != 0) { + // javaProjects= new IJavaProject[] + // {JavaCore.create(workspace.getRoot().getProject(projectName))}; + // } else { + // IProject[] projects= + // ResourcesPlugin.getWorkspace().getRoot().getProjects(); + // IProject project; + // List projectList= new ArrayList(); + // for (int i= 0, numProjects= projects.length; i < numProjects; i++) { + // project= projects[i]; + // if (project.isAccessible() && project.hasNature(JavaCore.NATURE_ID)) { + // projectList.add(JavaCore.create(project)); + // } + // } + // javaProjects= new IJavaProject[projectList.size()]; + // projectList.toArray(javaProjects); + // } + // } catch (CoreException e) { + // JDIDebugUIPlugin.log(e); + // } + // } + // if (javaProjects == null) { + // return types; + // } + // + // SearchEngine engine= new SearchEngine(); + // IJavaSearchScope scope= SearchEngine.createJavaSearchScope(javaProjects, + // true); + // String declaringType= null; + // try { + // declaringType= variable.getDeclaringType().getName(); + // } catch (DebugException x) { + // JDIDebugUIPlugin.log(x); + // return types; + // } + // ArrayList typeRefsFound= new ArrayList(3); + // ITypeNameRequestor requestor= new TypeInfoRequestor(typeRefsFound); + // try { + // engine.searchAllTypeNames( + // getPackage(declaringType), + // getTypeName(declaringType), + // SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE, + // IJavaSearchConstants.CLASS, + // scope, + // requestor, + // IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, + // null); + // } catch (JavaModelException x) { + // JDIDebugUIPlugin.log(x); + // return types; + // } + // Iterator iter= typeRefsFound.iterator(); + // TypeInfo typeInfo= null; + // while (iter.hasNext()) { + // typeInfo= (TypeInfo)iter.next(); + // try { + // types.add(typeInfo.resolveType(scope)); + // } catch (JavaModelException jme) { + // JDIDebugUIPlugin.log(jme); + // } + // } + // return types; + // } /** - * Returns the package name of the given fully qualified type name. - * The package name is assumed to be the dot-separated prefix of the - * type name. + * Returns the package name of the given fully qualified type name. The + * package name is assumed to be the dot-separated prefix of the type name. */ -// protected static char[] getPackage(String fullyQualifiedName) { -// int index= fullyQualifiedName.lastIndexOf('.'); -// if (index == -1) { -// return new char[0]; -// } -// return fullyQualifiedName.substring(0, index).toCharArray(); -// } -// -// /** -// * Returns a simple type name from the given fully qualified type name. -// * The type name is assumed to be the last contiguous segment of the -// * fullyQualifiedName not containing a '.' or '$' -// */ -// protected static char[] getTypeName(String fullyQualifiedName) { -// int index= fullyQualifiedName.lastIndexOf('.'); -// String typeName= fullyQualifiedName.substring(index + 1); -// int lastInnerClass= typeName.lastIndexOf('$'); -// if (lastInnerClass != -1) { -// typeName= typeName.substring(lastInnerClass + 1); -// } -// return typeName.toCharArray(); -// } -// -// /** -// * Return the associated IField (Java model) for the given -// * IJavaFieldVariable (JDI model) -// */ -// private IField getField(IJavaFieldVariable variable) { -// String varName= null; -// try { -// varName= variable.getName(); -// } catch (DebugException x) { -// JDIDebugUIPlugin.log(x); -// return null; -// } -// IField field; -// List types= searchForDeclaringType(variable); -// Iterator iter= types.iterator(); -// while (iter.hasNext()) { -// IType type= (IType)iter.next(); -// field= type.getField(varName); -// if (field.exists()) { -// return field; -// } -// } -// return null; -// } + // protected static char[] getPackage(String fullyQualifiedName) { + // int index= fullyQualifiedName.lastIndexOf('.'); + // if (index == -1) { + // return new char[0]; + // } + // return fullyQualifiedName.substring(0, index).toCharArray(); + // } + // + // /** + // * Returns a simple type name from the given fully qualified type name. + // * The type name is assumed to be the last contiguous segment of the + // * fullyQualifiedName not containing a '.' or '$' + // */ + // protected static char[] getTypeName(String fullyQualifiedName) { + // int index= fullyQualifiedName.lastIndexOf('.'); + // String typeName= fullyQualifiedName.substring(index + 1); + // int lastInnerClass= typeName.lastIndexOf('$'); + // if (lastInnerClass != -1) { + // typeName= typeName.substring(lastInnerClass + 1); + // } + // return typeName.toCharArray(); + // } + // + // /** + // * Return the associated IField (Java model) for the given + // * IJavaFieldVariable (JDI model) + // */ + // private IField getField(IJavaFieldVariable variable) { + // String varName= null; + // try { + // varName= variable.getName(); + // } catch (DebugException x) { + // JDIDebugUIPlugin.log(x); + // return null; + // } + // IField field; + // List types= searchForDeclaringType(variable); + // Iterator iter= types.iterator(); + // while (iter.hasNext()) { + // IType type= (IType)iter.next(); + // field= type.getField(varName); + // if (field.exists()) { + // return field; + // } + // } + // return null; + // } }