diff options
author | nitind | 2005-04-13 19:12:49 +0000 |
---|---|---|
committer | nitind | 2005-04-13 19:12:49 +0000 |
commit | 292ded1b4de2f6030e4038b92a37ea5914d3ea7d (patch) | |
tree | 44e67d379b97f7e2b353212e4103815636679fec /bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug | |
parent | 20cb84d3fe65f82e36498d9946b3b951273a4a4d (diff) | |
download | webtools.sourceediting-20050413_1525.tar.gz webtools.sourceediting-20050413_1525.tar.xz webtools.sourceediting-20050413_1525.zip |
This commit was manufactured by cvs2svn to create tag 'v20050413_1525'.v20050413_1525
Diffstat (limited to 'bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug')
6 files changed, 0 insertions, 1235 deletions
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java deleted file mode 100644 index 00b0d6d078..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java +++ /dev/null @@ -1,304 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.IBreakpointManager; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.text.source.IAnnotationModel; -import org.eclipse.jface.text.source.IVerticalRulerInfo; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IPartService; -import org.eclipse.ui.IStorageEditorInput; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel; -import org.eclipse.ui.texteditor.IDocumentProvider; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.ui.texteditor.IUpdate; -import org.eclipse.wst.sse.core.IStructuredModel; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.ui.extensions.breakpoint.IBreakpointProvider; -import org.eclipse.wst.sse.ui.internal.Logger; -import org.eclipse.wst.sse.ui.internal.SSEUIPlugin; -import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder; - - -public abstract class BreakpointRulerAction extends Action implements IUpdate { - - protected class MouseUpdater implements MouseListener { - public void mouseDoubleClick(MouseEvent e) { - // do nothing (here) - } - - public void mouseDown(MouseEvent e) { - update(); - } - - public void mouseUp(MouseEvent e) { - // do nothing - } - } - - public static final String getFileExtension(IEditorInput input) { - IPath path = null; - if (input instanceof IStorageEditorInput) { - try { - path = ((IStorageEditorInput) input).getStorage().getFullPath(); - } catch (CoreException e) { - Logger.logException(e); - } - } - if (path != null) { - return path.getFileExtension(); - } - String name = input.getName(); - int index = name.lastIndexOf('.'); - if (index == -1) - return null; - if (index == (name.length() - 1)) - return ""; //$NON-NLS-1$ - return name.substring(index + 1); - } - - public static final IResource getResource(IEditorInput input) { - IResource resource = null; - - if (input instanceof IFileEditorInput) - resource = ((IFileEditorInput) input).getFile(); - if (resource == null) - resource = (IResource) input.getAdapter(IFile.class); - if (resource == null) - resource = (IResource) input.getAdapter(IResource.class); - - IEditorPart editorPart = null; - if (resource == null) { - IWorkbench workbench = SSEUIPlugin.getDefault().getWorkbench(); - if (workbench != null) { - IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); - if (window != null) { - IPartService service = window.getPartService(); - if (service != null) { - Object part = service.getActivePart(); - if (part != null && part instanceof IEditorPart) { - editorPart = (IEditorPart) part; - if (editorPart != null) { - IStructuredModel model = null; - ITextEditor textEditor = null; - try { - if (editorPart instanceof ITextEditor) { - textEditor = (ITextEditor) editorPart; - } - if (textEditor == null) { - textEditor = (ITextEditor) editorPart.getAdapter(ITextEditor.class); - } - if (textEditor != null) { - IDocument textDocument = textEditor.getDocumentProvider().getDocument(input); - model = StructuredModelManager.getModelManager().getExistingModelForRead(textDocument); - if (model != null) { - resource = BreakpointProviderBuilder.getInstance().getResource(input, model.getContentTypeIdentifier(), getFileExtension(input)); - } - } - if (resource == null) { - IBreakpointProvider[] providers = BreakpointProviderBuilder.getInstance().getBreakpointProviders(editorPart, null, getFileExtension(input)); - for (int i = 0; i < providers.length && resource == null; i++) { - resource = providers[i].getResource(input); - } - } - } catch (Exception e) { - Logger.logException(e); - } finally { - if (model != null) { - model.releaseFromRead(); - } - } - } - - } - } - } - - } - } - return resource; - } - - protected MouseListener fMouseListener = null; - - protected IVerticalRulerInfo fRulerInfo = null; - protected ITextEditor fTextEditor = null; - - public BreakpointRulerAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) { - super(); - fTextEditor = editor; - if(rulerInfo != null) { - fRulerInfo = rulerInfo; - fMouseListener = new MouseUpdater(); - rulerInfo.getControl().addMouseListener(fMouseListener); - } - } - - /** - * Returns the <code>AbstractMarkerAnnotationModel</code> of the - * editor's input. - * - * @return the marker annotation model - */ - protected AbstractMarkerAnnotationModel getAnnotationModel() { - IDocumentProvider provider = fTextEditor.getDocumentProvider(); - IAnnotationModel model = provider.getAnnotationModel(fTextEditor.getEditorInput()); - if (model instanceof AbstractMarkerAnnotationModel) - return (AbstractMarkerAnnotationModel) model; - return null; - } - - protected IBreakpoint[] getBreakpoints(IMarker[] markers) { - IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager(); - List breakpoints = new ArrayList(markers.length); - for (int i = 0; i < markers.length; i++) { - IBreakpoint breakpoint = manager.getBreakpoint(markers[i]); - if (breakpoint != null) { - breakpoints.add(breakpoint); - } - } - return (IBreakpoint[]) breakpoints.toArray(new IBreakpoint[0]); - } - - /** - * Returns the <code>IDocument</code> of the editor's input. - * - * @return the document of the editor's input - */ - protected IDocument getDocument() { - IDocumentProvider provider = fTextEditor.getDocumentProvider(); - return provider.getDocument(fTextEditor.getEditorInput()); - } - - /** - * Returns all markers which include the ruler's line of activity. - * - * @return an array of markers which include the ruler's line of activity - */ - protected IMarker[] getMarkers() { - List markers = new ArrayList(); - - IResource resource = getResource(); - IDocument document = getDocument(); - AbstractMarkerAnnotationModel annotationModel = getAnnotationModel(); - - if (resource != null && annotationModel != null && resource.exists()) { - try { - IMarker[] allMarkers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO); - if (allMarkers != null) { - for (int i = 0; i < allMarkers.length; i++) { - if (includesRulerLine(annotationModel.getMarkerPosition(allMarkers[i]), document)) { - markers.add(allMarkers[i]); - } - } - } - } catch (CoreException x) { - // - } - } - - return (IMarker[]) markers.toArray(new IMarker[0]); - } - - protected IResource getResource() { - IEditorInput input = getTextEditor().getEditorInput(); - IResource resource = getResource(input); - return resource; - } - - /** - * @return Returns the rulerInfo. - */ - public IVerticalRulerInfo getRulerInfo() { - return fRulerInfo; - } - - /** - * @return Returns the textEditor. - */ - public ITextEditor getTextEditor() { - return fTextEditor; - } - - protected boolean hasMarkers() { - IResource resource = getResource(); - IDocument document = getDocument(); - AbstractMarkerAnnotationModel model = getAnnotationModel(); - - if (resource != null && model != null && resource.exists()) { - try { - IMarker[] allMarkers = resource.findMarkers(IBreakpoint.LINE_BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO); - if (allMarkers != null) { - for (int i = 0; i < allMarkers.length; i++) { - if (includesRulerLine(model.getMarkerPosition(allMarkers[i]), document)) { - return true; - } - } - } - } catch (CoreException x) { - // - } - } - return false; - } - - /** - * Checks whether a position includes the ruler's line of activity. - * - * @param position - * the position to be checked - * @param document - * the document the position refers to - * @return <code>true</code> if the line is included by the given - * position - */ - protected boolean includesRulerLine(Position position, IDocument document) { - if (position != null && fRulerInfo != null) { - try { - int markerLine = document.getLineOfOffset(position.getOffset()); - int line = getRulerInfo().getLineOfLastMouseButtonActivity(); - if (line == markerLine) - return true; - // commented because of "1GEUOZ9: ITPJUI:ALL - Confusing UI - // for - // multiline Bookmarks and Tasks" - // return (markerLine <= line && line <= - // document.getLineOfOffset(position.getOffset() + - // position.getLength())); - } catch (BadLocationException x) { - // - } - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java deleted file mode 100644 index ef1f9b759a..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java +++ /dev/null @@ -1,421 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.content.IContentDescription; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.core.runtime.content.IContentTypeManager; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.source.IAnnotationModel; -import org.eclipse.ui.IEditorActionBarContributor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IPageLayout; -import org.eclipse.ui.IPathEditorInput; -import org.eclipse.ui.IStorageEditorInput; -import org.eclipse.ui.editors.text.FileDocumentProvider; -import org.eclipse.ui.editors.text.ILocationProvider; -import org.eclipse.ui.editors.text.StorageDocumentProvider; -import org.eclipse.ui.editors.text.TextEditor; -import org.eclipse.ui.part.IShowInTargetList; -import org.eclipse.ui.texteditor.AbstractDocumentProvider; -import org.eclipse.ui.texteditor.IDocumentProvider; -import org.eclipse.ui.texteditor.IElementStateListener; -import org.eclipse.ui.texteditor.ITextEditorActionConstants; -import org.eclipse.ui.texteditor.MarkerRulerAction; -import org.eclipse.wst.sse.core.internal.util.StringUtils; -import org.eclipse.wst.sse.ui.extension.ExtendedConfigurationBuilder; -import org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder; -import org.eclipse.wst.sse.ui.extension.IExtendedContributor; -import org.eclipse.wst.sse.ui.extension.IPopupMenuContributor; -import org.eclipse.wst.sse.ui.extensions.ConfigurationPointCalculator; -import org.eclipse.wst.sse.ui.extensions.breakpoint.IExtendedStorageEditorInput; -import org.eclipse.wst.sse.ui.internal.Logger; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; -import org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModel; -import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds; -import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder; - - -/** - * @author nitin - * - * A text editor capable of using the IBreakpointProvider framework. - * - * This class is intended to be used by clients who wish to use the - * IBreakpointProvider framework but not the StructuredTextEditor, e.g. VBS - * source editors. It is provided AS-IS and marked internal as it is - * unsupported and subject to change at any time. - */ -public class DebugTextEditor extends TextEditor { - - private class ShowInTargetLister implements IShowInTargetList { - public String[] getShowInTargetIds() { - return fShowInTargetIds; - } - } - - /** - * DocumentProvider for IStorageEditorInputs - supports - * IExtendedStorageEditorInput notifications and assigning breakpoint - * markers. - */ - class StorageInputDocumentProvider extends StorageDocumentProvider implements IElementStateListener { - protected IAnnotationModel createAnnotationModel(Object element) throws CoreException { - IAnnotationModel model = null; - IStorageEditorInput storageInput = (IStorageEditorInput) element; - String ext = BreakpointRulerAction.getFileExtension(storageInput); - IContentType[] types = getEditorInputContentTypes(storageInput); - IResource res = null; - for (int i = 0; res == null && i < types.length; i++) { - res = BreakpointProviderBuilder.getInstance().getResource(storageInput, types[i].getId(), ext); - } - String id = storageInput.getName(); - if (storageInput.getStorage() != null) - id = storageInput.getStorage().getFullPath().toString(); - if (res != null) - model = new StructuredResourceMarkerAnnotationModel(res, id); - else - model = new StructuredResourceMarkerAnnotationModel(ResourcesPlugin.getWorkspace().getRoot(), id); - - return model; - } - - protected AbstractDocumentProvider.ElementInfo createElementInfo(Object element) throws CoreException { - if (element instanceof IExtendedStorageEditorInput) { - ((IExtendedStorageEditorInput) element).addElementStateListener(this); - } - return super.createElementInfo(element); - } - - protected void disposeElementInfo(Object element, ElementInfo info) { - if (element instanceof IExtendedStorageEditorInput) { - ((IExtendedStorageEditorInput) element).removeElementStateListener(this); - } - super.disposeElementInfo(element, info); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.editors.text.StorageDocumentProvider#doSaveDocument(org.eclipse.core.runtime.IProgressMonitor, - * java.lang.Object, org.eclipse.jface.text.IDocument, boolean) - */ - protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException { - // untested - new FileDocumentProvider().saveDocument(monitor, element, document, overwrite); - } - - public void elementContentAboutToBeReplaced(Object element) { - fireElementContentAboutToBeReplaced(element); - } - - public void elementContentReplaced(Object element) { - fireElementContentReplaced(element); - } - - public void elementDeleted(Object element) { - fireElementDeleted(element); - } - - public void elementDirtyStateChanged(Object element, boolean isDirty) { - fireElementDirtyStateChanged(element, isDirty); - } - - public void elementMoved(Object originalElement, Object movedElement) { - fireElementMoved(originalElement, movedElement); - } - } - - String[] fShowInTargetIds = new String[]{IPageLayout.ID_RES_NAV}; - private IShowInTargetList fShowInTargetListAdapter = new ShowInTargetLister(); - - IDocumentProvider fStorageInputDocumentProvider = null; - - public DebugTextEditor() { - super(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.editors.text.TextEditor#createActions() - */ - protected void createActions() { - super.createActions(); - - // StructuredTextEditor Action - toggle breakpoints - IAction action = new ToggleBreakpointAction(this, getVerticalRuler()) { - protected String getContentType(IDocument document) { - ILocationProvider provider = (ILocationProvider) getEditorInput().getAdapter(ILocationProvider.class); - if (provider != null) { - IPath location = provider.getPath(getEditorInput()); - return detectContentType(location).getId(); - } else if (getEditorInput() instanceof IPathEditorInput) { - IPath location = ((IPathEditorInput) getEditorInput()).getPath(); - return detectContentType(location).getId(); - } - return IContentTypeManager.CT_TEXT; - } - }; - setAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS, action); - // StructuredTextEditor Action - manage breakpoints - action = new ManageBreakpointAction(this, getVerticalRuler()); - setAction(ActionDefinitionIds.MANAGE_BREAKPOINTS, action); - // StructuredTextEditor Action - edit breakpoints - action = new EditBreakpointAction(this, getVerticalRuler()); - setAction(ActionDefinitionIds.EDIT_BREAKPOINTS, action); - } - - /** - * Loads the Show In Target IDs from the Extended Configuration extension - * point. - * - * @return - */ - protected String[] createShowInTargetIds() { - List allIds = new ArrayList(0); - ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance(); - String[] configurationIds = getConfigurationPoints(); - for (int i = 0; i < configurationIds.length; i++) { - String[] definitions = builder.getDefinitions("showintarget", configurationIds[i]); //$NON-NLS-1$ - for (int j = 0; j < definitions.length; j++) { - String someIds = definitions[j]; - if (someIds != null && someIds.length() > 0) { - String[] ids = StringUtils.unpack(someIds); - for (int k = 0; k < ids.length; k++) { - // trim, just to keep things clean - String id = ids[k].trim(); - if (!allIds.contains(id)) { - allIds.add(id); - } - } - } - } - } - - if (!allIds.contains(IPageLayout.ID_RES_NAV)) { - allIds.add(IPageLayout.ID_RES_NAV); - } - return (String[]) allIds.toArray(new String[0]); - } - - IContentType detectContentType(IPath location) { - IContentType type = null; - - IResource resource = FileBuffers.getWorkspaceFileAtLocation(location); - if (resource != null) { - if (resource.getType() == IResource.FILE && resource.isAccessible()) { - IContentDescription d = null; - try { - // Optimized description lookup, might not succeed - d = ((IFile) resource).getContentDescription(); - if (d != null) { - type = d.getContentType(); - } - } catch (CoreException e) { - // Should not be possible given the accessible and file - // type check above - } - if (type == null) { - type = Platform.getContentTypeManager().findContentTypeFor(resource.getName()); - } - } - } else { - File file = FileBuffers.getSystemFileAtLocation(location); - if (file != null) { - InputStream input = null; - try { - input = new FileInputStream(file); - type = Platform.getContentTypeManager().findContentTypeFor(input, location.toOSString()); - } catch (FileNotFoundException e) { - } catch (IOException e) { - } finally { - if (input != null) { - try { - input.close(); - } catch (IOException e1) { - } - } - } - if (type == null) { - type = Platform.getContentTypeManager().findContentTypeFor(file.getName()); - } - } - } - if (type == null) { - type = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT); - } - return type; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.texteditor.AbstractTextEditor#editorContextMenuAboutToShow(org.eclipse.jface.action.IMenuManager) - */ - protected void editorContextMenuAboutToShow(IMenuManager menu) { - super.editorContextMenuAboutToShow(menu); - - IEditorActionBarContributor c = getEditorSite().getActionBarContributor(); - if (c instanceof IPopupMenuContributor) { - ((IPopupMenuContributor) c).contributeToPopupMenu(menu); - } else { - ExtendedEditorActionBuilder builder = new ExtendedEditorActionBuilder(); - IExtendedContributor pmc = builder.readActionExtensions(getConfigurationPoints()); - if (pmc != null) { - pmc.setActiveEditor(this); - pmc.contributeToPopupMenu(menu); - } - } - } - - /** - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) - */ - public Object getAdapter(Class required) { - // Navigate action set menu - if (IShowInTargetList.class.equals(required)) - return fShowInTargetListAdapter; - return super.getAdapter(required); - } - - - protected String[] getConfigurationPoints() { - return ConfigurationPointCalculator.getConfigurationPoints(this, getInputContentType(getEditorInput()), ConfigurationPointCalculator.SOURCE, DebugTextEditor.class); - } - - IContentType[] getEditorInputContentTypes(IEditorInput input) { - IContentType[] types = null; - IResource resource = null; - - if (input.getAdapter(IFile.class) != null) { - resource = (IFile) input.getAdapter(IFile.class); - } else if (input.getAdapter(IFile.class) != null) { - resource = (IResource) input.getAdapter(IResource.class); - } - if (resource.getType() == IResource.FILE && resource.isAccessible()) { - IContentDescription d = null; - try { - // optimized description lookup, might not succeed - d = ((IFile) resource).getContentDescription(); - if (d != null) { - types = new IContentType[]{d.getContentType()}; - } - } catch (CoreException e) { - // should not be possible given the accessible and file type - // check above - } - } - if (types == null) { - types = Platform.getContentTypeManager().findContentTypesFor(input.getName()); - } - return types; - } - - /** - * @param editorInput - * @return - */ - private String getInputContentType(IEditorInput editorInput) { - IContentType[] types = getEditorInputContentTypes(editorInput); - if (types != null) { - return types[0].getId(); - } - return null; - } - - /** - * - * @return - */ - private boolean isDebuggingAvailable() { - boolean debuggingAvailable = false; - IContentType[] types = getEditorInputContentTypes(getEditorInput()); - for (int i = 0; !debuggingAvailable && i < types.length; i++) { - debuggingAvailable = debuggingAvailable || BreakpointProviderBuilder.getInstance().isAvailable(types[i].getId(), BreakpointRulerAction.getFileExtension(getEditorInput())); - } - return debuggingAvailable; - } - - protected void rulerContextMenuAboutToShow(IMenuManager menu) { - if (isDebuggingAvailable()) { - menu.add(getAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS)); - menu.add(getAction(ActionDefinitionIds.MANAGE_BREAKPOINTS)); - menu.add(getAction(ActionDefinitionIds.EDIT_BREAKPOINTS)); - menu.add(new Separator()); - } else { - Logger.log(Logger.INFO, getClass().getName() + " could not enable debugging actions"); //$NON-NLS-1$ - } - super.rulerContextMenuAboutToShow(menu); - } - - /** - * Ensure that the correct IDocumentProvider is used. For IFile and Files, - * the default provider with a specified AnnotationModelFactory is used. - * For StorageEditorInputs, use a custom provider that creates a usable - * ResourceAnnotationModel - * - * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#setDocumentProvider(org.eclipse.ui.IEditorInput) - */ - protected void setDocumentProvider(IEditorInput input) { - if (input instanceof IStorageEditorInput && !(input instanceof IFileEditorInput)) { - if (fStorageInputDocumentProvider == null) { - fStorageInputDocumentProvider = new StorageInputDocumentProvider(); - } - setDocumentProvider(fStorageInputDocumentProvider); - } else { - super.setDocumentProvider(input); - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.texteditor.AbstractTextEditor#updateContentDependentActions() - */ - protected void updateContentDependentActions() { - super.updateContentDependentActions(); - if (isDebuggingAvailable()) { - setAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK, getAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS)); - } - else { - // The Default Text Editor uses editorContribution to perform this - // mapping, but since it relies on the IEditorSite ID, it can't be - // relied on for MultiPageEditorParts. Instead, force the action - // registration manually. - setAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK, new MarkerRulerAction(SSEUIMessages.getResourceBundle(), "Editor.ManageBookmarks.", this, getVerticalRuler(), IMarker.BOOKMARK, true)); //$NON-NLS-1$ - } - fShowInTargetIds = createShowInTargetIds(); - } -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java deleted file mode 100644 index 843666e349..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.jface.text.source.IVerticalRuler; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.dialogs.PropertyDialogAction; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; - -public class EditBreakpointAction extends BreakpointRulerAction { - protected IBreakpoint[] breakpoints = null; - - /** - * @param editor - * @param rulerInfo - */ - public EditBreakpointAction(ITextEditor editor, IVerticalRuler rulerInfo) { - super(editor, rulerInfo); - setText(SSEUIMessages.EditBreakpointAction_0); //$NON-NLS-1$ - } - - public void run() { - PropertyDialogAction action = new PropertyDialogAction(getTextEditor().getEditorSite().getShell(), new ISelectionProvider() { - public void addSelectionChangedListener(ISelectionChangedListener listener) { - // do nothing - } - - public ISelection getSelection() { - return new StructuredSelection(breakpoints); - } - - public void removeSelectionChangedListener(ISelectionChangedListener listener) { - // do nothing - } - - public void setSelection(ISelection selection) { - // do nothing - } - }); - action.run(); - } - - public void update() { - boolean enableThisAction = hasMarkers(); - setEnabled(enableThisAction); - breakpoints = getBreakpoints(getMarkers()); - } -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java deleted file mode 100644 index ddc7ac653f..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.jface.text.source.IVerticalRuler; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.ui.internal.Logger; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; - -/** - * ManageBreakpointAction - Enables and Disables - */ -public class ManageBreakpointAction extends BreakpointRulerAction { - - protected IBreakpoint[] breakpoints = null; - private boolean doEnable = true; - - /** - * @param editor - * @param rulerInfo - */ - public ManageBreakpointAction(ITextEditor editor, IVerticalRuler rulerInfo) { - super(editor, rulerInfo); - setEnabled(true); - } - - /** - * - */ - protected void disableBreakpoints(IBreakpoint[] breakpoints) { - for (int i = 0; i < breakpoints.length; i++) { - try { - breakpoints[i].setEnabled(false); - } catch (CoreException e) { - Logger.logException(e); - } - } - } - - protected void enableBreakpoints(IBreakpoint[] breakpoints) { - for (int i = 0; i < breakpoints.length; i++) { - try { - breakpoints[i].setEnabled(true); - } catch (CoreException e) { - Logger.logException(e); - } - } - } - - public void run() { - if (doEnable) - enableBreakpoints(breakpoints); - else - disableBreakpoints(breakpoints); - } - - public void update() { - // doEnable means "enable" instead of "disable" - doEnable = true; - breakpoints = getBreakpoints(getMarkers()); - for (int i = 0; doEnable && i < breakpoints.length; i++) { - IBreakpoint breakpoint = breakpoints[i]; - try { - if (breakpoint.isEnabled()) { - doEnable = false; - } - } catch (CoreException e) { - Logger.logException("breakpoint not responding to isEnabled: " + breakpoint, e); //$NON-NLS-1$ - } - } - setEnabled(breakpoints != null && breakpoints.length > 0); - if (doEnable) - setText(SSEUIMessages.ManageBreakpointAction_0); //$NON-NLS-1$ - else - setText(SSEUIMessages.ManageBreakpointAction_1); //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java deleted file mode 100644 index ab70ef841b..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.IBreakpointManager; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.jface.dialogs.ErrorDialog; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.source.IVerticalRulerInfo; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.core.IModelManager; -import org.eclipse.wst.sse.core.IStructuredModel; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.util.Debug; -import org.eclipse.wst.sse.ui.extension.IExtendedMarkupEditor; -import org.eclipse.wst.sse.ui.extension.IExtendedSimpleEditor; -import org.eclipse.wst.sse.ui.extensions.breakpoint.IBreakpointProvider; -import org.eclipse.wst.sse.ui.internal.Logger; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; -import org.eclipse.wst.sse.ui.internal.SSEUIPlugin; -import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -/** - * ToggleBreakpointAction - */ -public class ToggleBreakpointAction extends BreakpointRulerAction { - /** - * @param editor - * @param rulerInfo - */ - public ToggleBreakpointAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) { - super(editor, rulerInfo); - setText(SSEUIMessages.ToggleBreakpointAction_0); //$NON-NLS-1$ - } - - protected boolean createBreakpoints(int lineNumber) { - // Note: we'll always allow processing to continue, even - // for a "read only" IStorageEditorInput, for the ActiveScript - // debugger. But this means sometimes the ActiveScript provider - // might get an input from CVS or something that is not related - // to debugging. - - ITextEditor editor = getTextEditor(); - IEditorInput input = editor.getEditorInput(); - IDocument document = editor.getDocumentProvider().getDocument(input); - if (document == null) - return false; - - String contentType = getContentType(document); - IBreakpointProvider[] providers = BreakpointProviderBuilder.getInstance().getBreakpointProviders(editor, contentType, getFileExtension(input)); - - Document doc = null; - Node node = null; - if (editor instanceof IExtendedMarkupEditor) { - doc = ((IExtendedMarkupEditor) editor).getDOMDocument(); - node = ((IExtendedMarkupEditor) editor).getCaretNode(); - } - - int pos = -1; - if (editor instanceof IExtendedSimpleEditor) { - pos = ((IExtendedSimpleEditor) editor).getCaretPosition(); - } - - final int n = providers.length; - List errors = new ArrayList(0); - for (int i = 0; i < n; i++) { - try { - if (Debug.debugBreakpoints) - System.out.println(providers[i].getClass().getName() + " adding breakpoint to line " + lineNumber); //$NON-NLS-1$ - IStatus status = providers[i].addBreakpoint(doc, document, input, node, lineNumber, pos); - if (status != null && !status.isOK()) { - errors.add(status); - } - } catch (CoreException e) { - errors.add(e.getStatus()); - } catch (Exception t) { - Logger.logException("exception while adding breakpoint", t); //$NON-NLS-1$ - } - } - - if (errors.size() > 0) { - Shell shell = editor.getSite().getShell(); - MultiStatus allStatus = new MultiStatus(SSEUIPlugin.ID, IStatus.INFO, (IStatus[]) errors.toArray(new IStatus[0]), SSEUIMessages.ManageBreakpoints_error_adding_message1, null); //$NON-NLS-1$ - // show for conditions more severe than INFO or when no - // breakpoints were created - if (allStatus.getSeverity() > IStatus.INFO || getBreakpoints(getMarkers()).length < 1) { - ErrorDialog.openError(shell, SSEUIMessages.ManageBreakpoints_error_adding_title1, SSEUIMessages.ManageBreakpoints_error_adding_message1, allStatus); //$NON-NLS-1$ //$NON-NLS-2$ - return false; - } - } - return true; - } - - protected String getContentType(IDocument document) { - IModelManager mgr = StructuredModelManager.getModelManager(); - String contentType = null; - IStructuredModel model = null; - try { - model = mgr.getExistingModelForRead(document); - if (model != null) { - contentType = model.getContentTypeIdentifier(); - } - } finally { - if (model != null) { - model.releaseFromRead(); - } - } - return contentType; - } - - protected void removeBreakpoints(int lineNumber) { - IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager(); - IBreakpoint[] breakpoints = getBreakpoints(getMarkers()); - for (int i = 0; i < breakpoints.length; i++) { - try { - breakpoints[i].getMarker().delete(); - breakpointManager.removeBreakpoint(breakpoints[i], true); - } catch (CoreException e) { - Logger.logException(e); - } - } - } - - public void run() { - int lineNumber = fRulerInfo.getLineOfLastMouseButtonActivity() + 1; - boolean doAdd = !hasMarkers(); - if (doAdd) - createBreakpoints(lineNumber); - else - removeBreakpoints(lineNumber); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.texteditor.IUpdate#update() - */ - public void update() { - ITextEditor editor = getTextEditor(); - IEditorInput input = editor.getEditorInput(); - IDocument document = editor.getDocumentProvider().getDocument(input); - if (document != null) { - String contentType = getContentType(document); - setEnabled(BreakpointProviderBuilder.getInstance().isAvailable(contentType, getFileExtension(input))); - } else { - setEnabled(false); - } - } -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java deleted file mode 100644 index cae4d926d0..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java +++ /dev/null @@ -1,187 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.debug; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.IBreakpointManager; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel; -import org.eclipse.ui.texteditor.ITextEditor; - -/** - * @author nsd - */ -public class ToggleBreakpointsTarget implements IToggleBreakpointsTarget { - static final IToggleBreakpointsTarget instance = new ToggleBreakpointsTarget(); - - public static IToggleBreakpointsTarget getInstance() { - return instance; - } - - /** - * - */ - private ToggleBreakpointsTarget() { - super(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart, - * org.eclipse.jface.viewers.ISelection) - */ - public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) { - ITextEditor editor = (ITextEditor) part.getAdapter(ITextEditor.class); - if (selection instanceof ITextSelection) { - ITextSelection textSelection = (ITextSelection) selection; - IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput()); - int lineNumber = -1; - try { - lineNumber = document.getLineOfOffset(textSelection.getOffset()); - } - catch (BadLocationException e) { - } - if (lineNumber >= 0) { - ToggleBreakpointAction toggler = new ToggleBreakpointAction(editor, null); - toggler.update(); - return toggler.isEnabled(); - } - } - return false; - } - - /* - * (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) { - return false; - } - - /* - * (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) { - return false; - } - - private IBreakpoint[] getBreakpoints(IResource resource, IDocument document, AbstractMarkerAnnotationModel model, int lineNumber) { - List markers = new ArrayList(); - if (resource != null && model != null && resource.exists()) { - try { - IMarker[] allMarkers = resource.findMarkers(IBreakpoint.LINE_BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO); - if (allMarkers != null) { - for (int i = 0; i < allMarkers.length; i++) { - Position p = model.getMarkerPosition(allMarkers[i]); - int markerLine = -1; - try { - markerLine = document.getLineOfOffset(p.getOffset()); - } - catch (BadLocationException e1) { - } - if (markerLine == lineNumber) { - markers.add(allMarkers[i]); - } - } - } - } - catch (CoreException x) { - } - } - IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager(); - List breakpoints = new ArrayList(markers.size()); - for (int i = 0; i < markers.size(); i++) { - IBreakpoint breakpoint = manager.getBreakpoint((IMarker) markers.get(i)); - if (breakpoint != null) { - breakpoints.add(breakpoint); - } - } - return (IBreakpoint[]) breakpoints.toArray(new IBreakpoint[0]); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart, - * org.eclipse.jface.viewers.ISelection) - */ - public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException { - ITextEditor editor = (ITextEditor) part.getAdapter(ITextEditor.class); - if (selection instanceof ITextSelection) { - ITextSelection textSelection = (ITextSelection) selection; - IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput()); - int lineNumber = -1; - try { - lineNumber = document.getLineOfOffset(textSelection.getOffset()); - } - catch (BadLocationException e) { - } - if (lineNumber >= 0) { - ToggleBreakpointAction toggler = new ToggleBreakpointAction(editor, null); - toggler.update(); - if (toggler.isEnabled()) { - IResource resource = toggler.getResource(); - AbstractMarkerAnnotationModel model = toggler.getAnnotationModel(); - IBreakpoint[] breakpoints = getBreakpoints(resource, document, model, lineNumber); - if (breakpoints.length > 0) { - IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager(); - for (int i = 0; i < breakpoints.length; i++) { - breakpoints[i].getMarker().delete(); - breakpointManager.removeBreakpoint(breakpoints[i], true); - } - } - else { - toggler.createBreakpoints(lineNumber + 1); - } - } - } - } - } - - /* - * (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 { - } - - /* - * (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 { - } - -} |