/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
+ * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
- *
+ *
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
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 net.sourceforge.phpdt.internal.ui.util.ExceptionHandler;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.ui.actions.ActionMessages;
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
* @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);
} else {
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;
-// }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(IWorkbenchPart, ISelection)
+
+ // 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)
*/
- 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;
-// }
-// }
-// }
-// }
-
-// String typeName= null;
+ // 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;
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 = "<init>"; //$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 = "<init>"; //$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;
}
-
+
protected IMethod[] getMethods(IStructuredSelection selection) {
if (selection.isEmpty()) {
return new IMethod[0];
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) {
return (IMethod[]) methods.toArray(new IMethod[methods.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)
+ // 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)
*/
- 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 "";
- }
-
+ }
+
protected static IResource getResource(IEditorPart editor) {
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 <code>null</code> 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 <code>null</code>
*/
- 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];
}
}
}
-// 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);
}
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 <code>equals()</code>
- * method for <code>IField</code> doesn't give the comparison desired.
+ * Compare two fields. The default <code>equals()</code> method for
+ * <code>IField</code> 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;
+ // }
}