diff options
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst')
113 files changed, 0 insertions, 14617 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/properties/JSPedCSSPropertySource.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/properties/JSPedCSSPropertySource.java deleted file mode 100644 index 616c506755..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/properties/JSPedCSSPropertySource.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.css.ui.internal.properties; - -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.ui.internal.properties.CSSPropertySource; - -public class JSPedCSSPropertySource extends CSSPropertySource { - - public JSPedCSSPropertySource(ICSSNode target) { - super(target); - } - - @Override - public void setPropertyValue(Object name, Object value) { - // workaround to avoid DOMException: if value contains jsp element, - // nothing happen. - String v = value.toString(); - if (v.indexOf("${") != -1 || v.indexOf("<%=") != -1) { - IWorkbenchWindow window = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow(); - String title = JSPUIMessages.Title_InvalidValue; - String message = JSPUIMessages.Message_InvalidValue; - MessageDialog.openWarning(window.getShell(), title, message); - return; - } - super.setPropertyValue(name, value); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java deleted file mode 100644 index 9ec8bfda36..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.css.ui.internal.registry; - -import org.eclipse.wst.jsdt.web.css.core.internal.modelhandler.ModelHandlerForJSPedCSS; -import org.eclipse.wst.css.ui.internal.registry.AdapterFactoryProviderCSS; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler; - -public class AdapterFactoryProviderJSPedCSS extends AdapterFactoryProviderCSS { - - @Override - public boolean isFor(IDocumentTypeHandler contentTypeDescription) { - return (contentTypeDescription instanceof ModelHandlerForJSPedCSS); - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java deleted file mode 100644 index 681fb6839a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.css.ui.internal.views.properties; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.wst.jsdt.web.css.ui.internal.properties.JSPedCSSPropertySource; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.progress.UIJob; -import org.eclipse.ui.views.properties.IPropertySheetPage; -import org.eclipse.ui.views.properties.IPropertySource; -import org.eclipse.ui.views.properties.IPropertySourceProvider; -import org.eclipse.ui.views.properties.PropertySheetPage; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration; -import org.eclipse.wst.xml.ui.internal.XMLUIMessages; - -public class JSPedCSSPropertySheetConfiguration extends - PropertySheetConfiguration { - private class CSSPropertySheetRefreshAdapter implements INodeAdapter { - public boolean isAdapterForType(Object type) { - return false; - } - - public void notifyChanged(INodeNotifier notifier, int eventType, - Object changedFeature, Object oldValue, Object newValue, int pos) { - if (fPropertySheetPage != null) { - getPropertiesRefreshJob().addPropertySheetPage( - fPropertySheetPage); - } - } - } - - private class CSSPropertySourceProvider implements IPropertySourceProvider { - private IPropertySource fPropertySource = null; - private ICSSNode fSource = null; - - public IPropertySource getPropertySource(Object object) { - if (fSource != null && object.equals(fSource)) { - return fPropertySource; - } - - if (object instanceof ICSSNode) { - fSource = (ICSSNode) object; - fPropertySource = new JSPedCSSPropertySource(fSource); - } else { - fSource = null; - fPropertySource = null; - } - return fPropertySource; - } - } - - private class PropertiesRefreshJob extends UIJob { - public static final int UPDATE_DELAY = 200; - - private Set propertySheetPages = null; - - public PropertiesRefreshJob() { - super(XMLUIMessages.JFaceNodeAdapter_1); - setSystem(true); - setPriority(Job.SHORT); - propertySheetPages = new HashSet(1); - } - - void addPropertySheetPage(IPropertySheetPage page) { - propertySheetPages.add(page); - schedule(UPDATE_DELAY); - } - - @Override - public IStatus runInUIThread(IProgressMonitor monitor) { - Object[] pages = propertySheetPages.toArray(); - propertySheetPages.clear(); - - for (int i = 0; i < pages.length; i++) { - PropertySheetPage page = (PropertySheetPage) pages[i]; - if (page.getControl() != null - && !page.getControl().isDisposed()) { - page.refresh(); - } - } - - return Status.OK_STATUS; - } - } - - private PropertiesRefreshJob fPropertiesRefreshJob = null; - - IPropertySheetPage fPropertySheetPage; - - private IPropertySourceProvider fPropertySourceProvider = null; - - private INodeAdapter fRefreshAdapter = new CSSPropertySheetRefreshAdapter(); - - private INodeNotifier[] fSelectedNotifiers; - - /** - * Create new instance of CSSPropertySheetConfiguration - */ - public JSPedCSSPropertySheetConfiguration() { - // Must have empty constructor to createExecutableExtension - super(); - } - - @Override - public ISelection getInputSelection(IWorkbenchPart selectingPart, - ISelection selection) { - // remove UI refresh adapters - if (fSelectedNotifiers != null) { - for (int i = 0; i < fSelectedNotifiers.length; i++) { - fSelectedNotifiers[i].removeAdapter(fRefreshAdapter); - } - fSelectedNotifiers = null; - } - - ISelection preferredSelection = super.getInputSelection(selectingPart, - selection); - if (preferredSelection instanceof IStructuredSelection) { - Object[] selectedObjects = new Object[((IStructuredSelection) selection) - .size()]; - System.arraycopy(((IStructuredSelection) selection).toArray(), 0, - selectedObjects, 0, selectedObjects.length); - for (int i = 0; i < selectedObjects.length; i++) { - if (selectedObjects[i] instanceof ICSSNode) { - ICSSNode node = (ICSSNode) selectedObjects[i]; - while (node.getNodeType() == ICSSNode.PRIMITIVEVALUE_NODE - || node.getNodeType() == ICSSNode.STYLEDECLITEM_NODE) { - node = node.getParentNode(); - selectedObjects[i] = node; - } - } - } - - /* - * Add UI refresh adapters and remember notifiers for later removal - */ - if (selectedObjects.length > 0) { - List selectedNotifiers = new ArrayList(1); - for (int i = 0; i < selectedObjects.length; i++) { - if (selectedObjects[i] instanceof INodeNotifier) { - selectedNotifiers.add(selectedObjects[i]); - ((INodeNotifier) selectedObjects[i]) - .addAdapter(fRefreshAdapter); - } - } - fSelectedNotifiers = (INodeNotifier[]) selectedNotifiers - .toArray(new INodeNotifier[selectedNotifiers.size()]); - } - preferredSelection = new StructuredSelection(selectedObjects); - } - return preferredSelection; - } - - PropertiesRefreshJob getPropertiesRefreshJob() { - if (fPropertiesRefreshJob == null) { - fPropertiesRefreshJob = new PropertiesRefreshJob(); - } - return fPropertiesRefreshJob; - } - - @Override - public IPropertySourceProvider getPropertySourceProvider( - IPropertySheetPage page) { - if (fPropertySourceProvider == null) { - fPropertySourceProvider = new CSSPropertySourceProvider(); - fPropertySheetPage = page; - } - return fPropertySourceProvider; - } - - @Override - public void unconfigure() { - super.unconfigure(); - if (fSelectedNotifiers != null) { - for (int i = 0; i < fSelectedNotifiers.length; i++) { - fSelectedNotifiers[i].removeAdapter(fRefreshAdapter); - } - fSelectedNotifiers = null; - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSP.java deleted file mode 100644 index 6cbe48f622..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSP.java +++ /dev/null @@ -1,487 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 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.jsdt.web.ui; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.text.IAutoEditStrategy; -import org.eclipse.jface.text.ITextDoubleClickStrategy; -import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.contentassist.IContentAssistProcessor; -import org.eclipse.jface.text.contentassist.IContentAssistant; -import org.eclipse.jface.text.formatter.IContentFormatter; -import org.eclipse.jface.text.formatter.MultiPassContentFormatter; -import org.eclipse.jface.text.hyperlink.IHyperlinkDetector; -import org.eclipse.jface.text.information.IInformationPresenter; -import org.eclipse.jface.text.information.IInformationProvider; -import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.wst.jsdt.ui.JavaUI; -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.wst.jsdt.ui.text.IJavaPartitions; -import org.eclipse.wst.jsdt.ui.text.JavaSourceViewerConfiguration; -import org.eclipse.wst.jsdt.web.core.internal.text.StructuredTextPartitionerForJSP; -import org.eclipse.wst.jsdt.web.core.text.IJSPPartitions; -import org.eclipse.wst.jsdt.web.ui.internal.autoedit.AutoEditStrategyForTabs; -import org.eclipse.wst.jsdt.web.ui.internal.autoedit.StructuredAutoEditStrategyJSP; -import org.eclipse.wst.jsdt.web.ui.internal.contentassist.JSDTContentAssistant; - -import org.eclipse.wst.jsdt.web.ui.internal.format.FormattingStrategyJSPJava; -import org.eclipse.wst.jsdt.web.ui.internal.hyperlink.JSPJavaHyperlinkDetector; -import org.eclipse.wst.jsdt.web.ui.internal.hyperlink.XMLHyperlinkDetector; -import org.eclipse.wst.jsdt.web.ui.internal.style.java.LineStyleProviderForJava; -import org.eclipse.wst.jsdt.web.ui.internal.taginfo.JSPJavaJavadocHoverProcessor; -import org.eclipse.wst.jsdt.web.ui.internal.taginfo.JSPJavaJavadocInformationProvider; -import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; -import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager; -import org.eclipse.wst.css.core.text.ICSSPartitions; -import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl; -import org.eclipse.wst.html.core.text.IHTMLPartitions; -import org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML; -import org.eclipse.wst.sse.core.text.IStructuredPartitions; -import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration; -import org.eclipse.wst.sse.ui.internal.SSEUIPlugin; -import org.eclipse.wst.sse.ui.internal.format.StructuredFormattingStrategy; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; -import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager; -import org.eclipse.wst.sse.ui.internal.util.EditorUtility; -import org.eclipse.wst.xml.core.text.IXMLPartitions; -import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML; - -/** - * Configuration for a source viewer which shows JSP content. - * <p> - * Clients can subclass and override just those methods which must be specific - * to their needs. - * </p> - * - * @see org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration - * @since 1.0 - */ -public class StructuredTextViewerConfigurationJSP extends - StructuredTextViewerConfiguration { - /* - * One instance per configuration because not sourceviewer-specific and it's - * a String array - */ - private String[] fConfiguredContentTypes; - /* - * One instance per configuration - */ - private LineStyleProvider fLineStyleProviderForJava; - /* - * One instance per configuration - */ - private LineStyleProvider fLineStyleProviderForJSP; - /* - * One instance per configuration - */ - - private StructuredTextViewerConfiguration fHTMLSourceViewerConfiguration; - private JavaSourceViewerConfiguration fJavaSourceViewerConfiguration; - private StructuredTextViewerConfiguration fXMLSourceViewerConfiguration; - - /** - * Create new instance of StructuredTextViewerConfigurationJSP - */ - public StructuredTextViewerConfigurationJSP() { - // Must have empty constructor to createExecutableExtension - super(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getAutoEditStrategies(org.eclipse.jface.text.source.ISourceViewer, - * java.lang.String) - */ - @Override - public IAutoEditStrategy[] getAutoEditStrategies( - ISourceViewer sourceViewer, String contentType) { - IAutoEditStrategy[] strategies = null; - - if (contentType==IJSPPartitions.JSP_CONTENT_JAVA) { - // jsp java autoedit strategies - List allStrategies = new ArrayList(0); - - IAutoEditStrategy[] javaStrategies = getJavaSourceViewerConfiguration() - .getAutoEditStrategies(sourceViewer, - IJavaPartitions.JAVA_PARTITIONING); - for (int i = 0; i < javaStrategies.length; i++) { - allStrategies.add(javaStrategies[i]); - } - // be sure this is added last, after others, so it can modify - // results from earlier steps. - // add auto edit strategy that handles when tab key is pressed - allStrategies.add(new AutoEditStrategyForTabs()); - - strategies = (IAutoEditStrategy[]) allStrategies - .toArray(new IAutoEditStrategy[allStrategies.size()]); - } - return strategies; -// if (contentType == IXMLPartitions.XML_DEFAULT) { -// // xml autoedit strategies -// strategies = getXMLSourceViewerConfiguration() -// .getAutoEditStrategies(sourceViewer, contentType); -// } else if (contentType == IJSPPartitions.JSP_CONTENT_JAVA) { -// // jsp java autoedit strategies -// List allStrategies = new ArrayList(0); -// -// IAutoEditStrategy[] javaStrategies = getJavaSourceViewerConfiguration() -// .getAutoEditStrategies(sourceViewer, -// IJavaPartitions.JAVA_PARTITIONING); -// for (int i = 0; i < javaStrategies.length; i++) { -// allStrategies.add(javaStrategies[i]); -// } -// // be sure this is added last, after others, so it can modify -// // results from earlier steps. -// // add auto edit strategy that handles when tab key is pressed -// allStrategies.add(new AutoEditStrategyForTabs()); -// -// strategies = (IAutoEditStrategy[]) allStrategies -// .toArray(new IAutoEditStrategy[allStrategies.size()]); -// } else if (contentType == IHTMLPartitions.HTML_DEFAULT -// || contentType == IHTMLPartitions.HTML_DECLARATION) { -// // html and jsp autoedit strategies -// List allStrategies = new ArrayList(0); -// -// // add the jsp autoedit strategy first then add all html's -// allStrategies.add(new StructuredAutoEditStrategyJSP()); -// -// IAutoEditStrategy[] htmlStrategies = getHTMLSourceViewerConfiguration() -// .getAutoEditStrategies(sourceViewer, contentType); -// for (int i = 0; i < htmlStrategies.length; i++) { -// allStrategies.add(htmlStrategies[i]); -// } -// -// strategies = (IAutoEditStrategy[]) allStrategies -// .toArray(new IAutoEditStrategy[allStrategies.size()]); -// } else { -// // default autoedit strategies -// List allStrategies = new ArrayList(0); -// -// IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies( -// sourceViewer, contentType); -// for (int i = 0; i < superStrategies.length; i++) { -// allStrategies.add(superStrategies[i]); -// } -// -// // be sure this is added last, after others, so it can modify -// // results from earlier steps. -// // add auto edit strategy that handles when tab key is pressed -// allStrategies.add(new AutoEditStrategyForTabs()); -// -// strategies = (IAutoEditStrategy[]) allStrategies -// .toArray(new IAutoEditStrategy[allStrategies.size()]); -// } -// -// return strategies; - } - - @Override - public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { - if (fConfiguredContentTypes == null) { - /* - * A little bit of cheating because assuming html's configured - * content types will add default, unknown, and all xml configured - * content types - */ -// String[] htmlTypes = getHTMLSourceViewerConfiguration() -// .getConfiguredContentTypes(sourceViewer); -// String[] jspTypes = StructuredTextPartitionerForJSP -// .getConfiguredContentTypes(); -// fConfiguredContentTypes = new String[htmlTypes.length -// + jspTypes.length]; -// -// int index = 0; -// System.arraycopy(htmlTypes, 0, fConfiguredContentTypes, index, -// htmlTypes.length); -// System.arraycopy(jspTypes, 0, fConfiguredContentTypes, -// index += htmlTypes.length, jspTypes.length); - } - return new String[] {IJSPPartitions.JSP_CONTENT_JAVA}; - //return fConfiguredContentTypes; - } - - @Override - protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) { - IContentAssistProcessor[] processors = null; - - - - - if ( partitionType == IJSPPartitions.JSP_CONTENT_JAVA ){ - //processors = new IContentAssistProcessor[] { new JSPJavaContentAssistProcessor() }; - //processors = new IContentAssistProcessor[] { new JSPContentAssistProcessor()}; - processors = new IContentAssistProcessor[] { new JSDTContentAssistant() }; - } - -// if ((partitionType == IXMLPartitions.XML_CDATA) -// || (partitionType == IJSPPartitions.JSP_CONTENT_JAVA)) { -// -// -// processors = new IContentAssistProcessor[] { new JSPJavaContentAssistProcessor() }; -// -// } else if (partitionType == ICSSPartitions.STYLE) { -// // HTML CSS -// IContentAssistant htmlContentAssistant = getHTMLSourceViewerConfiguration() -// .getContentAssistant(sourceViewer); -// IContentAssistProcessor processor = htmlContentAssistant -// .getContentAssistProcessor(ICSSPartitions.STYLE); -// processors = new IContentAssistProcessor[] { processor }; -// } else if ((partitionType == IXMLPartitions.XML_DEFAULT) -// || (partitionType == IHTMLPartitions.HTML_DEFAULT) -// || (partitionType == IHTMLPartitions.HTML_COMMENT)) { -// // jsp -// processors = new IContentAssistProcessor[] { new JSPContentAssistProcessor() }; -// } -// -// else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) { -// // unknown -// processors = new IContentAssistProcessor[] { new NoRegionContentAssistProcessorForJSP() }; -// } -// - return processors; - } - - @Override - public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) { - MultiPassContentFormatter formatter = new MultiPassContentFormatter( - getConfiguredDocumentPartitioning(sourceViewer), - IXMLPartitions.XML_DEFAULT); -// -// formatter.setMasterStrategy(new StructuredFormattingStrategy( -// new HTMLFormatProcessorImpl())); - formatter.setSlaveStrategy(new FormattingStrategyJSPJava(), - IJSPPartitions.JSP_CONTENT_JAVA); - - return formatter; - } - - @Override - public ITextDoubleClickStrategy getDoubleClickStrategy( - ISourceViewer sourceViewer, String contentType) { - ITextDoubleClickStrategy strategy = null; - - if (contentType ==IJSPPartitions.JSP_CONTENT_JAVA) { - // JSP Java or JSP JavaScript - strategy = getJavaSourceViewerConfiguration() - .getDoubleClickStrategy(sourceViewer, contentType); - } - // html or javascript -// if (contentType == IHTMLPartitions.HTML_DEFAULT) { -// strategy = getHTMLSourceViewerConfiguration() -// .getDoubleClickStrategy(sourceViewer, contentType); -// } else if (contentType == IJSPPartitions.JSP_CONTENT_JAVA) { -// // JSP Java or JSP JavaScript -// strategy = getJavaSourceViewerConfiguration() -// .getDoubleClickStrategy(sourceViewer, contentType); -// } else { -// strategy = super.getDoubleClickStrategy(sourceViewer, contentType); -// } - - return strategy; - } - -// private StructuredTextViewerConfiguration getHTMLSourceViewerConfiguration() { -// if (fHTMLSourceViewerConfiguration == null) { -// fHTMLSourceViewerConfiguration = new StructuredTextViewerConfigurationHTML(); -// } -// return fHTMLSourceViewerConfiguration; -// } - - @Override - public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) { - - if (fPreferenceStore == null) { - return null; - } - if (sourceViewer == null - || !fPreferenceStore - .getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED)) { - return null; - } - - List allDetectors = new ArrayList(0); - allDetectors.add(new JSPJavaHyperlinkDetector()); - // allDetectors.add(new TaglibHyperlinkDetector()); -// allDetectors.add(new XMLHyperlinkDetector()); -// -// IHyperlinkDetector[] superDetectors = super -// .getHyperlinkDetectors(sourceViewer); -// for (int m = 0; m < superDetectors.length; m++) { -// IHyperlinkDetector detector = superDetectors[m]; -// if (!allDetectors.contains(detector)) { -// allDetectors.add(detector); -// } -// } - return (IHyperlinkDetector[]) allDetectors - .toArray(new IHyperlinkDetector[0]); - } - - @Override - public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) { - String[] indentations = null; - -// if (contentType == IXMLPartitions.XML_DEFAULT) { -// indentations = getXMLSourceViewerConfiguration().getIndentPrefixes( -// sourceViewer, contentType); -// } else { -// indentations = getHTMLSourceViewerConfiguration() -// .getIndentPrefixes(sourceViewer, contentType); -// } - - return indentations; - } - - @Override - protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) { - IInformationProvider provider = null; -// if (partitionType == IHTMLPartitions.HTML_DEFAULT) { -// // HTML -// IInformationPresenter htmlPresenter = getHTMLSourceViewerConfiguration() -// .getInformationPresenter(sourceViewer); -// provider = htmlPresenter -// .getInformationProvider(IHTMLPartitions.HTML_DEFAULT); -// } -// -// else if (partitionType == IXMLPartitions.XML_DEFAULT) { -// // XML -// IInformationPresenter xmlPresenter = getXMLSourceViewerConfiguration() -// .getInformationPresenter(sourceViewer); -// provider = xmlPresenter -// .getInformationProvider(IXMLPartitions.XML_DEFAULT); -// } -// -// else - if (partitionType==IJSPPartitions.JSP_CONTENT_JAVA){ - // JSP java - provider = new JSPJavaJavadocInformationProvider(); - } - return provider; - } - - private JavaSourceViewerConfiguration getJavaSourceViewerConfiguration() { - if (fJavaSourceViewerConfiguration == null) { - IPreferenceStore store = PreferenceConstants.getPreferenceStore(); - /* - * NOTE: null text editor is being passed to - * JavaSourceViewerConfiguration because - * StructuredTextViewerConfiguration does not know current editor. - * this is okay because editor is not needed in the cases we are - * using javasourceviewerconfiguration. - */ - fJavaSourceViewerConfiguration = new JavaSourceViewerConfiguration( - JavaUI.getColorManager(), store, null, - IJavaPartitions.JAVA_PARTITIONING); - } - return fJavaSourceViewerConfiguration; - } - - @Override - public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) { - - LineStyleProvider[] providers = null; - -// if (partitionType == IHTMLPartitions.HTML_DEFAULT -// || partitionType == IHTMLPartitions.HTML_COMMENT -// || partitionType == IHTMLPartitions.HTML_DECLARATION) { -// providers = getHTMLSourceViewerConfiguration() -// .getLineStyleProviders(sourceViewer, -// IHTMLPartitions.HTML_DEFAULT); -// } -// -// else if (partitionType == ICSSPartitions.STYLE) { -// providers = getHTMLSourceViewerConfiguration() -// .getLineStyleProviders(sourceViewer, ICSSPartitions.STYLE); -// } else if (partitionType == IXMLPartitions.XML_DEFAULT -// || partitionType == IXMLPartitions.XML_CDATA -// || partitionType == IXMLPartitions.XML_COMMENT -// || partitionType == IXMLPartitions.XML_DECLARATION -// || partitionType == IXMLPartitions.XML_PI) { -// providers = getXMLSourceViewerConfiguration() -// .getLineStyleProviders(sourceViewer, -// IXMLPartitions.XML_DEFAULT); -// } else - if (partitionType == IJSPPartitions.JSP_CONTENT_JAVA) { - providers = new LineStyleProvider[] { getLineStyleProviderForJava() }; - } - - return providers; - } - - private LineStyleProvider getLineStyleProviderForJava() { - if (fLineStyleProviderForJava == null) { - fLineStyleProviderForJava = new LineStyleProviderForJava(); - } - return fLineStyleProviderForJava; - } - - @Override - public ITextHover getTextHover(ISourceViewer sourceViewer, - String contentType, int stateMask) { - ITextHover hover = null; - -// if (contentType == IHTMLPartitions.HTML_DEFAULT) { -// // html and javascript regions -// hover = getHTMLSourceViewerConfiguration().getTextHover( -// sourceViewer, contentType, stateMask); -// } else if (contentType == IXMLPartitions.XML_DEFAULT) { -// // xml regions -// hover = getXMLSourceViewerConfiguration().getTextHover( -// sourceViewer, contentType, stateMask); -// } else - if (contentType==IJSPPartitions.JSP_CONTENT_JAVA) { - TextHoverManager manager = SSEUIPlugin.getDefault() - .getTextHoverManager(); - TextHoverManager.TextHoverDescriptor[] hoverDescs = manager - .getTextHovers(); - int i = 0; - while (i < hoverDescs.length && hover == null) { - if (hoverDescs[i].isEnabled() - && EditorUtility.computeStateMask(hoverDescs[i] - .getModifierString()) == stateMask) { - String hoverType = hoverDescs[i].getId(); - if (TextHoverManager.COMBINATION_HOVER - .equalsIgnoreCase(hoverType)) { - - hover = manager - .createBestMatchHover(new JSPJavaJavadocHoverProcessor()); - - } else if (TextHoverManager.DOCUMENTATION_HOVER - .equalsIgnoreCase(hoverType)) { - - hover = new JSPJavaJavadocHoverProcessor(); - - } - } - i++; - } - } - - // no appropriate text hovers found, try super - if (hover == null) { - hover = super.getTextHover(sourceViewer, contentType, stateMask); - } - return hover; - - } - - - private StructuredTextViewerConfiguration getXMLSourceViewerConfiguration() { - if (fXMLSourceViewerConfiguration == null) { - fXMLSourceViewerConfiguration = new StructuredTextViewerConfigurationXML(); - } - return fXMLSourceViewerConfiguration; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionConstantsJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionConstantsJSP.java deleted file mode 100644 index 6ae25fbace..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionConstantsJSP.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal; - -/** - * @author pavery - */ -public interface IActionConstantsJSP { - public final static String ACTION_NAME_RENAME_ELEMENT = "RenameElement"; //$NON-NLS-1$ - public final static String ACTION_NAME_MOVE_ELEMENT = "MoveElement"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionDefinitionIdsJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionDefinitionIdsJSP.java deleted file mode 100644 index f36c450085..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/IActionDefinitionIdsJSP.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal; - -import org.eclipse.wst.jsdt.ui.actions.IJavaEditorActionDefinitionIds; - -/** - * @author pavery - */ -public interface IActionDefinitionIdsJSP { - public final static String RENAME_ELEMENT = IJavaEditorActionDefinitionIds.RENAME_ELEMENT; - public final static String MOVE_ELEMENT = IJavaEditorActionDefinitionIds.MOVE_ELEMENT; -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIMessages.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIMessages.java deleted file mode 100644 index 4ba81e964a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIMessages.java +++ /dev/null @@ -1,107 +0,0 @@ -/********************************************************************** - * Copyright (c) 2005 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 - Initial API and implementation - **********************************************************************/ -package org.eclipse.wst.jsdt.web.ui.internal; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -import org.eclipse.osgi.util.NLS; - -/** - * Strings used by JSP UI - * - * @plannedfor 1.0 - */ -public class JSPUIMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.wst.jsdt.web.ui.internal.JSPUIPluginResources";//$NON-NLS-1$ - private static ResourceBundle fResourceBundle; - - static { - // load message values from bundle file - NLS.initializeMessages(BUNDLE_NAME, JSPUIMessages.class); - } - - public static ResourceBundle getResourceBundle() { - try { - if (fResourceBundle == null) { - fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME); - } - } catch (MissingResourceException x) { - fResourceBundle = null; - } - return fResourceBundle; - } - - public static String Sample_JSP_doc; - public static String JSP_Delimiters_UI_; - public static String Refactor_label; - public static String RenameElement_label; // resource bundle - public static String MoveElement_label; // resource bundle - public static String MoveElementWizard; - public static String OK; - public static String JSP_changes; - public static String ActionContributorJSP_0; - public static String JSPRenameElementAction_0; - public static String JSPMoveElementAction_0; - public static String BasicRefactorSearchRequestor_0; - public static String BasicRefactorSearchRequestor_1; - public static String BasicRefactorSearchRequestor_2; - public static String BasicRefactorSearchRequestor_3; - public static String BasicRefactorSearchRequestor_4; - public static String BasicRefactorSearchRequestor_5; - public static String BasicRefactorSearchRequestor_6; - public static String _UI_WIZARD_NEW_TITLE; - public static String _UI_WIZARD_NEW_HEADING; - public static String _UI_WIZARD_NEW_DESCRIPTION; - public static String _ERROR_FILENAME_MUST_END_JSP; - public static String _WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT; - public static String _WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT; - public static String ResourceGroup_nameExists; - public static String NewJSPTemplatesWizardPage_0; - public static String NewJSPTemplatesWizardPage_1; - public static String NewJSPTemplatesWizardPage_2; - public static String NewJSPTemplatesWizardPage_3; - public static String NewJSPTemplatesWizardPage_4; - public static String NewJSPTemplatesWizardPage_5; - public static String NewJSPTemplatesWizardPage_6; - public static String ToggleComment_label; // resource bundle - public static String ToggleComment_tooltip; // resource bundle - public static String ToggleComment_description; // resource bundle - public static String AddBlockComment_label; // resource bundle - public static String AddBlockComment_tooltip; // resource bundle - public static String AddBlockComment_description; // resource bundle - public static String RemoveBlockComment_label; // resource bundle - public static String RemoveBlockComment_tooltip; // resource bundle - public static String RemoveBlockComment_description; // resource bundle - public static String CleanupDocument_label; // resource bundle - public static String CleanupDocument_tooltip; // resource bundle - public static String CleanupDocument_description; // resource bundle - public static String FindOccurrences_label; // resource bundle - public static String OccurrencesSearchQuery_0; - public static String OccurrencesSearchQuery_2; - public static String Override_method_in; - public static String Creating_files_encoding; - public static String Content_Assist_not_availab_UI_; - public static String Java_Content_Assist_is_not_UI_; - public static String JSPSourcePreferencePage_0; - public static String JSPSourcePreferencePage_1; - public static String JSPSourcePreferencePage_2; - public static String JSPColorPage_jsp_content; - public static String JSPFilesPreferencePage_0; - public static String JSPFilesPreferencePage_1; - public static String JSPFContentSettingsPropertyPage_0; - public static String JSPFContentSettingsPropertyPage_1; - public static String JSPFContentSettingsPropertyPage_2; - public static String JSPFContentSettingsPropertyPage_3; - public static String JSPFContentSettingsPropertyPage_4; - public static String ProjectJSPFContentSettingsPropertyPage_0; - public static String Title_InvalidValue; - public static String Message_InvalidValue; -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPlugin.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPlugin.java deleted file mode 100644 index 3e44c37d9a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPlugin.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal; - -import java.io.IOException; - -import org.eclipse.jface.text.templates.ContextTypeRegistry; -import org.eclipse.jface.text.templates.persistence.TemplateStore; -import org.eclipse.wst.jsdt.internal.corext.template.java.CodeTemplateContextType; -import org.eclipse.wst.jsdt.internal.ui.JavaPlugin; -import org.eclipse.wst.jsdt.ui.text.JavaSourceViewerConfiguration; -import org.eclipse.wst.jsdt.web.ui.internal.preferences.JSPUIPreferenceNames; -import org.eclipse.wst.jsdt.web.ui.internal.templates.TemplateContextTypeIdsJSP; -import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry; -import org.eclipse.ui.editors.text.templates.ContributionTemplateStore; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry; -import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl; - -/** - * The main plugin class to be used in the desktop. - */ -public class JSPUIPlugin extends AbstractUIPlugin { - public final static String ID = "org.eclipse.wst.jsdt.web.ui"; //$NON-NLS-1$ - - protected static JSPUIPlugin instance = null; - - /** - * The template store for the jsp editor. - */ - private TemplateStore fTemplateStore; - - /** - * The template context type registry for the jsp editor. - */ - private ContextTypeRegistry fContextTypeRegistry; - - public JSPUIPlugin() { - super(); - instance = this; - } - - public static JSPUIPlugin getDefault() { - return instance; - } - - public synchronized static JSPUIPlugin getInstance() { - return instance; - } - - public AdapterFactoryRegistry getAdapterFactoryRegistry() { - return AdapterFactoryRegistryImpl.getInstance(); - - } - - /** - * Returns the template store for the jsp editor templates. - * - * @return the template store for the jsp editor templates - */ - public TemplateStore getTemplateStore() { - if (fTemplateStore == null) { -// fTemplateStore = new ContributionTemplateStore( -// getTemplateContextRegistry(), getPreferenceStore(), -// JSPUIPreferenceNames.TEMPLATES_KEY); - JavaPlugin jp = JavaPlugin.getDefault(); - fTemplateStore = jp.getTemplateStore(); - - try { - fTemplateStore.load(); - } catch (IOException e) { - Logger.logException(e); - } - } - return fTemplateStore; - } - - /** - * Returns the template context type registry for the jsp plugin. - * - * @return the template context type registry for the jsp plugin - */ - public ContextTypeRegistry getTemplateContextRegistry() { - if (fContextTypeRegistry == null) { -// ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry(); -// registry.addContextType(TemplateContextTypeIdsJSP.ALL); -// registry.addContextType(TemplateContextTypeIdsJSP.NEW); -// registry.addContextType(TemplateContextTypeIdsJSP.TAG); -// registry.addContextType(TemplateContextTypeIdsJSP.ATTRIBUTE); -// registry.addContextType(TemplateContextTypeIdsJSP.ATTRIBUTE_VALUE); - - fContextTypeRegistry = JavaPlugin.getDefault().getCodeTemplateContextRegistry(); - } - - return fContextTypeRegistry; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPluginResources.properties b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPluginResources.properties deleted file mode 100644 index 85cfe32715..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/JSPUIPluginResources.properties +++ /dev/null @@ -1,87 +0,0 @@ -############################################################################### -# Copyright (c) 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 -############################################################################### -## The following line is a sample JSP document. Please translate only the following parts: -## Use below tags ONLY for JSP 1.1 -## Welcome! -## Use below tags ONLY for JSP 1.2 -## Welcome! -Sample_JSP_doc=<%@ page \n\tlanguage=\"java\" \n\tcontentType=\"text/html; charset=ISO-8859-1\"\n%>\n<jsp:include flush=\"true\" page=\"titleBar.jsp\"/>\n\n<%-- Use below tags ONLY for JSP 1.1 --%>\n<%\n\tSystem.out.println(\"Welcome!\");\n%>\n<%-- Use below tags ONLY for JSP 1.2 --%>\n<jsp:scriptlet>\n\tSystem.out.println(\"Welcome!\");\n</jsp:scriptlet> -JSP_Delimiters_UI_=JSP Delimiters -Refactor_label=Refactor -RenameElement_label=Rename -MoveElement_label=Move -MoveElementWizard=Move the selected elements -# -OK=OK -JSP_changes=JSP changes -ActionContributorJSP_0=Refa&ctor -JSPRenameElementAction_0=Editor selection does not resolve to a renamable Java element -JSPMoveElementAction_0=Editor selection does not resolve to movable Java elements -BasicRefactorSearchRequestor_0=JSP Rename -BasicRefactorSearchRequestor_1=in file: {0} line: {1} -BasicRefactorSearchRequestor_2=Move Type ''{0}'' to package ''{1}'' -BasicRefactorSearchRequestor_3=Rename Method ''{0}'' to ''{1}'' -BasicRefactorSearchRequestor_4=Rename Type ''{0}'' to ''{1}'' -BasicRefactorSearchRequestor_5=Rename Package ''{0}'' to ''{1}'' -BasicRefactorSearchRequestor_6=JSP Rename Change -# -_UI_WIZARD_NEW_TITLE = New JavaServer Page -_UI_WIZARD_NEW_HEADING = JavaServer Page -_UI_WIZARD_NEW_DESCRIPTION = Create a new JavaServer Page. -_ERROR_FILENAME_MUST_END_JSP = The file name must end in one of the following extensions {0}. -_WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT = JavaServer Pages created in projects that do not support Java might not work as expected. -_WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT = Files created outside of the Web Content folder will not be included in your deployed Web application. -ResourceGroup_nameExists = The same name already exists. -NewJSPTemplatesWizardPage_0=Select JSP Template -NewJSPTemplatesWizardPage_1=Select a template as initial content in the JSP page. -NewJSPTemplatesWizardPage_2=Name -NewJSPTemplatesWizardPage_3=Description -NewJSPTemplatesWizardPage_4=Use JSP Template -NewJSPTemplatesWizardPage_5=Preview -NewJSPTemplatesWizardPage_6=Templates are 'New JSP' templates found in the <a>JSP Templates</a> preference page. -# Copied from sse.ui -CleanupDocument_label=Cleanup Document... -CleanupDocument_tooltip=Cleanup Document -CleanupDocument_description=Cleanup Document -ToggleComment_label=Toggle Comment -ToggleComment_tooltip=Toggle Comment -ToggleComment_description=Toggle Comment -AddBlockComment_label=Add Block Comment -AddBlockComment_tooltip=Add Block Comment -AddBlockComment_description=Add Block Comment -RemoveBlockComment_label=Remove Block Comment -RemoveBlockComment_tooltip=Remove Block Comment -RemoveBlockComment_description=Remove Block Comment -FindOccurrences_label=Occurrences in File -OccurrencesSearchQuery_0={0} - {1} Occurrences in {2} -OccurrencesSearchQuery_2=file -Content_Assist_not_availab_UI_=Content Assist not available at the current location -Java_Content_Assist_is_not_UI_=Java Content Assist is not available for the current cursor location -# -Override_method_in=Override method in ' -Creating_files_encoding=Creating files encoding preference -# -JSPSourcePreferencePage_0=JSP Source preferences are based on the content within the JSP. -JSPSourcePreferencePage_1=See <a>''{0}''</a> for JSP with HTML content. -JSPSourcePreferencePage_2=See <a>''{0}''</a> for JSP with XML content. -JSPColorPage_jsp_content=JSP Content -JSPFilesPreferencePage_0=Validating files -JSPFilesPreferencePage_1=Validate JSP fragments -# JSP Fragments -JSPFContentSettingsPropertyPage_0=none -JSPFContentSettingsPropertyPage_1=The properties used instead of the page directive that cannot be specified in JSP fragment files. The project setting is used if you specify "none." -JSPFContentSettingsPropertyPage_2=Language: -JSPFContentSettingsPropertyPage_3=Content Type: -JSPFContentSettingsPropertyPage_4=Enable specific setting: -ProjectJSPFContentSettingsPropertyPage_0=The properties for J2EE Web projects act as "project" default to be looked up when no properties are specified for a particular JSP fragment file. -# CSS JSP -Title_InvalidValue=Invalid Value -Message_InvalidValue=Invalid property value. diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/Logger.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/Logger.java deleted file mode 100644 index 417ede84df..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/Logger.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal; - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.osgi.framework.Bundle; - -/** - * Small convenience class to log messages to plugin's log file and also, if - * desired, the console. This class should only be used by classes in this - * plugin. Other plugins should make their own copy, with appropriate ID. - */ -public class Logger { - private static final String PLUGIN_ID = "org.eclipse.wst.jsdt.web.ui"; //$NON-NLS-1$ - - private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$ - - public static final int OK = IStatus.OK; // 0 - public static final int INFO = IStatus.INFO; // 1 - public static final int WARNING = IStatus.WARNING; // 2 - public static final int ERROR = IStatus.ERROR; // 4 - - public static final int OK_DEBUG = 200 + OK; - public static final int INFO_DEBUG = 200 + INFO; - public static final int WARNING_DEBUG = 200 + WARNING; - public static final int ERROR_DEBUG = 200 + ERROR; - - /** - * Adds message to log. - * - * @param level - * severity level of the message (OK, INFO, WARNING, ERROR, - * OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG) - * @param message - * text to add to the log - * @param exception - * exception thrown - */ - protected static void _log(int level, String message, Throwable exception) { - if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG - || level == ERROR_DEBUG) { - if (!isDebugging()) { - return; - } - } - - int severity = IStatus.OK; - switch (level) { - case INFO_DEBUG: - case INFO: - severity = IStatus.INFO; - break; - case WARNING_DEBUG: - case WARNING: - severity = IStatus.WARNING; - break; - case ERROR_DEBUG: - case ERROR: - severity = IStatus.ERROR; - } - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(severity, PLUGIN_ID, severity, message, - exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) { - Platform.getLog(bundle).log(statusObj); - } - } - - /** - * Prints message to log if category matches /debug/tracefilter option. - * - * @param message - * text to print - * @param category - * category of the message, to be compared with - * /debug/tracefilter - */ - protected static void _trace(String category, String message, - Throwable exception) { - if (isTracing(category)) { - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, - message, exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) { - Platform.getLog(bundle).log(statusObj); - } - } - } - - /** - * @return true if the platform is debugging - */ - public static boolean isDebugging() { - return Platform.inDebugMode(); - } - - /** - * Determines if currently tracing a category - * - * @param category - * @return true if tracing category, false otherwise - */ - public static boolean isTracing(String category) { - if (!isDebugging()) { - return false; - } - - String traceFilter = Platform.getDebugOption(PLUGIN_ID - + TRACEFILTER_LOCATION); - if (traceFilter != null) { - StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) { - String cat = tokenizer.nextToken().trim(); - if (category.equals(cat)) { - return true; - } - } - } - return false; - } - - public static void log(int level, String message) { - _log(level, message, null); - } - - public static void log(int level, String message, Throwable exception) { - _log(level, message, exception); - } - - public static void logException(String message, Throwable exception) { - _log(ERROR, message, exception); - } - - public static void logException(Throwable exception) { - _log(ERROR, exception.getMessage(), exception); - } - - public static void traceException(String category, String message, - Throwable exception) { - _trace(category, message, exception); - } - - public static void traceException(String category, Throwable exception) { - _trace(category, exception.getMessage(), exception); - } - - public static void trace(String category, String message) { - _trace(category, message, null); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/AutoEditStrategyForTabs.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/AutoEditStrategyForTabs.java deleted file mode 100644 index 4cbf1b0e1a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/AutoEditStrategyForTabs.java +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.autoedit; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.ConfigurableLineTracker; -import org.eclipse.jface.text.DocumentCommand; -import org.eclipse.jface.text.IAutoEditStrategy; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ILineTracker; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.TextUtilities; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.ui.texteditor.ITextEditorExtension3; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; - -/** - * AutoEditStrategy to handle characters inserted when Tab key is pressed - */ -public class AutoEditStrategyForTabs implements IAutoEditStrategy { - private final String TAB_CHARACTER = "\t"; //$NON-NLS-1$ - - public void customizeDocumentCommand(IDocument document, - DocumentCommand command) { - // if not in smart insert mode just ignore - if (!isSmartInsertMode()) { - return; - } - - // spaces for tab character - if (command.length == 0 && command.text != null - && command.text.length() > 0 - && command.text.indexOf(TAB_CHARACTER) != -1) { - smartInsertForTab(command, document); - } - } - - /** - * Insert spaces for tabs - * - * @param command - */ - private void smartInsertForTab(DocumentCommand command, IDocument document) { - // tab key was pressed. now check preferences to see if need to insert - // spaces instead of tab - int indentationWidth = getIndentationWidth(); - if (indentationWidth > -1) { - String originalText = command.text; - StringBuffer newText = new StringBuffer(originalText); - - // determine where in line this command begins - int lineOffset = -1; - try { - IRegion lineInfo = document - .getLineInformationOfOffset(command.offset); - lineOffset = command.offset - lineInfo.getOffset(); - } catch (BadLocationException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - - ILineTracker lineTracker = getLineTracker(document, originalText); - - int startIndex = 0; - int index = newText.indexOf(TAB_CHARACTER); - while (index != -1) { - String indent = getIndentString(indentationWidth, lineOffset, - lineTracker, index); - - // replace \t character with spaces - newText.replace(index, index + 1, indent); - if (lineTracker != null) { - try { - lineTracker.replace(index, 1, indent); - } catch (BadLocationException e) { - // if something goes wrong with replacing text, just - // reset to current string - lineTracker.set(newText.toString()); - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - - startIndex = index + indent.length(); - index = newText.indexOf(TAB_CHARACTER, startIndex); - } - command.text = newText.toString(); - } - } - - /** - * Calculate number of spaces for next tab stop - */ - private String getIndentString(int indentationWidth, int lineOffset, - ILineTracker lineTracker, int index) { - int indentSize = indentationWidth; - int offsetInLine = -1; - if (lineTracker != null) { - try { - IRegion lineInfo = lineTracker - .getLineInformationOfOffset(index); - if (lineInfo.getOffset() == 0 && lineOffset > -1) { - offsetInLine = lineOffset + index; - } else { - offsetInLine = index - lineInfo.getOffset(); - } - } catch (BadLocationException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } else { - if (lineOffset > -1) { - offsetInLine = lineOffset + index; - } - } - if (offsetInLine > -1 && indentationWidth > 0) { - int remainder = offsetInLine % indentationWidth; - indentSize = indentationWidth - remainder; - } - - StringBuffer indent = new StringBuffer(); - for (int i = 0; i < indentSize; i++) { - indent.append(' '); - } - return indent.toString(); - } - - /** - * Set up a line tracker for text within command if text is multi-line - */ - private ILineTracker getLineTracker(IDocument document, String originalText) { - ConfigurableLineTracker lineTracker = null; - int[] delims = TextUtilities.indexOf(document.getLegalLineDelimiters(), - originalText, 0); - if (delims[0] != -1 || delims[1] != -1) { - lineTracker = new ConfigurableLineTracker(document - .getLegalLineDelimiters()); - lineTracker.set(originalText); - } - return lineTracker; - } - - /** - * Return true if active editor is in smart insert mode, false otherwise - * - * @return - */ - private boolean isSmartInsertMode() { - boolean isSmartInsertMode = false; - - ITextEditor textEditor = null; - IWorkbenchWindow window = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow(); - if (window != null) { - IWorkbenchPage page = window.getActivePage(); - if (page != null) { - IEditorPart editor = page.getActiveEditor(); - if (editor != null) { - if (editor instanceof ITextEditor) { - textEditor = (ITextEditor) editor; - } else { - textEditor = (ITextEditor) editor - .getAdapter(ITextEditor.class); - } - } - } - } - - // check if smart insert mode - if (textEditor instanceof ITextEditorExtension3 - && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT) { - isSmartInsertMode = true; - } - return isSmartInsertMode; - } - - /** - * Returns indentation width if using spaces for indentation, -1 otherwise - * - * @return - */ - private int getIndentationWidth() { - int width = -1; - - Preferences preferences = HTMLCorePlugin.getDefault() - .getPluginPreferences(); - if (HTMLCorePreferenceNames.SPACE.equals(preferences - .getString(HTMLCorePreferenceNames.INDENTATION_CHAR))) { - width = preferences - .getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); - } - - return width; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java deleted file mode 100644 index b34f8e99a5..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.autoedit; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.DocumentCommand; -import org.eclipse.jface.text.IAutoEditStrategy; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.ui.texteditor.ITextEditorExtension3; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; - -public class StructuredAutoEditStrategyJSP implements IAutoEditStrategy { - public void customizeDocumentCommand(IDocument document, - DocumentCommand command) { - Object textEditor = getActiveTextEditor(); - if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor) - .getInsertMode() == ITextEditorExtension3.SMART_INSERT)) { - return; - } - - IStructuredModel model = null; - try { - model = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - - if (model != null) { - if (command.text != null) { - if (command.text.equals("%")) { //$NON-NLS-1$ - // scriptlet - add end %> - IDOMNode node = (IDOMNode) model - .getIndexedRegion(command.offset); - if (prefixedWith(document, command.offset, "<") && !node.getSource().endsWith("%>")) { //$NON-NLS-1$ //$NON-NLS-2$ - command.text += " %>"; //$NON-NLS-1$ - command.shiftsCaret = false; - command.caretOffset = command.offset + 1; - command.doit = false; - } - } - if (command.text.equals("{")) { //$NON-NLS-1$ - IDOMNode node = (IDOMNode) model - .getIndexedRegion(command.offset); - if ((prefixedWith(document, command.offset, "$") || prefixedWith(document, command.offset, "#")) && //$NON-NLS-1$ //$NON-NLS-2$ - !node.getSource().endsWith("}")) { //$NON-NLS-1$ - command.text += " }"; //$NON-NLS-1$ - command.shiftsCaret = false; - command.caretOffset = command.offset + 1; - command.doit = false; - } - } - } - } - } finally { - if (model != null) { - model.releaseFromRead(); - } - } - } - - /** - * Return the active text editor if possible, otherwise the active editor - * part. - * - * @return - */ - private Object getActiveTextEditor() { - IWorkbenchWindow window = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow(); - if (window != null) { - IWorkbenchPage page = window.getActivePage(); - if (page != null) { - IEditorPart editor = page.getActiveEditor(); - if (editor != null) { - if (editor instanceof ITextEditor) { - return editor; - } - ITextEditor textEditor = (ITextEditor) editor - .getAdapter(ITextEditor.class); - if (textEditor != null) { - return textEditor; - } - return editor; - } - } - } - return null; - } - - private boolean prefixedWith(IDocument document, int offset, String string) { - - try { - return document.getLength() >= string.length() - && document.get(offset - string.length(), string.length()) - .equals(string); - } catch (BadLocationException e) { - Logger.logException(e); - return false; - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/AbstractBreakpointProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/AbstractBreakpointProvider.java deleted file mode 100644 index 084e1b9e27..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/AbstractBreakpointProvider.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.breakpointproviders; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.core.internal.contentmodel.tld.provisional.TLDElementDeclaration; -import org.eclipse.wst.jsdt.web.core.internal.provisional.JSP12Namespace; -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.ui.IEditorInput; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools; -import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.eclipse.wst.xml.ui.internal.provisional.IDOMSourceEditingTextTools; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * Abstract breakpoint provider class which implements breakpoint provider - * interface. - * - * This is a temporary class for JavaBreakpointProvider and - * JavaScriptBreakpointProvider, and should be refactored to separate Java and - * JavaScript parts. - */ -public abstract class AbstractBreakpointProvider implements IBreakpointProvider { - - protected static final int END_OF_LINE = -1; - protected static final int JAVA = 1; - protected static final int JAVASCRIPT = 2; - private static final String[] JAVASCRIPT_LANGUAGE_KEYS = new String[] { - "javascript", "javascript1.0", "javascript1.1_3", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - "javascript1.2", "javascript1.3", "javascript1.4", "javascript1.5", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - "javascript1.6", "jscript", "sashscript" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - private static final String JSP_DIRECTIVE_PAGE = "jsp:directive.page"; //$NON-NLS-1$ - - protected static final int NO_VALID_CONTENT = -2; - protected static final int UNSUPPORTED = 0; - - protected static boolean contains(String[] haystack, String needle) { - for (int i = 0; i < haystack.length; i++) { - if (haystack[i].equals(needle)) { - return true; - } - } - return false; - } - - /* - * Return the page language - */ - protected static int getPageLanguage(Document doc) { - if (doc == null) { - return UNSUPPORTED; - } - - NodeList pageDirectives = doc.getElementsByTagName(JSP_DIRECTIVE_PAGE); - // Search for first language directive - for (int i = 0; i < pageDirectives.getLength(); i++) { - Node child = pageDirectives.item(i); - Node languageAttr = child.getAttributes().getNamedItem("language"); //$NON-NLS-1$ - if (languageAttr != null) { - String pageLanguage = languageAttr.getNodeValue(); - if (pageLanguage == null || pageLanguage.length() == 0) { - return UNSUPPORTED; - } - pageLanguage = pageLanguage.toLowerCase(); - if (contains(JAVASCRIPT_LANGUAGE_KEYS, pageLanguage)) { - return JAVASCRIPT; - } else if (pageLanguage.equals("java")) { - return JAVA; - } else { - return UNSUPPORTED; - } - } - } - return JAVA; // Java is default if no language directive - } - - /* - * Search the RegionContainer's regions looking for JSP content. If valid - * content is found, return the position >= 0 If no valid content is found, - * return NO_VALID_CONTENT. If a region starts after the line's endOffset, - * return END_OF_LINE. - */ - private static int getValidRegionPosition(IStructuredModel model, - ITextRegionCollection regionContainer, int startOffset, - int endOffset) { - - ITextRegionList regions = regionContainer.getRegions(); - for (int i = 0; i < regions.size(); i++) { - ITextRegion region = regions.get(i); - if (region instanceof ITextRegionCollection) { - int validPosition = getValidRegionPosition(model, - (ITextRegionCollection) region, startOffset, endOffset); - if (validPosition == END_OF_LINE || validPosition >= 0) { - return validPosition; - } - } else { - // region must be at least partially on selected line - if (regionContainer.getEndOffset(region) > startOffset) { - - int regionStartOffset = regionContainer - .getStartOffset(region); - // if region starts after line's endOffset, we're done - // searching - if (regionStartOffset > endOffset) { - return END_OF_LINE; - } - - // If region is JSP content, make sure the language is - // Java not Javascript by - // checking the content assist adapter's type. - if (region.getType().equals( - DOMJSPRegionContexts.JSP_CONTENT)) { - // DWM: this logic is not incorrect ... given changes - // to adapters, etc. - // but probably don't need anything here, since both - // Java and JavaScript - // are supported in V5. - - // nsd_TODO: verify this!!! - - // INodeNotifier notifier = - // (INodeNotifier)model.getNode(region.getStartOffset()); - // IAdapterFactory factory = - // model.getFactoryRegistry().getFactoryFor(ContentAssistAdapter.class); - // if(factory instanceof - // HTMLContentAssistAdapterFactory) { - // INodeAdapter adapter = - // ((HTMLContentAssistAdapterFactory)factory).createAdapter(notifier, - // region); - // if(adapter != null && adapter instanceof - // JSPJavaContentAssistAdapter) - - if (regionStartOffset > startOffset) { - return regionStartOffset; - } else { - return startOffset; - // } - } - } - // a custom tag, jsp:useBean, getproperty or setproperty - // statement is also a valid breakpoint location - else if (region.getType().equals( - DOMRegionContext.XML_TAG_NAME) - && (isCustomTagRegion(model - .getIndexedRegion(regionStartOffset)) - || regionContainer.getText(region).equals( - JSP12Namespace.ElementName.USEBEAN) - || regionContainer - .getText(region) - .equals( - JSP12Namespace.ElementName.GETPROPERTY) || regionContainer - .getText(region) - .equals( - JSP12Namespace.ElementName.SETPROPERTY))) { - - if (regionStartOffset > startOffset) { - return regionStartOffset; - } else { - return startOffset; - } - } else { - // Defect #241090, the Text Nodes inside of JSP - // scriptlets, expressions, and declarations are valid - // breakpoint-able locations - boolean isCodeNode = false; - IndexedRegion node = model - .getIndexedRegion(regionStartOffset); - if (node != null && node instanceof Node) { - Node domNode = (Node) node; - Node root = domNode.getOwnerDocument() - .getDocumentElement(); - if (root != null - && root.getNodeName().equals( - JSP12Namespace.ElementName.ROOT) - && domNode.getNodeType() == Node.TEXT_NODE - && domNode.getParentNode() != null) { - String parentName = domNode.getParentNode() - .getNodeName(); - isCodeNode = parentName - .equals(JSP12Namespace.ElementName.SCRIPTLET) - || parentName - .equals(JSP12Namespace.ElementName.EXPRESSION) - || parentName - .equals(JSP12Namespace.ElementName.DECLARATION); - } - } - if (isCodeNode) { - if (regionStartOffset > startOffset) { - return regionStartOffset; - } else { - return startOffset; - } - } - } - } - } - } - return NO_VALID_CONTENT; - } - - private static boolean isCustomTagRegion(IndexedRegion node) { - - if (node instanceof Element) { - Element xmlElement = (Element) node; - ModelQuery mq = ModelQueryUtil.getModelQuery(xmlElement - .getOwnerDocument()); - CMElementDeclaration decl = mq.getCMElementDeclaration(xmlElement); - if (decl instanceof CMNodeWrapper) { - CMNode cmNode = ((CMNodeWrapper) decl).getOriginNode(); - return cmNode instanceof TLDElementDeclaration; - } - } - return false; - } - - private ISourceEditingTextTools fSourceEditingTextTools; - - protected IResource getEditorInputResource(IEditorInput input) { - IResource resource = (IResource) input.getAdapter(IFile.class); - if (resource == null) { - resource = (IResource) input.getAdapter(IResource.class); - } - return resource; - } - - public ISourceEditingTextTools getSourceEditingTextTools() { - return fSourceEditingTextTools; - } - - protected int getValidPosition(IDocument idoc, int lineNumber) { - if (!(getSourceEditingTextTools() instanceof IDOMSourceEditingTextTools)) { - return NO_VALID_CONTENT; - } - if (idoc == null) { - return NO_VALID_CONTENT; - } - - int startOffset, endOffset; - try { - startOffset = idoc.getLineOffset(lineNumber - 1); - endOffset = idoc.getLineOffset(lineNumber) - 1; - - if (idoc == null) { - return NO_VALID_CONTENT; - } - String lineText = idoc.get(startOffset, endOffset - startOffset) - .trim(); - - // blank lines or lines with only an open or close brace or - // scriptlet tag cannot have a breakpoint - if (lineText.equals("") || lineText.equals("{") || //$NON-NLS-2$//$NON-NLS-1$ - lineText.equals("}") || lineText.equals("<%")) { - return NO_VALID_CONTENT; - } - } catch (BadLocationException e) { - return NO_VALID_CONTENT; - } - - IStructuredDocumentRegion flatNode = ((IStructuredDocument) idoc) - .getRegionAtCharacterOffset(startOffset); - // go through the node's regions looking for JSP content - // until reaching the end of the line - while (flatNode != null) { - int validPosition = getValidRegionPosition( - ((IDOMDocument) ((IDOMSourceEditingTextTools) getSourceEditingTextTools()) - .getDOMDocument()).getModel(), flatNode, - startOffset, endOffset); - - if (validPosition == END_OF_LINE) { - return NO_VALID_CONTENT; - } - - if (validPosition >= 0) { - return validPosition; - } - - flatNode = flatNode.getNext(); - } - return NO_VALID_CONTENT; - } - - public void setSourceEditingTextTools( - ISourceEditingTextTools sourceEditingTextTools) { - fSourceEditingTextTools = sourceEditingTextTools; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaBreakpointProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaBreakpointProvider.java deleted file mode 100644 index dbd9cac99f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaBreakpointProvider.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.breakpointproviders; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.wst.jsdt.debug.core.JDIDebugModel; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.wst.xml.ui.internal.provisional.IDOMSourceEditingTextTools; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -/** - * A BreakpointProvider supporting server-side Java as a JSP language - * - * @deprecated - */ -@Deprecated -public class JavaBreakpointProvider extends AbstractBreakpointProvider { - - /* - * @param res @return String - */ - private static final String getTypeName(IResource res) { - IPath path = res.getFullPath(); - // Assume under Web Content folder if more than 2 segments - if (path.segmentCount() > 2) { - path = path.removeFirstSegments(2); - } else { - path = path.removeFirstSegments(1); - } - String typeName = path.toString().replace(IPath.SEPARATOR, '.'); - if (res.getFileExtension() != null) { - typeName = typeName.substring(0, typeName.lastIndexOf('.')); - } - return typeName; - } - - public IStatus addBreakpoint(IDocument document, IEditorInput input, - int lineNumber, int offset) throws CoreException { - int pos = getValidPosition(document, lineNumber); - if (pos != NO_VALID_CONTENT) { - IResource res = getEditorInputResource(input); - if (res != null) { - String typeName = getTypeName(res); - try { - JDIDebugModel.createLineBreakpoint(res, typeName, - lineNumber, pos, pos, 0, true, null); - } catch (CoreException e) { - return e.getStatus(); - } - } - } - return new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, - JSPUIMessages.OK, null); - } - - public boolean canAddBreakpoint(IDocument document, IEditorInput input, - Node node, int lineNumber, int offset) { - IResource res = input instanceof IFileEditorInput ? ((IFileEditorInput) input) - .getFile() - : null; - Document doc = null; - if (getSourceEditingTextTools() instanceof IDOMSourceEditingTextTools) { - doc = ((IDOMSourceEditingTextTools) getSourceEditingTextTools()) - .getDOMDocument(); - } - - return res != null && !isBreakpointExist(res, lineNumber) - && isValidPosition(document, lineNumber) - && (getPageLanguage(doc) == JAVA); - } - - public IResource getResource(IEditorInput input) { - return getEditorInputResource(input); - } - - /* - * @param res @param lineNumber @return boolean - */ - private boolean isBreakpointExist(IResource res, int lineNumber) { - try { - return JDIDebugModel.lineBreakpointExists(getTypeName(res), - lineNumber) != null; - } catch (CoreException e) { - return false; - } - } - - /* - * @param doc @param idoc @param lineNumber @return boolean - */ - private boolean isValidPosition(IDocument idoc, int lineNumber) { - return getValidPosition(idoc, lineNumber) != NO_VALID_CONTENT; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java deleted file mode 100644 index 2a600bb80b..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.breakpointproviders; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.core.IBreakpointManager; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.ui.IEditorInput; -import org.w3c.dom.Document; - -/** - * A IBreakpointProvider supporting server-side JavaScript as a JSP language - * - */ -public class JavaScriptBreakpointProvider extends AbstractBreakpointProvider { - public boolean canAddBreakpoint(IDocument document, IEditorInput input, - int lineNumber, int offset) { - IResource res = getEditorInputResource(input); - Document doc = null; - return res != null && !isBreakpointExist(res, lineNumber) - && isValidPosition(document, lineNumber) - && (getPageLanguage(doc) != JAVA); - } - - public IStatus addBreakpoint(IDocument document, IEditorInput input, - int lineNumber, int offset) { - int pos = getValidPosition(document, lineNumber); - if (pos != NO_VALID_CONTENT - && canAddBreakpoint(document, input, lineNumber, offset)) { - IResource res = getEditorInputResource(input); - if (res != null) { - new JavascriptLineBreakpoint(res, lineNumber, pos, pos); - } - } - return new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, - JSPUIMessages.OK, null); - } - - /* - * @param res @param lineNumber @return boolean - */ - private boolean isBreakpointExist(IResource res, int lineNumber) { - IBreakpointManager manager = DebugPlugin.getDefault() - .getBreakpointManager(); - IBreakpoint[] breakpoints = manager.getBreakpoints(); - for (int i = 0; i < breakpoints.length; i++) { - if (!(breakpoints[i] instanceof JavascriptLineBreakpoint)) { - continue; - } - JavascriptLineBreakpoint breakpoint = (JavascriptLineBreakpoint) breakpoints[i]; - try { - if (breakpoint.getResource().equals(res) - && breakpoint.getLineNumber() == lineNumber) { - return true; - } - } catch (CoreException e) { - return true; - } - } - return false; - } - - /* - * @param doc @param idoc @param lineNumber @return boolean - */ - private boolean isValidPosition(IDocument idoc, int lineNumber) { - return getValidPosition(idoc, lineNumber) != NO_VALID_CONTENT; - } - - public IResource getResource(IEditorInput input) { - return getEditorInputResource(input); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java deleted file mode 100644 index adfab8744c..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.breakpointproviders; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExecutableExtension; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.debug.core.model.IBreakpoint; -import org.eclipse.wst.jsdt.debug.core.JDIDebugModel; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITypedRegion; -import org.eclipse.wst.jsdt.web.core.text.IJSPPartitions; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IStorageEditorInput; -import org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModel; -import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools; -import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider; - -/** - * A IBreakpointProvider supporting JSP breakpoints for a Non-Java Language - * Source JSP page - */ -public class JavaStratumBreakpointProvider implements IBreakpointProvider, - IExecutableExtension { - private String fClassPattern = null; - - public IStatus addBreakpoint(IDocument document, IEditorInput input, - int editorLineNumber, int offset) throws CoreException { - // check if there is a valid position to set breakpoint - int pos = getValidPosition(document, editorLineNumber); - IStatus status = null; - if (pos >= 0) { - IResource res = getResourceFromInput(input); - if (res != null) { - String path = null; // res.getName();// - // res.getFullPath().removeFirstSegments(2).toString(); - IBreakpoint point = JDIDebugModel - .createStratumBreakpoint( - res, - "JSP", res.getName(), path, getClassPattern(res), editorLineNumber, pos, pos, 0, true, null); //$NON-NLS-1$ - if (point == null) { - status = new Status(IStatus.ERROR, JSPUIPlugin.ID, - IStatus.ERROR, "unsupported input type", null); //$NON-NLS-1$ - } - } else if (input instanceof IStorageEditorInput) { - // For non-resources, use the workspace root and a coordinated - // attribute that is used to - // prevent unwanted (breakpoint) markers from being loaded - // into the editors. - res = ResourcesPlugin.getWorkspace().getRoot(); - String id = input.getName(); - if (input instanceof IStorageEditorInput - && ((IStorageEditorInput) input).getStorage() != null - && ((IStorageEditorInput) input).getStorage() - .getFullPath() != null) { - id = ((IStorageEditorInput) input).getStorage() - .getFullPath().toString(); - } - Map attributes = new HashMap(); - attributes - .put( - StructuredResourceMarkerAnnotationModel.SECONDARY_ID_KEY, - id); - String path = null; - IBreakpoint point = JDIDebugModel - .createStratumBreakpoint( - res, - "JSP", input.getName(), path, getClassPattern(res), editorLineNumber, pos, pos, 0, true, attributes); //$NON-NLS-1$ - if (point == null) { - status = new Status(IStatus.ERROR, JSPUIPlugin.ID, - IStatus.ERROR, "unsupported input type", null); //$NON-NLS-1$ - } - } - } - if (status == null) { - status = new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, - JSPUIMessages.OK, null); - } - return status; - } - - private String getClassPattern(IResource resource) { - if (resource != null) { - String shortName = resource.getName(); - String extension = resource.getFileExtension(); - if (extension != null - && extension.length() > shortName.length() - 1) { - shortName = shortName.substring(0, shortName.length() - - extension.length() - 1); - } - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=154475 - */ - return fClassPattern + ",_" + shortName; - } - return fClassPattern; - } - - public IResource getResource(IEditorInput input) { - return getResourceFromInput(input); - } - - private IResource getResourceFromInput(IEditorInput input) { - IResource resource = (IResource) input.getAdapter(IFile.class); - if (resource == null) { - resource = (IResource) input.getAdapter(IResource.class); - } - return resource; - } - - /** - * Finds a valid position somewhere on lineNumber in document, idoc, where a - * breakpoint can be set and returns that position. -1 is returned if a - * position could not be found. - * - * @param idoc - * @param editorLineNumber - * @return position to set breakpoint or -1 if no position could be found - */ - private int getValidPosition(IDocument idoc, int editorLineNumber) { - int result = -1; - if (idoc != null) { - - int startOffset = 0; - int endOffset = 0; - try { - IRegion line = idoc.getLineInformation(editorLineNumber - 1); - startOffset = line.getOffset(); - endOffset = Math.max(line.getOffset(), line.getOffset() - + line.getLength()); - - String lineText = idoc - .get(startOffset, endOffset - startOffset).trim(); - - // blank lines or lines with only an open or close brace or - // scriptlet tag cannot have a breakpoint - if (lineText.equals("") || lineText.equals("{") || //$NON-NLS-1$ //$NON-NLS-2$ - lineText.equals("}") || lineText.equals("<%")) //$NON-NLS-1$ //$NON-NLS-2$ - { - result = -1; - } else { - // get all partitions for current line - ITypedRegion[] partitions = null; - - partitions = idoc.computePartitioning(startOffset, - endOffset - startOffset); - - for (int i = 0; i < partitions.length; ++i) { - String type = partitions[i].getType(); - // if found jsp java content, jsp directive tags, - // custom - // tags, - // return that position - if (type == IJSPPartitions.JSP_CONTENT_JAVA - || type == IJSPPartitions.JSP_DIRECTIVE) { - result = partitions[i].getOffset(); - } - } - } - } catch (BadLocationException e) { - result = -1; - } - } - - return result; - } - - /** - * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, - * java.lang.String, java.lang.Object) - */ - public void setInitializationData(IConfigurationElement config, - String propertyName, Object data) throws CoreException { - if (data != null) { - if (data instanceof String && data.toString().length() > 0) { - fClassPattern = (String) data; - } - } - } - - public void setSourceEditingTextTools(ISourceEditingTextTools tools) { - // not used - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java deleted file mode 100644 index 09c92bd8e2..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -/* - * Created on Jul 20, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -package org.eclipse.wst.jsdt.web.ui.internal.breakpointproviders; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; - -/** - * @author davidw - * - * To change the template for this generated type comment go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -public class JavascriptLineBreakpoint { - - /** - * @param res - * @param lineNumber - * @param pos - * @param pos1 - */ - public JavascriptLineBreakpoint(IResource res, int lineNumber, int pos, - int pos1) { - - // TODO Should be deleted? Along with calling class? - } - - /** - * - */ - public JavascriptLineBreakpoint() { - super(); - } - - /** - * - */ - public IResource getResource() throws CoreException { - // TODO Auto-generated method stub - return null; - } - - /** - * @return - */ - public int getLineNumber() { - // TODO Auto-generated method stub - return 0; - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTCompletionProposal.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTCompletionProposal.java deleted file mode 100644 index 43b92f196c..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTCompletionProposal.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import org.eclipse.wst.jsdt.ui.text.java.IJavaCompletionProposal; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.contentassist.ICompletionProposal; -import org.eclipse.jface.text.contentassist.IContextInformation; -import org.eclipse.swt.graphics.Image; -import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal; -import org.eclipse.wst.jsdt.internal.ui.text.java.JavaCompletionProposal; - -/** - * Implements IJavaCompletionProposal for use with JSPProposalCollector. - * - * @plannedfor 1.0 - */ -//public class JSPCompletionProposal extends CustomCompletionProposal implements -public class JSDTCompletionProposal extends JavaCompletionProposal implements - IJavaCompletionProposal { - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483 - * - * This is a wrapped proposal so we don't need to make "slow" calls to the - * java proposal up front, only when needed for example, getAdditionalInfo() - * reads external javadoc, and it makes no sense - */ - ICompletionProposal fJavaCompletionProposal = null; - - public JSDTCompletionProposal(String replacementString, - int replacementOffset, int replacementLength, int cursorPosition, - Image image, String displayString, - IContextInformation contextInformation, - String additionalProposalInfo, int relevance, - boolean updateReplacementLengthOnValidate) { - - super(replacementString,replacementOffset,replacementLength,image,displayString,relevance); - super.setCursorPosition(cursorPosition); - super.setContextInformation(contextInformation); - - - -// super(replacementString, replacementOffset, replacementLength, -// cursorPosition, image, displayString, contextInformation, -// additionalProposalInfo, relevance, -// updateReplacementLengthOnValidate); - } - - /** - * Sets cursor position after applying. - */ - @Override - public void apply(ITextViewer viewer, char trigger, int stateMask, - int offset) { - super.apply(viewer, trigger, stateMask, offset); - } - - final public ICompletionProposal getJavaCompletionProposal() { - return fJavaCompletionProposal; - } - - final public void setJavaCompletionProposal( - ICompletionProposal javaCompletionProposal) { - fJavaCompletionProposal = javaCompletionProposal; - } - - @Override - public String getAdditionalProposalInfo() { - - String additionalInfo = super.getAdditionalProposalInfo(); - ICompletionProposal javaProposal = getJavaCompletionProposal(); - if (javaProposal != null) { - additionalInfo = javaProposal.getAdditionalProposalInfo(); - } - - return additionalInfo; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistant.java deleted file mode 100644 index 1d79fb8d3e..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistant.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.contentassist.ICompletionProposal; -import org.eclipse.wst.jsdt.ui.text.java.CompletionProposalCollector; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor; -import java.util.Vector; -import java.util.Arrays; - -public class JSDTContentAssistant extends AbstractContentAssistProcessor { - - private JSDTContentAssistantProcessor fContentAssistProcessor; - - private JSDTTemplateAssistProcessor fTemplateAssistProcessor; - - private JSPTranslationAdapter fTranslationAdapter ; - - - public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, - int documentPosition) { - - Vector proposals = new Vector(); - - ICompletionProposal[] completionProposals; - - JSDTProposalCollector theCollector = getProposalCollector(viewer, documentPosition); - /* --------- Content Assistant --------- */ - getContentAssistProcessor().setProposalCollector(theCollector); - completionProposals = getContentAssistProcessor().computeCompletionProposals(viewer, documentPosition); - proposals.addAll(Arrays.asList(completionProposals)); - - - /* --------- template completions --------- */ - getTemplateCompletionProcessor().setProposalCollector(theCollector); - completionProposals = getTemplateCompletionProcessor().computeCompletionProposals(viewer, documentPosition); - proposals.addAll(Arrays.asList(completionProposals)); - - - return (ICompletionProposal[]) proposals - .toArray(new ICompletionProposal[0]); - } - - protected JSDTProposalCollector getProposalCollector(ITextViewer viewer, int offset) { - JSPTranslation tran = getJSPTranslation(viewer,offset); - - return new JSDTProposalCollector( tran ); - } - - private JSPTranslation getJSPTranslation(ITextViewer viewer, int offset){ - - - IDOMModel xmlModel = null; - - xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(viewer.getDocument()); - - try { - IDOMDocument xmlDoc = xmlModel.getDocument(); - - if (fTranslationAdapter == null) { - fTranslationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class); - } - if (fTranslationAdapter != null) { - - return fTranslationAdapter.getJSPTranslation(); - } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }finally{ - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } - } - return null; -} - - private JSDTContentAssistantProcessor getContentAssistProcessor() { - if (fContentAssistProcessor == null) { - fContentAssistProcessor = new JSDTContentAssistantProcessor(); - } - - return fContentAssistProcessor; - } - - private JSDTTemplateAssistProcessor getTemplateCompletionProcessor() { - if (fTemplateAssistProcessor == null) { - fTemplateAssistProcessor = new JSDTTemplateAssistProcessor(); - } - - return fTemplateAssistProcessor; - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistantProcessor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistantProcessor.java deleted file mode 100644 index 1955d4e502..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContentAssistantProcessor.java +++ /dev/null @@ -1,298 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IDocumentExtension3; -import org.eclipse.jface.text.IDocumentPartitioner; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.text.contentassist.ICompletionProposal; -import org.eclipse.jface.text.contentassist.IContextInformation; -import org.eclipse.jface.text.contentassist.IContextInformationValidator; -import org.eclipse.wst.jsdt.core.ICompilationUnit; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.jsdt.web.core.text.IJSPPartitions; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning; -import org.eclipse.wst.sse.ui.internal.StructuredTextViewer; -import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor; -import org.osgi.framework.Bundle; - -public class JSDTContentAssistantProcessor extends AbstractContentAssistProcessor { - - public JSDTContentAssistantProcessor() { - super(); - } - - private static final boolean DEBUG; - private JSDTProposalCollector fProposalCollector; - - static { - String value = Platform.getDebugOption("org.eclipse.wst.jsdt.web.core/debug/jsptranslation"); //$NON-NLS-1$ - DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$ - } - - private static final String JSDT_CORE_PLUGIN_ID = "org.eclipse.wst.jsdt.core"; //$NON-NLS-1$ - - protected int fJspSourcePosition, fJavaPosition; - protected String fErrorMessage = null; - protected StructuredTextViewer fViewer = null; - private JSPTranslationAdapter fTranslationAdapter = null; - - /** - * Returns a list of completion proposals based on the specified location - * within the document that corresponds to the current cursor position - * within the text viewer. - * - * @param viewer - * the viewer whose document is used to compute the proposals - * @param documentPosition - * an offset within the document for which completions should be - * computed - * @return an array of completion proposals or <code>null</code> if no - * proposals are possible - */ - public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int pos) { - initialize(pos); - - JSDTProposalCollector collector = null; - - IDOMModel xmlModel = null; - try { - if (viewer instanceof StructuredTextViewer) { - fViewer = (StructuredTextViewer) viewer; - } - - xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(fViewer.getDocument()); - - IDOMDocument xmlDoc = xmlModel.getDocument(); - if (fTranslationAdapter == null) { - fTranslationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class); - } - if (fTranslationAdapter != null) { - - JSPTranslation translation = fTranslationAdapter.getJSPTranslation(); - fJavaPosition = translation.getJavaOffset(getDocumentPosition()); - - if (DEBUG) { - System.out.println("Cursor Location in Java Offset:" + fJavaPosition); - } - System.out.println(debug(translation)); - - try { - - ICompilationUnit cu = translation.getCompilationUnit(); - - // can't get java proposals w/out a compilation unit - // or without a valid position - if (cu == null || -1 == fJavaPosition) { - return new ICompletionProposal[0]; - } - - collector = getProposalCollector(); - synchronized (cu) { - cu.codeComplete(fJavaPosition, collector, null); - } - } catch (CoreException coreEx) { - // a possible Java Model Exception due to not being a Web - // (Java) Project - coreEx.printStackTrace(); - } - } - } catch (Exception exc) { - exc.printStackTrace(); - // throw out exceptions on code assist. - } finally { - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } - } - ICompletionProposal[] results = new ICompletionProposal[0]; - if (collector != null) { - results = collector.getJSPCompletionProposals(); - if (results == null || results.length < 1) { - fErrorMessage = JSPUIMessages.Java_Content_Assist_is_not_UI_; - } - } - return results; - } - - protected JSDTProposalCollector getProposalCollector() { - return fProposalCollector; - // return new JSPProposalCollector(translation); - } - - public void setProposalCollector(JSDTProposalCollector translation){ - this.fProposalCollector = translation; - } - - /** - * For debugging translation mapping only. - * - * @param translation - */ - private String debug(JSPTranslation translation) { - StringBuffer debugString = new StringBuffer(); - HashMap jsp2java = translation.getJsp2JavaMap(); - String javaText = translation.getJavaText(); - String jspText = fViewer.getDocument().get(); - debugString.append("[jsp2JavaMap in JSPCompletionProcessor]\r\n"); //$NON-NLS-1$ - int jspCursPos = fViewer.getTextWidget().getCaretOffset(); - debugString.append("jsp cursor position >> " + jspCursPos + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ - Iterator it = jsp2java.keySet().iterator(); - while (it.hasNext()) { - try { - Position jspPos = (Position) it.next(); - Position javaPos = (Position) jsp2java.get(jspPos); - debugString.append("jsp > " + jspPos.offset + ":" + jspPos.length + ":" + jspText.substring(jspPos.offset, jspPos.offset + jspPos.length) + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - debugString.append("java > " + javaPos.offset + ":" + javaPos.length + ":" + javaText.substring(javaPos.offset, javaPos.offset + javaPos.length) + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - debugString.append("char at Java pos (-1)>" + javaText.substring(javaPos.offset, javaPos.offset + javaPos.length).charAt(fJavaPosition - 1) + ":\n"); - debugString.append("char at JSP pos (-1)>" + jspText.charAt(jspCursPos - 1) + ":\n"); - - debugString.append("-------------------------------------------------\n"); //$NON-NLS-1$ - } catch (Exception e) { - // eat exceptions, it's only for debug - } - } - return debugString.toString(); - } - - /** - * Returns information about possible contexts based on the specified - * location within the document that corresponds to the current cursor - * position within the text viewer. - * - * @param viewer - * the viewer whose document is used to compute the possible - * contexts - * @param documentPosition - * an offset within the document for which context information - * should be computed - * @return an array of context information objects or <code>null</code> if - * no context could be found - */ - public org.eclipse.jface.text.contentassist.IContextInformation[] computeContextInformation(org.eclipse.jface.text.ITextViewer viewer, int documentOffset) { - return null; - } - - /** - * Returns a string of characters which when pressed should automatically - * display content-assist proposals. - * - * @return string of characters - */ - public java.lang.String getAutoProposalInvocationCharacters() { - return null; - } - - /** - * Returns a string of characters which when pressed should automatically - * display a content-assist tip. - * - * @return string of characters - */ - public java.lang.String getAutoTipInvocationCharacters() { - return null; - } - - /** - * Returns the characters which when entered by the user should - * automatically trigger the presentation of possible completions. - * - * @return the auto activation characters for completion proposal or - * <code>null</code> if no auto activation is desired - */ - public char[] getCompletionProposalAutoActivationCharacters() { - return null; - } - - /** - * Returns the characters which when entered by the user should - * automatically trigger the presentation of context information. - * - * @return the auto activation characters for presenting context information - * or <code>null</code> if no auto activation is desired - */ - public char[] getContextInformationAutoActivationCharacters() { - return null; - } - - /** - * Returns a validator used to determine when displayed context information - * should be dismissed. May only return <code>null</code> if the processor - * is incapable of computing context information. - * - * @return a context information validator, or <code>null</code> if the - * processor is incapable of computing context information - */ - public org.eclipse.jface.text.contentassist.IContextInformationValidator getContextInformationValidator() { - return null; - } - - protected int getDocumentPosition() { - return fJspSourcePosition; - } - - public String getErrorMessage() { - // TODO: get appropriate error message - // if (fCollector.getErrorMessage() != null && - // fCollector.getErrorMessage().length() > 0) - // return fCollector.getErrorMessage(); - return fErrorMessage; - } - - /** - * Initialize the code assist processor. - */ - protected void initialize(int pos) { - initializeJavaPlugins(); - - fJspSourcePosition = pos; - fErrorMessage = null; - } - - /** - * Initialize the Java Plugins that the JSP processor requires. See - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=143765 We should not call - * "start", because that will cause that state to be remembered, and - * re-started automatically during the next boot up sequence. - * - * ISSUE: we may be able to get rid of this all together, in future, since - * 99% we probably have already used some JDT class by the time we need JDT - * to be active ... but ... this is the safest fix for this point in 1.5 - * stream. Next release, let's just remove this, re-discover what ever bug - * this was fixing (if any) and if there is one, then we'll either put back - * in, as is, or come up with a more appropriate fix. - * - */ - protected void initializeJavaPlugins() { - try { - Bundle bundle = Platform.getBundle(JSDT_CORE_PLUGIN_ID); - bundle.loadClass("dummyClassNameThatShouldNeverExist"); - } catch (ClassNotFoundException e) { - // this is the expected result, we just want to - // nudge the bundle to be sure its activated. - } - } - - public void release() { - fTranslationAdapter = null; - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContetAssistInvocationContext.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContetAssistInvocationContext.java deleted file mode 100644 index aa068c6229..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTContetAssistInvocationContext.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.wst.jsdt.core.ICompilationUnit; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.internal.ui.javaeditor.EditorUtility; -import org.eclipse.wst.jsdt.ui.text.java.JavaContentAssistInvocationContext; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationExtension; -import org.eclipse.wst.jsdt.web.ui.internal.contentassist.JSDTProposalCollector; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -public class JSDTContetAssistInvocationContext extends JavaContentAssistInvocationContext{ - - - - ITextViewer viewer; - - - private JSDTContetAssistInvocationContext(ITextViewer viewer, int offset, JSDTProposalCollector theCollector){ - - super(viewer,offset,null); - this.viewer=viewer; - //this.offset=getJSPTranslation().getJavaOffset(offset); - //CompletionProposalCollector theCollector = getProposalCollector(); - super.setCollector(theCollector); - - } - - public static JSDTContetAssistInvocationContext getInstance(ITextViewer viewer, int offset, JSDTProposalCollector theCollector){ - JSPTranslation tran = getJSPTranslation(viewer); - int jsOffset = tran.getJavaOffset(offset); - return new JSDTContetAssistInvocationContext(viewer,offset,theCollector); - } - public IDocument getDocument() { - return viewer.getDocument(); - - } - -// public IDocument getDocument() { -// return ((JSPTranslationExtension)getJSPTranslation(viewer)).getJavaDocument(); -// -// } - -// protected CompletionProposalCollector getProposalCollector() { -// -// return ((CompletionProposalCollector) ( new JSPProposalCollector( getJSPTranslation()) )); -// } - - private static JSPTranslation getJSPTranslation(ITextViewer viewer){ - JSPTranslation fTranslation = null;; - - IDOMModel xmlModel = null; - - try { - xmlModel = (IDOMModel) StructuredModelManager.getModelManager() - .getExistingModelForRead(viewer.getDocument()); - - IDOMDocument xmlDoc = xmlModel.getDocument(); - - - JSPTranslationAdapter fTranslationAdapter = (JSPTranslationAdapter) xmlDoc - .getAdapterFor(IJSPTranslation.class); - - if (fTranslationAdapter != null) { - - fTranslation = fTranslationAdapter.getJSPTranslation(); - } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }finally{ - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } - } - return fTranslation; - } - -// public ICompilationUnit getCompilationUnit() { -// return getJSPTranslation(viewer).getCompilationUnit(); -// } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTProposalCollector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTProposalCollector.java deleted file mode 100644 index 882c9a5495..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTProposalCollector.java +++ /dev/null @@ -1,234 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import org.eclipse.wst.jsdt.core.CompletionProposal; -import org.eclipse.wst.jsdt.core.ICompilationUnit; -import org.eclipse.wst.jsdt.core.Signature; -import org.eclipse.wst.jsdt.ui.text.java.CompletionProposalCollector; -import org.eclipse.wst.jsdt.ui.text.java.CompletionProposalComparator; -import org.eclipse.wst.jsdt.ui.text.java.IJavaCompletionProposal; -import org.eclipse.jface.text.contentassist.ICompletionProposal; -import org.eclipse.jface.text.contentassist.IContextInformation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.swt.graphics.Image; - -/** - * Passed into ICodeComplete#codeComplete(int offset, CompletionRequestor - * requestor). Adapts IJavaCompletionProposals to JSPCompletion proposals. This - * includes: - translating offsets - "fixing" up display strings - filtering - * some unwanted proposals - * - * @plannedfor 1.0 - */ -public class JSDTProposalCollector extends CompletionProposalCollector { - - private JSPTranslation fTranslation; - private Comparator fComparator; - private IJavaCompletionProposal[] fJavaProposals; - - public JSDTProposalCollector( JSPTranslation translation) { - super(translation.getCompilationUnit()); - - - if (translation == null) { - throw new IllegalArgumentException("JSPTranslation cannot be null"); //$NON-NLS-1$ - } - - fTranslation = translation; - } - - /** - * Ensures that we only return JSPCompletionProposals. - * - * @return an array of JSPCompletionProposals - */ - public JSDTCompletionProposal[] getJSPCompletionProposals() { - List results = new ArrayList(); - IJavaCompletionProposal[] javaProposals = getJavaCompletionProposals(); - // need to filter out non JSPCompletionProposals - // because their offsets haven't been translated - for (int i = 0; i < javaProposals.length; i++) { - if (javaProposals[i] instanceof JSDTCompletionProposal) { - results.add(javaProposals[i]); - } - } - Collections.sort(results, getComparator()); - return (JSDTCompletionProposal[]) results - .toArray(new JSDTCompletionProposal[results.size()]); - } - - private Comparator getComparator() { - if (fComparator == null) { - fComparator = new CompletionProposalComparator(); - } - return fComparator; - } - - /** - * Overridden to: - translate Java -> JSP offsets - fix - * cursor-position-after - fix mangled servlet name in display string - - * remove unwanted proposals (servlet constructor) - */ - @Override - protected IJavaCompletionProposal createJavaCompletionProposal( - CompletionProposal proposal) { - - JSDTCompletionProposal jspProposal = null; - - // ignore constructor proposals (they're not relevant for our JSP - // proposal list) - if (!proposal.isConstructor()) { - -// if (proposal.getKind() == CompletionProposal.TYPE_REF) { -// String signature = String.valueOf(proposal -// .getDeclarationSignature()); -// String completion = String.valueOf(proposal.getCompletion()); -// if (completion.indexOf(signature) != -1) { -// jspProposal = createAutoImportProposal(proposal); -// } -// } - - // default behavior -// if (jspProposal == null) { - jspProposal = createJspProposal(proposal); - //} - } - return jspProposal; - } - -// private JSPCompletionProposal createAutoImportProposal( -// CompletionProposal proposal) { -// -// JSPCompletionProposal jspProposal = null; -// -// String signature = new String(proposal.getDeclarationSignature()); -// String completion = new String(proposal.getCompletion()); -// -// // it's fully qualified so we should -// // add an import statement -// // create an autoimport proposal -// String newCompletion = completion.replaceAll(signature + ".", ""); //$NON-NLS-1$ //$NON-NLS-2$ -// -// // java offset -// int offset = proposal.getReplaceStart(); -// // replacement length -// int length = proposal.getReplaceEnd() - offset; -// // translate offset from Java > JSP -// offset = fTranslation.getJspOffset(offset); -// // cursor position after must be calculated -// int positionAfter = calculatePositionAfter(proposal, newCompletion, -// offset); -// -// // from java proposal -// IJavaCompletionProposal javaProposal = super -// .createJavaCompletionProposal(proposal); -// proposal.getDeclarationSignature(); -// Image image = javaProposal.getImage(); -// String displayString = javaProposal.getDisplayString(); -// displayString = getTranslation().fixupMangledName(displayString); -// IContextInformation contextInformation = javaProposal -// .getContextInformation(); -// // don't do this, it's slow -// // String additionalInfo = javaProposal.getAdditionalProposalInfo(); -// int relevance = javaProposal.getRelevance(); -// -// boolean updateLengthOnValidate = true; -// -// jspProposal = new AutoImportProposal(completion, newCompletion, offset, -// length, positionAfter, image, displayString, -// contextInformation, null, relevance, updateLengthOnValidate); -// -// // https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483 -// // set wrapped java proposal so additional info can be calculated on -// // demand -// jspProposal.setJavaCompletionProposal(javaProposal); -// -// return jspProposal; -// } - - private JSDTCompletionProposal createJspProposal(CompletionProposal proposal) { - - JSDTCompletionProposal jspProposal; - String completion = String.valueOf(proposal.getCompletion()); - // java offset - int offset = proposal.getReplaceStart(); - // replacement length - int length = proposal.getReplaceEnd() - offset; - // translate offset from Java > JSP - offset = fTranslation.getJspOffset(offset); - // cursor position after must be calculated - int positionAfter = calculatePositionAfter(proposal, completion, offset); - - // from java proposal - IJavaCompletionProposal javaProposal = super - .createJavaCompletionProposal(proposal); - proposal.getDeclarationSignature(); - Image image = javaProposal.getImage(); - String displayString = javaProposal.getDisplayString(); - displayString = getTranslation().fixupMangledName(displayString); - IContextInformation contextInformation = javaProposal - .getContextInformation(); - // String additionalInfo = javaProposal.getAdditionalProposalInfo(); - int relevance = javaProposal.getRelevance(); - - boolean updateLengthOnValidate = true; - - jspProposal = new JSDTCompletionProposal(completion, offset, length, - positionAfter, image, displayString, contextInformation, null, - relevance, updateLengthOnValidate); - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483 - // set wrapped java proposal so additional info can be calculated on - // demand - jspProposal.setJavaCompletionProposal(javaProposal); - - return jspProposal; - } - - /** - * Cacluates the where the cursor should be after applying this proposal. - * eg. method(|) if the method proposal chosen had params. - * - * @param proposal - * @param completion - * @param currentCursorOffset - * @return - */ - private int calculatePositionAfter(CompletionProposal proposal, - String completion, int currentCursorOffset) { - // calculate cursor position after - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=118398 - // int positionAfter = currentCursorOffset+completion.length(); - int positionAfter = completion.length(); - - int kind = proposal.getKind(); - - // may need better logic here... - // put cursor inside parenthesis if there's params - // only checking for any kind of declaration - if (kind == CompletionProposal.ANONYMOUS_CLASS_DECLARATION - || kind == CompletionProposal.METHOD_DECLARATION - || kind == CompletionProposal.POTENTIAL_METHOD_DECLARATION - || kind == CompletionProposal.METHOD_REF) { - String[] params = Signature.getParameterTypes(String - .valueOf(proposal.getSignature())); - if (completion.length() > 0 && params.length > 0) { - positionAfter--; - } - } - return positionAfter; - } - - static char[] getTypeTriggers() { - return TYPE_TRIGGERS; - } - - public JSPTranslation getTranslation() { - return fTranslation; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTTemplateAssistProcessor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTTemplateAssistProcessor.java deleted file mode 100644 index f47c482900..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentassist/JSDTTemplateAssistProcessor.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.contentassist; - -import java.util.List; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.contentassist.ICompletionProposal; - -import org.eclipse.wst.jsdt.core.ICompilationUnit; -import org.eclipse.wst.jsdt.internal.ui.text.correction.AssistContext; -import org.eclipse.wst.jsdt.internal.ui.text.java.TemplateCompletionProposalComputer; -import org.eclipse.wst.jsdt.ui.text.java.JavaContentAssistInvocationContext; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -public class JSDTTemplateAssistProcessor { - - TemplateCompletionProposalComputer fJavaTemplateCompletion; - JSPTranslationAdapter fTranslationAdapter; - IProgressMonitor monitor; - JSDTProposalCollector fProposalCollector; - - public JSDTTemplateAssistProcessor(){ - monitor = new NullProgressMonitor(); - - } - - private TemplateCompletionProposalComputer getTemplateCompletionProposalComputer(){ - if(fJavaTemplateCompletion==null){ - fJavaTemplateCompletion = new TemplateCompletionProposalComputer(); - } - return fJavaTemplateCompletion; - } - - public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { - JavaContentAssistInvocationContext context = getInvocationContext(viewer, offset); - List props = getTemplateCompletionProposalComputer().computeCompletionProposals(context, monitor); - - return (ICompletionProposal[])props.toArray(new ICompletionProposal[]{}); - - } - - private JavaContentAssistInvocationContext getInvocationContext(ITextViewer viewer, int offset){ - return JSDTContetAssistInvocationContext.getInstance(viewer,offset,getProposalCollector()); - } - - protected JSDTProposalCollector getProposalCollector() { - return fProposalCollector; - // return new JSPProposalCollector(translation); - } - - public void setProposalCollector(JSDTProposalCollector translation){ - this.fProposalCollector = translation; - } - - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java deleted file mode 100644 index c5e279f27b..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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 - * David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences - *******************************************************************************/ -package org.eclipse.wst.jsdt.web.ui.internal.contentproperties.ui; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.wst.jsdt.web.core.internal.contentproperties.JSPFContentProperties; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.wst.jsdt.web.ui.internal.editor.IHelpContextIds; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.dialogs.PropertyPage; - -/** - * JSP Fragment Property Page - */ -public class JSPFContentSettingsPropertyPage extends PropertyPage { - private static final String SELECT_NONE = JSPUIMessages.JSPFContentSettingsPropertyPage_0; - - // TODO: Figure out what to do with these strings/variables - private String[] fLanguages = { SELECT_NONE, "java", //$NON-NLS-1$ - "javascript" }; //$NON-NLS-1$ - private String[] fContentTypes = { SELECT_NONE, "application/xhtml+xml", //$NON-NLS-1$ - "application/xml", //$NON-NLS-1$ - "text/html", //$NON-NLS-1$ - "text/xml", //$NON-NLS-1$ - "text/css" }; //$NON-NLS-1$ - - private class ButtonListener extends SelectionAdapter { - @Override - public void widgetSelected(SelectionEvent e) { - boolean specific = fSpecificSetting.getSelection(); - updateButtons(specific); - } - } - - private Combo fLanguageCombo; - private Combo fContentTypeCombo; - private Button fValidateFragments; - Button fSpecificSetting; - private SelectionListener fSpecificListener; - - public JSPFContentSettingsPropertyPage() { - super(); - setDescription(JSPUIMessages.JSPFContentSettingsPropertyPage_1); - } - - private Composite createComposite(Composite parent, int numColumns) { - Composite composite = new Composite(parent, SWT.NULL); - - // GridLayout - GridLayout layout = new GridLayout(); - layout.numColumns = numColumns; - composite.setLayout(layout); - - // GridData - GridData data = new GridData(GridData.FILL, GridData.FILL, true, false); - data.horizontalIndent = 0; - composite.setLayoutData(data); - - return composite; - } - - @Override - protected Control createContents(Composite parent) { - Composite propertyPage = createComposite(parent, 2); - - // fragment language control - Text languageLabel = new Text(propertyPage, SWT.READ_ONLY); - languageLabel.setText(JSPUIMessages.JSPFContentSettingsPropertyPage_2); - fLanguageCombo = new Combo(propertyPage, SWT.NONE); - GridData data = new GridData(GridData.FILL, GridData.FILL, true, false); - data.horizontalIndent = 0; - fLanguageCombo.setLayoutData(data); - fLanguageCombo.setItems(fLanguages); - - // fragment content type control - Text contentTypeLabel = new Text(propertyPage, SWT.READ_ONLY); - contentTypeLabel - .setText(JSPUIMessages.JSPFContentSettingsPropertyPage_3); - fContentTypeCombo = new Combo(propertyPage, SWT.NONE); - data = new GridData(GridData.FILL, GridData.FILL, true, false); - data.horizontalIndent = 0; - fContentTypeCombo.setLayoutData(data); - fContentTypeCombo.setItems(fContentTypes); - - // create separator - Label label = new Label(propertyPage, SWT.SEPARATOR | SWT.HORIZONTAL); - data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.horizontalSpan = 2; - data.verticalSpan = 8; - label.setLayoutData(data); - - // specific setting - fSpecificSetting = new Button(propertyPage, SWT.CHECK | SWT.LEFT); - fSpecificSetting - .setText(JSPUIMessages.JSPFContentSettingsPropertyPage_4); - data = new GridData(GridData.FILL, GridData.FILL, true, false); - data.horizontalSpan = 2; - fSpecificSetting.setLayoutData(data); - - fSpecificListener = new ButtonListener(); - fSpecificSetting.addSelectionListener(fSpecificListener); - - // validate file - fValidateFragments = new Button(propertyPage, SWT.CHECK | SWT.LEFT); - fValidateFragments.setText(JSPUIMessages.JSPFilesPreferencePage_1); - data = new GridData(GridData.FILL, GridData.FILL, true, false); - data.horizontalSpan = 2; - data.horizontalIndent = 5; - fValidateFragments.setLayoutData(data); - - initializeValues(); - - PlatformUI.getWorkbench().getHelpSystem().setHelp(propertyPage, - IHelpContextIds.JSP_FRAGMENT_HELPID); - Dialog.applyDialogFont(parent); - return propertyPage; - } - - void updateButtons(boolean enabled) { - fSpecificSetting.setSelection(enabled); - fValidateFragments.setEnabled(enabled); - } - - /** - * Get the resource this properties page is for - * - * @return IResource for this properties page or null if there is no - * IResource - */ - private IResource getResource() { - IResource resource = null; - if (getElement() instanceof IResource) { - resource = (IResource) getElement(); - } - return resource; - } - - private void initializeValues() { - String language = JSPFContentProperties.getProperty( - JSPFContentProperties.JSPLANGUAGE, getResource(), false); - if (language == null || language.length() == 0) { - // if null, use none - language = SELECT_NONE; - } - /* - * If item is already part of combo, select it. Otherwise, add to the - * combobox. - */ - int index = fLanguageCombo.indexOf(language); - if (index > -1) { - fLanguageCombo.select(index); - } else { - fLanguageCombo.setText(language); - } - - String contentType = JSPFContentProperties.getProperty( - JSPFContentProperties.JSPCONTENTTYPE, getResource(), false); - if (contentType == null || contentType.length() == 0) { - // if null, use none - contentType = SELECT_NONE; - } - /* - * If item is already part of combo, select it. Otherwise, add to the - * combobox. - */ - index = fContentTypeCombo.indexOf(contentType); - if (index > -1) { - fContentTypeCombo.select(index); - } else { - fContentTypeCombo.setText(contentType); - } - - String validate = JSPFContentProperties.getProperty( - JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), false); - String validate2 = JSPFContentProperties.getProperty( - JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), true); - if (validate == null || validate.length() == 0) { - updateButtons(false); - fValidateFragments.setSelection(Boolean.valueOf(validate2) - .booleanValue()); - } else { - updateButtons(true); - fValidateFragments.setSelection(Boolean.valueOf(validate) - .booleanValue()); - } - } - - @Override - protected void performDefaults() { - int index = fLanguageCombo.indexOf(SELECT_NONE); - if (index > -1) { - fLanguageCombo.select(index); - } - - index = fContentTypeCombo.indexOf(SELECT_NONE); - if (index > -1) { - fContentTypeCombo.select(index); - } - - updateButtons(false); - fValidateFragments.setSelection(true); - - super.performDefaults(); - } - - @Override - public boolean performOk() { - try { - // save the fragment language - String language = fLanguageCombo.getText(); - if (language == null || language.length() == 0 - || language.equalsIgnoreCase(SELECT_NONE)) { - // if none, use null - language = null; - } - JSPFContentProperties.setProperty( - JSPFContentProperties.JSPLANGUAGE, getResource(), language); - - // save fragment content type - String contentType = fContentTypeCombo.getText(); - if (contentType == null || contentType.length() == 0 - || contentType.equalsIgnoreCase(SELECT_NONE)) { - // if none, use null - contentType = null; - } - JSPFContentProperties.setProperty( - JSPFContentProperties.JSPCONTENTTYPE, getResource(), - contentType); - - String validate = null; - if (fSpecificSetting.getSelection()) { - validate = Boolean.toString(fValidateFragments.getSelection()); - } - JSPFContentProperties.setProperty( - JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), - validate); - } catch (CoreException e) { - // maybe in future, let user know there was a problem saving file - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - - return super.performOk(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java deleted file mode 100644 index 9447e3d09a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.contentproperties.ui; - -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; - -public class ProjectJSPFContentSettingsPropertyPage extends - JSPFContentSettingsPropertyPage { - public ProjectJSPFContentSettingsPropertyPage() { - setDescription(JSPUIMessages.ProjectJSPFContentSettingsPropertyPage_0); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/derived/SingleCharReader.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/derived/SingleCharReader.java deleted file mode 100644 index 08ff7bbf88..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/derived/SingleCharReader.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.derived; - -import java.io.IOException; -import java.io.Reader; - -/* - * Copied from org.eclipse.wst.jsdt.internal.corext.javadoc.SingleCharReader. - * Modification was made to fix statement unnecessarily nested within else - * clause warning in read(..). - */ -public abstract class SingleCharReader extends Reader { - - /** - * @see Reader#read() - */ - @Override - public abstract int read() throws IOException; - - /** - * @see Reader#read(char[],int,int) - */ - @Override - public int read(char cbuf[], int off, int len) throws IOException { - int end = off + len; - for (int i = off; i < end; i++) { - int ch = read(); - if (ch == -1) { - if (i == off) { - return -1; - } - return i - off; - } - cbuf[i] = (char) ch; - } - return len; - } - - /** - * @see Reader#ready() - */ - @Override - public boolean ready() throws IOException { - return true; - } - - /** - * Gets the content as a String - */ - public String getString() throws IOException { - StringBuffer buf = new StringBuffer(); - int ch; - while ((ch = read()) != -1) { - buf.append((char) ch); - } - return buf.toString(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/ActionContributorJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/ActionContributorJSP.java deleted file mode 100644 index 90ab3d2881..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/ActionContributorJSP.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.jsdt.web.ui.internal.editor; - -import java.util.ResourceBundle; - -import org.eclipse.wst.jsdt.ui.actions.RefactorActionGroup; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.wst.jsdt.web.ui.internal.IActionConstantsJSP; -import org.eclipse.wst.jsdt.web.ui.internal.IActionDefinitionIdsJSP; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.texteditor.RetargetTextEditorAction; -import org.eclipse.wst.html.ui.internal.edit.ui.ActionContributorHTML; -import org.eclipse.wst.sse.ui.internal.actions.StructuredTextEditorActionConstants; - -/** - * ActionContributorJSP - * - * This class should not be used inside multi page editor's - * ActionBarContributor, since cascaded init() call from the - * ActionBarContributor will causes exception and it leads to lose whole - * toolbars. - * - * Instead, use SourcePageActionContributor for source page contributor of multi - * page editor. - * - * Note that this class is still valid for single page editor. - */ -public class ActionContributorJSP extends ActionContributorHTML { - - private RetargetTextEditorAction renameElementAction = null; - private RetargetTextEditorAction moveElementAction = null; - private IMenuManager refactorMenu = null; - - private static final String[] EDITOR_IDS = { - "org.eclipse.wst.html.core.htmlsource.source", "org.eclipse.wst.sse.ui.StructuredTextEditor" }; //$NON-NLS-1$ //$NON-NLS-2$ - - public ActionContributorJSP() { - super(); - - ResourceBundle bundle = JSPUIMessages.getResourceBundle(); - this.renameElementAction = new RetargetTextEditorAction(bundle, - IActionConstantsJSP.ACTION_NAME_RENAME_ELEMENT - + StructuredTextEditorActionConstants.UNDERSCORE); - this.renameElementAction - .setActionDefinitionId(IActionDefinitionIdsJSP.RENAME_ELEMENT); - PlatformUI.getWorkbench().getHelpSystem().setHelp( - this.renameElementAction, - IHelpContextIds.JSP_REFACTORRENAME_HELPID); - - this.moveElementAction = new RetargetTextEditorAction(bundle, - IActionConstantsJSP.ACTION_NAME_MOVE_ELEMENT - + StructuredTextEditorActionConstants.UNDERSCORE); - this.moveElementAction - .setActionDefinitionId(IActionDefinitionIdsJSP.MOVE_ELEMENT); - PlatformUI.getWorkbench().getHelpSystem() - .setHelp(this.moveElementAction, - IHelpContextIds.JSP_REFACTORMOVE_HELPID); - - // the refactor menu, add the menu itself to add all refactor actions - this.refactorMenu = new MenuManager( - JSPUIMessages.ActionContributorJSP_0, - RefactorActionGroup.MENU_ID); - refactorMenu.add(this.renameElementAction); - refactorMenu.add(this.moveElementAction); - } - - @Override - protected String[] getExtensionIDs() { - return EDITOR_IDS; - } - - @Override - protected void addToMenu(IMenuManager menu) { - super.addToMenu(menu); - - menu.insertAfter(IWorkbenchActionConstants.M_EDIT, this.refactorMenu); - } - - @Override - public void setActiveEditor(IEditorPart activeEditor) { - - super.setActiveEditor(activeEditor); - this.renameElementAction.setAction(getAction( - getTextEditor(getActiveEditorPart()), - IActionConstantsJSP.ACTION_NAME_RENAME_ELEMENT)); - this.moveElementAction.setAction(getAction( - getTextEditor(getActiveEditorPart()), - IActionConstantsJSP.ACTION_NAME_MOVE_ELEMENT)); - } - - @Override - public void setViewerSpecificContributionsEnabled(boolean enabled) { - - super.setViewerSpecificContributionsEnabled(enabled); - this.renameElementAction.setEnabled(enabled); - this.moveElementAction.setEnabled(enabled); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/IHelpContextIds.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/IHelpContextIds.java deleted file mode 100644 index 4796555d7f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/IHelpContextIds.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.editor; - -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; - -/** - * Help context ids for the JSP Source Editor. - * <p> - * This interface contains constants only; it is not intended to be implemented. - * </p> - * - */ -public interface IHelpContextIds { - // org.eclipse.wst.jsdt.web.ui. - public static final String PREFIX = JSPUIPlugin.ID + "."; //$NON-NLS-1$ - - // // figured out on the fly - // // JSP Source page editor - // public static final String JSP_SOURCEVIEW_HELPID = - // ContentTypeIdForJSP.ContentTypeID_JSP +"_source_HelpId"; //$NON-NLS-1$ - - // JSP Files Preference page - public static final String JSP_PREFWEBX_FILES_HELPID = PREFIX + "webx0050"; //$NON-NLS-1$ - // JSP Styles Preference page - public static final String JSP_PREFWEBX_STYLES_HELPID = PREFIX + "webx0051"; //$NON-NLS-1$ - // JSP Templates Preference page - public static final String JSP_PREFWEBX_TEMPLATES_HELPID = PREFIX - + "webx0052"; //$NON-NLS-1$ - - // JSP Fragment Property Page - public static final String JSP_FRAGMENT_HELPID = PREFIX + "jspf1000"; //$NON-NLS-1$ - - // JSP Source Editor Context Menu - // Refactor Rename - public static final String JSP_REFACTORRENAME_HELPID = PREFIX + "jspr0010"; //$NON-NLS-1$ - - // Refactor Move - public static final String JSP_REFACTORMOVE_HELPID = PREFIX + "jspr0020"; //$NON-NLS-1$ - - // JSP New File Wizard - Template Page - public static final String JSP_NEWWIZARD_TEMPLATE_HELPID = PREFIX - + "jspw0010"; //$NON-NLS-1$ -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImageHelper.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImageHelper.java deleted file mode 100644 index 7452943d0b..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImageHelper.java +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.editor; - -import java.util.HashMap; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.resource.ImageRegistry; -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.swt.graphics.Image; -import org.eclipse.ui.plugin.AbstractUIPlugin; - -/** - * Helper class to handle images provided by this plug-in. - * - * NOTE: For internal use only. For images used externally, please use the - * Shared***ImageHelper class instead. - * - * @author amywu - */ -public class JSPEditorPluginImageHelper { - private final String PLUGINID = JSPUIPlugin.ID; - private static JSPEditorPluginImageHelper instance = null; - - // save a descriptor for each image - private HashMap fImageDescRegistry = null; - - /** - * Gets the instance. - * - * @return Returns a JSPEditorPluginImageHelper - */ - public synchronized static JSPEditorPluginImageHelper getInstance() { - if (instance == null) { - instance = new JSPEditorPluginImageHelper(); - } - return instance; - } - - /** - * Retrieves the image associated with resource from the image registry. If - * the image cannot be retrieved, attempt to find and load the image at the - * location specified in resource. - * - * @param resource - * the image to retrieve - * @return Image the image associated with resource or null if one could not - * be found - */ - public Image getImage(String resource) { - Image image = getImageRegistry().get(resource); - if (image == null) { - // create an image - image = createImage(resource); - } - return image; - } - - /** - * Retrieves the Image associated with ImageDescriptor from the image - * descriptor registry. If the Image cannot be retrieved, it is created from - * the ImageDescriptor - * - * @param resource - * the image descriptor to retrieve - * @return Image the associated with the ImageDescriptor or the default - * "missing" image descriptor if one could not be found - */ - public Image getImage(ImageDescriptor descriptor) { - if (descriptor == null) { - descriptor = ImageDescriptor.getMissingImageDescriptor(); - } - - Image result = (Image) getImageDescriptorRegistry().get(descriptor); - if (result != null) { - return result; - } - - result = descriptor.createImage(); - if (result != null) { - getImageDescriptorRegistry().put(descriptor, result); - } - return result; - } - - /** - * Retrieves the image descriptor associated with resource from the image - * descriptor registry. If the image descriptor cannot be retrieved, attempt - * to find and load the image descriptor at the location specified in - * resource. - * - * @param resource - * the image descriptor to retrieve - * @return ImageDescriptor the image descriptor assocated with resource or - * the default "missing" image descriptor if one could not be found - */ - public ImageDescriptor getImageDescriptor(String resource) { - ImageDescriptor imageDescriptor = null; - Object o = getImageDescriptorRegistry().get(resource); - if (o == null) { - // create a descriptor - imageDescriptor = createImageDescriptor(resource); - } else { - imageDescriptor = (ImageDescriptor) o; - } - return imageDescriptor; - } - - /** - * Returns the image descriptor registry for this plugin. - * - * @return HashMap - image descriptor registry for this plugin - */ - private HashMap getImageDescriptorRegistry() { - if (fImageDescRegistry == null) { - fImageDescRegistry = new HashMap(); - } - return fImageDescRegistry; - } - - /** - * Returns the image registry for this plugin. - * - * @return ImageRegistry - image registry for this plugin - */ - private ImageRegistry getImageRegistry() { - return JFaceResources.getImageRegistry(); - } - - /** - * Creates an image from the given resource and adds the image to the image - * registry. - * - * @param resource - * @return Image - */ - private Image createImage(String resource) { - ImageDescriptor desc = getImageDescriptor(resource); - Image image = null; - - if (desc != null) { - image = desc.createImage(); - // dont add the missing image descriptor image to the image registry - if (!desc.equals(ImageDescriptor.getMissingImageDescriptor())) { - getImageRegistry().put(resource, image); - } - } - return image; - } - - /** - * Creates an image descriptor from the given imageFilePath and adds the - * image descriptor to the image descriptor registry. If an image descriptor - * could not be created, the default "missing" image descriptor is returned - * but not added to the image descriptor registry. - * - * @param imageFilePath - * @return ImageDescriptor image descriptor for imageFilePath or default - * "missing" image descriptor if resource could not be found - */ - private ImageDescriptor createImageDescriptor(String imageFilePath) { - ImageDescriptor imageDescriptor = AbstractUIPlugin - .imageDescriptorFromPlugin(PLUGINID, imageFilePath); - if (imageDescriptor != null) { - getImageDescriptorRegistry().put(imageFilePath, imageDescriptor); - } else { - imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); - } - - return imageDescriptor; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImages.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImages.java deleted file mode 100644 index e41aed3383..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JSPEditorPluginImages.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.jsdt.web.ui.internal.editor; - -/** - * Bundle of most images used by the JSP Editor plug-in. - */ -public class JSPEditorPluginImages { - public static final String IMG_OBJ_CLASS_OBJ = "icons/full/obj16/class_obj.gif"; //$NON-NLS-1$ - public static final String IMG_OBJ_TAG_GENERIC = "icons/full/obj16/tag-generic.gif"; //$NON-NLS-1$ - public static final String IMG_OBJ_TAG_JSP = "icons/full/obj16/tag-jsp.gif"; //$NON-NLS-1$ - public static final String IMG_OBJ_TAG_TEMPLATE = "icons/full/obj16/tag-template.gif"; //$NON-NLS-1$ - public static final String IMG_OBJ_PUBLIC = "icons/full/obj16/public.gif"; //$NON-NLS-1$ - - public static final String FIELD_PROTECTED_OBJ = "icons/full/obj16/field_protected_obj.gif"; //$NON-NLS-1$ - public static final String FIELD_PUBLIC_OBJ = "icons/full/obj16/field_public_obj.gif"; //$NON-NLS-1$ - public static final String FIELD_DEFAULT_OBJ = "icons/full/obj16/field_default_obj.gif"; //$NON-NLS-1$ - public static final String FIELD_PRIVATE_OBJ = "icons/full/obj16/field_private_obj.gif"; //$NON-NLS-1$ - - public static final String DEFAULT_CO = "icons/full/obj16/default_co.gif"; //$NON-NLS-1$ - public static final String PROTECTED_CO = "icons/full/obj16/protected_co.gif"; //$NON-NLS-1$ - public static final String PUBLIC_CO = "icons/full/obj16/public_co.gif"; //$NON-NLS-1$ - public static final String PRIVATE_CO = "icons/full/obj16/private_co.gif"; //$NON-NLS-1$ - - public static final String INNERCLASS_DEFAULT_OBJ = "icons/full/obj16/innerclass_default_obj.gif"; //$NON-NLS-1$ - public static final String INNERCLASS_PRIVATE_OBJ = "icons/full/obj16/innerclass_private_obj.gif"; //$NON-NLS-1$ - public static final String INNERCLASS_PROTECTED_OBJ = "icons/full/obj16/innerclass_protected_obj.gif"; //$NON-NLS-1$ - public static final String INNERCLASS_PUBLIC_OBJ = "icons/full/obj16/innerclass_public_obj.gif"; //$NON-NLS-1$ - - public static final String INNERINTERFACE_DEFAULT_OBJ = "icons/full/obj16/innerinterface_default_obj.gif"; //$NON-NLS-1$ - public static final String INNERINTERFACE_PRIVATE_OBJ = "icons/full/obj16/innerinterface_private_obj.gif"; //$NON-NLS-1$ - public static final String INNERINTERFACE_PROTECTED_OBJ = "icons/full/obj16/innerinterface_protected_obj.gif"; //$NON-NLS-1$ - public static final String INNERINTERFACE_PUBLIC_OBJ = "icons/full/obj16/innerinterface_public_obj.gif"; //$NON-NLS-1$ - - public static final String PACKAGE_OBJ = "icons/full/obj16/package_obj.gif"; //$NON-NLS-1$ - - public static final String LOCAL_VARIABLE_OBJ = "icons/full/obj16/localvariable_obj.gif"; //$NON-NLS-1$ - - public static final String IMG_OBJ_WIZBAN_NEWJSPFILE = "icons/full/wizban/newjspfile_wiz.png"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JsSourceEditingTextTools.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JsSourceEditingTextTools.java deleted file mode 100644 index 648c0c4176..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/editor/JsSourceEditingTextTools.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.editor; - -import org.eclipse.wst.jsdt.web.core.internal.document.PageDirectiveAdapter; -import org.eclipse.wst.jsdt.web.core.internal.provisional.JSP11Namespace; -import org.eclipse.wst.jsdt.web.core.internal.provisional.JSP12Namespace; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * Implements ISourceEditingTextTools interface - */ -public class JsSourceEditingTextTools extends XMLSourceEditingTextTools { - /* Expected future functionality -- Remove JS Translation, and - * do the Text--> Compilation Unit conversion here - */ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSPJava.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSPJava.java deleted file mode 100644 index 0d2cb7c9c2..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSPJava.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.format; - -import java.util.LinkedList; -import java.util.Map; - -import org.eclipse.wst.jsdt.core.ICompilationUnit; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.wst.jsdt.core.ToolFactory; -import org.eclipse.wst.jsdt.core.formatter.CodeFormatter; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.TextUtilities; -import org.eclipse.jface.text.TypedPosition; -import org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy; -import org.eclipse.jface.text.formatter.FormattingContextProperties; -import org.eclipse.jface.text.formatter.IFormattingContext; -import org.eclipse.wst.jsdt.web.core.internal.Logger; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationUtil; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.TextEdit; - -public class FormattingStrategyJSPJava extends ContextBasedFormattingStrategy { - - /** Documents to be formatted by this strategy */ - private final LinkedList fDocuments = new LinkedList(); - /** Partitions to be formatted by this strategy */ - private final LinkedList fPartitions = new LinkedList(); - JSPTranslation translation = null; - - /** - * Creates a new java formatting strategy. - */ - public FormattingStrategyJSPJava() { - super(); - } - - /* - * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#format() - */ - @Override - public void format() { - super.format(); - - final IDocument document = (IDocument) fDocuments.removeFirst(); - final TypedPosition partition = (TypedPosition) fPartitions - .removeFirst(); - - if (document != null && partition != null) { - try { - - JSPTranslationUtil translationUtil = new JSPTranslationUtil( - document); - ICompilationUnit cu = translationUtil.getCompilationUnit(); - if (cu != null) { - String cuSource = cu.getSource(); - TextEdit textEdit = formatString( - CodeFormatter.K_COMPILATION_UNIT, cuSource, 0, - TextUtilities.getDefaultLineDelimiter(document), - getPreferences()); - - TextEdit jspEdit = translationUtil.getTranslation() - .getJspEdit(textEdit); - if (jspEdit != null && jspEdit.hasChildren()) { - jspEdit.apply(document); - } - } - - } catch (MalformedTreeException exception) { - Logger.logException(exception); - } catch (BadLocationException exception) { - // Can only happen on concurrent document modification - log - // and bail out - Logger.logException(exception); - } catch (JavaModelException exception) { - Logger.logException(exception); - } - } - } - - /* - * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStarts(org.eclipse.jface.text.formatter.IFormattingContext) - */ - @Override - public void formatterStarts(final IFormattingContext context) { - super.formatterStarts(context); - - fPartitions.addLast(context - .getProperty(FormattingContextProperties.CONTEXT_PARTITION)); - fDocuments.addLast(context - .getProperty(FormattingContextProperties.CONTEXT_MEDIUM)); - } - - /* - * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStops() - */ - @Override - public void formatterStops() { - super.formatterStops(); - - fPartitions.clear(); - fDocuments.clear(); - } - - public TextEdit formatString(int kind, String string, int indentationLevel, - String lineSeparator, Map options) { - return ToolFactory.createCodeFormatter(options).format(kind, string, 0, - string.length(), indentationLevel, lineSeparator); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileEditorInput.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileEditorInput.java deleted file mode 100644 index 3b9ebdd1c8..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileEditorInput.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.io.File; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IPathEditorInput; -import org.eclipse.ui.IPersistableElement; -import org.eclipse.ui.editors.text.ILocationProvider; -import org.eclipse.ui.model.IWorkbenchAdapter; - -/** - * EditorInput for external files. Copied from - * org.eclipse.ui.internal.editors.text.JavaFileEditorInput - */ -class ExternalFileEditorInput implements IEditorInput, ILocationProvider { - // copies of this class exist in: - // org.eclipse.wst.xml.ui.internal.hyperlink - // org.eclipse.wst.html.ui.internal.hyperlink - // org.eclipse.wst.jsdt.web.ui.internal.hyperlink - - /** - * The workbench adapter which simply provides the label. - * - * @see Eclipse 3.1 - */ - private class WorkbenchAdapter implements IWorkbenchAdapter { - /* - * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object) - */ - public Object[] getChildren(Object o) { - return null; - } - - /* - * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object) - */ - public ImageDescriptor getImageDescriptor(Object object) { - return null; - } - - /* - * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object) - */ - public String getLabel(Object o) { - return ((ExternalFileEditorInput) o).getName(); - } - - /* - * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object) - */ - public Object getParent(Object o) { - return null; - } - } - - private File fFile; - private WorkbenchAdapter fWorkbenchAdapter = new WorkbenchAdapter(); - - public ExternalFileEditorInput(File file) { - super(); - fFile = file; - fWorkbenchAdapter = new WorkbenchAdapter(); - } - - /* - * @see org.eclipse.ui.IEditorInput#exists() - */ - public boolean exists() { - return fFile.exists(); - } - - /* - * @see org.eclipse.ui.IEditorInput#getImageDescriptor() - */ - public ImageDescriptor getImageDescriptor() { - return null; - } - - /* - * @see org.eclipse.ui.IEditorInput#getName() - */ - public String getName() { - return fFile.getName(); - } - - /* - * @see org.eclipse.ui.IEditorInput#getPersistable() - */ - public IPersistableElement getPersistable() { - return null; - } - - /* - * @see org.eclipse.ui.IEditorInput#getToolTipText() - */ - public String getToolTipText() { - return fFile.getAbsolutePath(); - } - - /* - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) - */ - public Object getAdapter(Class adapter) { - if (ILocationProvider.class.equals(adapter)) { - return this; - } - if (IWorkbenchAdapter.class.equals(adapter)) { - return fWorkbenchAdapter; - } - return Platform.getAdapterManager().getAdapter(this, adapter); - } - - /* - * @see org.eclipse.ui.editors.text.ILocationProvider#getPath(java.lang.Object) - */ - public IPath getPath(Object element) { - if (element instanceof ExternalFileEditorInput) { - ExternalFileEditorInput input = (ExternalFileEditorInput) element; - return Path.fromOSString(input.fFile.getAbsolutePath()); - } - return null; - } - - /* - * @see org.eclipse.ui.IPathEditorInput#getPath() - * @since 3.1 - */ - public IPath getPath() { - return Path.fromOSString(fFile.getAbsolutePath()); - } - - /* - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - - if (o instanceof ExternalFileEditorInput) { - ExternalFileEditorInput input = (ExternalFileEditorInput) o; - return fFile.equals(input.fFile); - } - - if (o instanceof IPathEditorInput) { - IPathEditorInput input = (IPathEditorInput) o; - return getPath().equals(input.getPath()); - } - - return false; - } - - /* - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - return fFile.hashCode(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileHyperlink.java deleted file mode 100644 index 76bfa98434..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/ExternalFileHyperlink.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.io.File; - -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.IDE; - -/** - * Hyperlink for external files. - */ -class ExternalFileHyperlink implements IHyperlink { - // copies of this class exist in: - // org.eclipse.wst.xml.ui.internal.hyperlink - // org.eclipse.wst.html.ui.internal.hyperlink - // org.eclipse.wst.jsdt.web.ui.internal.hyperlink - - private IRegion fHyperlinkRegion; - private File fHyperlinkFile; - - public ExternalFileHyperlink(IRegion region, File file) { - fHyperlinkFile = file; - fHyperlinkRegion = region; - } - - public IRegion getHyperlinkRegion() { - return fHyperlinkRegion; - } - - public String getTypeLabel() { - return null; - } - - public String getHyperlinkText() { - return null; - } - - public void open() { - if (fHyperlinkFile != null) { - IEditorInput input = new ExternalFileEditorInput(fHyperlinkFile); - IEditorDescriptor descriptor; - try { - descriptor = IDE.getEditorDescriptor(input.getName(), true); - if (descriptor != null) { - IWorkbenchPage page = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IDE.openEditor(page, input, descriptor.getId(), true); - } - } catch (PartInitException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlink.java deleted file mode 100644 index f8df0bf979..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlink.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.ui.JavaUI; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorPart; - -/** - * Hyperlink for JSP Java elements - */ -class JSPJavaHyperlink implements IHyperlink { - private IRegion fRegion; - private IJavaElement fElement; - - public JSPJavaHyperlink(IRegion region, IJavaElement element) { - fRegion = region; - fElement = element; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkRegion() - */ - public IRegion getHyperlinkRegion() { - return fRegion; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel() - */ - public String getTypeLabel() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText() - */ - public String getHyperlinkText() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#open() - */ - public void open() { - try { - IEditorPart editor = JavaUI.openInEditor(fElement); - if (editor != null) { - JavaUI.revealInEditor(editor, fElement); - } - } catch (Exception e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java deleted file mode 100644 index 78fcd0bea7..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java +++ /dev/null @@ -1,268 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.jsdt.core.IField; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.ILocalVariable; -import org.eclipse.wst.jsdt.core.IMethod; -import org.eclipse.wst.jsdt.core.ISourceRange; -import org.eclipse.wst.jsdt.core.ISourceReference; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.Region; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.jface.text.hyperlink.IHyperlinkDetector; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.util.URIResolver; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -/** - * Detects hyperlinks in JSP Java content - */ -public class JSPJavaHyperlinkDetector implements IHyperlinkDetector { - - private IHyperlink createHyperlink(IJavaElement element, IRegion region, - IDocument document) { - IHyperlink link = null; - if (region != null) { - // open local variable in the JSP file... - if (element instanceof ISourceReference) { - IFile file = null; - int jspOffset = 0; - IStructuredModel sModel = null; - - // try to locate the file in the workspace - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - if (sModel != null) { - URIResolver resolver = sModel.getResolver(); - if (resolver != null) { - String uriString = resolver.getFileBaseLocation(); - file = getFile(uriString); - } - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - - // get Java range, translate coordinate to JSP - - try { - ISourceRange range = null; - IJSPTranslation jspTranslation = getJSPTranslation(document); - if (jspTranslation != null) { - // link to local variable definitions - if (element instanceof ILocalVariable) { - range = ((ILocalVariable) element).getNameRange(); - } - // linking to fields of the same compilation unit - else if (element.getElementType() == IJavaElement.FIELD) { - Object cu = ((IField) element).getCompilationUnit(); - if (cu != null - && cu.equals(jspTranslation - .getCompilationUnit())) { - range = ((ISourceReference) element) - .getSourceRange(); - } - } - // linking to methods of the same compilation unit - else if (element.getElementType() == IJavaElement.METHOD) { - Object cu = ((IMethod) element) - .getCompilationUnit(); - if (cu != null - && cu.equals(jspTranslation - .getCompilationUnit())) { - range = ((ISourceReference) element) - .getSourceRange(); - } - } - } - - if (range != null && file != null) { - jspOffset = jspTranslation.getJspOffset(range - .getOffset()); - if (jspOffset >= 0) { - link = new WorkspaceFileHyperlink(region, file, - new Region(jspOffset, range.getLength())); - } - } - } catch (JavaModelException jme) { - Logger.log(Logger.WARNING_DEBUG, jme.getMessage(), jme); - } - } - if (link == null) { - link = new JSPJavaHyperlink(region, element); - } - } - return link; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlinkDetector#detectHyperlinks(org.eclipse.jface.text.ITextViewer, - * org.eclipse.jface.text.IRegion, boolean) - */ - public IHyperlink[] detectHyperlinks(ITextViewer textViewer, - IRegion region, boolean canShowMultipleHyperlinks) { - List hyperlinks = new ArrayList(0); - - if (region != null && textViewer != null) { - IDocument document = textViewer.getDocument(); - - // check and make sure this is a valid Java type - JSPTranslation jspTranslation = getJSPTranslation(document); - if (jspTranslation != null) { - // check if we are in JSP Java content - int javaOffset = jspTranslation.getJavaOffset(region - .getOffset()); - if (javaOffset > -1) { - // check that we are not in indirect Java content (like - // included files) - if (!jspTranslation.isIndirect(javaOffset)) { - // get Java elements - IJavaElement[] elements = jspTranslation - .getElementsFromJspRange(region.getOffset(), - region.getOffset() + region.getLength()); - if (elements != null && elements.length > 0) { - // create a JSPJavaHyperlink for each Java element - for (int i = 0; i < elements.length; ++i) { - IJavaElement element = elements[i]; - - // find hyperlink range for Java element - IRegion hyperlinkRegion = selectWord(document, - region.getOffset()); - IHyperlink link = createHyperlink(element, - hyperlinkRegion, document); - if (link != null) { - hyperlinks.add(link); - } - } - } - } - } - } - } - - if (hyperlinks.size() == 0) { - return null; - } - return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]); - } - - /** - * Returns an IFile from the given uri if possible, null if cannot find file - * from uri. - * - * @param fileString - * file system path - * @return returns IFile if fileString exists in the workspace - */ - private IFile getFile(String fileString) { - IFile file = null; - - if (fileString != null) { - IFile[] files = ResourcesPlugin.getWorkspace().getRoot() - .findFilesForLocation(new Path(fileString)); - for (int i = 0; i < files.length && file == null; i++) { - if (files[i].exists()) { - file = files[i]; - } - } - } - - return file; - } - - /** - * Get JSP translation object - * - * @return JSPTranslation if one exists, null otherwise - */ - private JSPTranslation getJSPTranslation(IDocument document) { - JSPTranslation translation = null; - - IDOMModel xmlModel = null; - try { - xmlModel = (IDOMModel) StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - if (xmlModel != null) { - IDOMDocument xmlDoc = xmlModel.getDocument(); - JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc - .getAdapterFor(IJSPTranslation.class); - if (adapter != null) { - translation = adapter.getJSPTranslation(); - } - } - } finally { - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } - } - return translation; - } - - /** - * Java always selects word when defining region - * - * @param document - * @param anchor - * @return IRegion - */ - private IRegion selectWord(IDocument document, int anchor) { - - try { - int offset = anchor; - char c; - - while (offset >= 0) { - c = document.getChar(offset); - if (!Character.isJavaIdentifierPart(c)) { - break; - } - --offset; - } - - int start = offset; - - offset = anchor; - int length = document.getLength(); - - while (offset < length) { - c = document.getChar(offset); - if (!Character.isJavaIdentifierPart(c)) { - break; - } - ++offset; - } - - int end = offset; - - if (start == end) { - return new Region(start, 0); - } - - return new Region(start + 1, end - start - 1); - - } catch (BadLocationException x) { - return null; - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarHyperlink.java deleted file mode 100644 index b7e8bc4ed5..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarHyperlink.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.io.File; -import java.io.InputStream; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.IDE; - -/** - * Hyperlink for taglib files in jars. - */ -class TaglibJarHyperlink implements IHyperlink { - static class ZipStorage implements IStorage { - File fFile = null; - String fEntryName = null; - - ZipStorage(File file, String entryName) { - fFile = file; - fEntryName = entryName; - } - - public InputStream getContents() throws CoreException { - InputStream stream = null; - try { - ZipFile file = new ZipFile(fFile); - ZipEntry entry = file.getEntry(fEntryName); - stream = file.getInputStream(entry); - } catch (Exception e) { - throw new CoreException(new Status(IStatus.ERROR, JSPUIPlugin - .getDefault().getBundle().getSymbolicName(), - IStatus.ERROR, getFullPath().toString(), e)); - } - return stream; - } - - public IPath getFullPath() { - return new Path(fFile.getAbsolutePath() + IPath.SEPARATOR - + fEntryName); - } - - public String getName() { - return fEntryName; - } - - public boolean isReadOnly() { - return true; - } - - public Object getAdapter(Class adapter) { - return null; - } - } - - private IRegion fRegion; - private IPath fZipFilePath; - - public TaglibJarHyperlink(IRegion region, IPath zipFilePath) { - fRegion = region; - fZipFilePath = zipFilePath; - } - - public IRegion getHyperlinkRegion() { - return fRegion; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel() - */ - public String getTypeLabel() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText() - */ - public String getHyperlinkText() { - // TODO Auto-generated method stub - return null; - } - - public void open() { - IEditorInput input = new URLFileHyperlink.StorageEditorInput( - new ZipStorage(fZipFilePath.toFile(), "META-INF/taglib.tld")); //$NON-NLS-1$ - IEditorDescriptor descriptor; - try { - descriptor = IDE.getEditorDescriptor(input.getName()); - if (descriptor != null) { - IWorkbenchPage page = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IDE.openEditor(page, input, descriptor.getId(), true); - } - } catch (PartInitException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarUriHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarUriHyperlink.java deleted file mode 100644 index df6ee7d258..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/TaglibJarUriHyperlink.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.core.taglib.IJarRecord; -import org.eclipse.wst.jsdt.web.core.taglib.ITaglibRecord; -import org.eclipse.wst.jsdt.web.core.taglib.IURLRecord; - -/** - * Hyperlink for taglib files in jars or specified by urls. - */ -class TaglibJarUriHyperlink implements IHyperlink { - private IRegion fRegion; - private ITaglibRecord fTaglibRecord; - private IHyperlink fHyperlink; - - public TaglibJarUriHyperlink(IRegion region, ITaglibRecord record) { - fRegion = region; - fTaglibRecord = record; - } - - private IHyperlink getHyperlink() { - if (fHyperlink == null && fTaglibRecord != null) { - switch (fTaglibRecord.getRecordType()) { - case (ITaglibRecord.JAR): { - IJarRecord record = (IJarRecord) fTaglibRecord; - fHyperlink = new TaglibJarHyperlink(fRegion, record - .getLocation()); - } - break; - case (ITaglibRecord.URL): { - IURLRecord record = (IURLRecord) fTaglibRecord; - fHyperlink = new URLFileHyperlink(fRegion, record.getURL()); - } - } - } - return fHyperlink; - } - - public IRegion getHyperlinkRegion() { - IRegion region = null; - - IHyperlink link = getHyperlink(); - if (link != null) { - region = link.getHyperlinkRegion(); - } - return region; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel() - */ - public String getTypeLabel() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText() - */ - public String getHyperlinkText() { - // TODO Auto-generated method stub - return null; - } - - public void open() { - IHyperlink link = getHyperlink(); - if (link != null) { - link.open(); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/URLFileHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/URLFileHyperlink.java deleted file mode 100644 index bc1a1953c7..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/URLFileHyperlink.java +++ /dev/null @@ -1,163 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.io.InputStream; -import java.net.URL; - -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IPersistableElement; -import org.eclipse.ui.IStorageEditorInput; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.IDE; - -/** - * Hyperlink for URLs (opens in read-only mode) - */ -class URLFileHyperlink implements IHyperlink { - // copies of this class exist in: - // org.eclipse.wst.xml.ui.internal.hyperlink - // org.eclipse.wst.html.ui.internal.hyperlink - // org.eclipse.wst.jsdt.web.ui.internal.hyperlink - - static class StorageEditorInput implements IStorageEditorInput { - IStorage fStorage = null; - - StorageEditorInput(IStorage storage) { - fStorage = storage; - } - - public IStorage getStorage() throws CoreException { - return fStorage; - } - - public boolean exists() { - return fStorage != null; - } - - public ImageDescriptor getImageDescriptor() { - return null; - } - - public String getName() { - return fStorage.getName(); - } - - public IPersistableElement getPersistable() { - return null; - } - - public String getToolTipText() { - return fStorage.getFullPath() != null ? fStorage.getFullPath() - .toString() : fStorage.getName(); - } - - public Object getAdapter(Class adapter) { - return null; - } - } - - static class URLStorage implements IStorage { - URL fURL = null; - - URLStorage(URL url) { - fURL = url; - } - - public InputStream getContents() throws CoreException { - InputStream stream = null; - try { - stream = fURL.openStream(); - } catch (Exception e) { - throw new CoreException(new Status(IStatus.ERROR, JSPUIPlugin - .getDefault().getBundle().getSymbolicName(), - IStatus.ERROR, fURL.toString(), e)); - } - return stream; - } - - public IPath getFullPath() { - return new Path(fURL.toString()); - } - - public String getName() { - return new Path(fURL.getFile()).lastSegment(); - } - - public boolean isReadOnly() { - return true; - } - - public Object getAdapter(Class adapter) { - return null; - } - - } - - private IRegion fRegion; - private URL fURL; - - public URLFileHyperlink(IRegion region, URL url) { - fRegion = region; - fURL = url; - } - - public IRegion getHyperlinkRegion() { - return fRegion; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel() - */ - public String getTypeLabel() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText() - */ - public String getHyperlinkText() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#open() - */ - public void open() { - if (fURL != null) { - IEditorInput input = new StorageEditorInput(new URLStorage(fURL)); - IEditorDescriptor descriptor; - try { - descriptor = IDE.getEditorDescriptor(input.getName()); - if (descriptor != null) { - IWorkbenchPage page = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IDE.openEditor(page, input, descriptor.getId(), true); - } - } catch (PartInitException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/WorkspaceFileHyperlink.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/WorkspaceFileHyperlink.java deleted file mode 100644 index bf0211ffd0..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/WorkspaceFileHyperlink.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.IDE; -import org.eclipse.ui.texteditor.ITextEditor; - -/** - * Hyperlink for files within the workspace. (As long as there is an IFile, this - * can be used) Opens the default editor for the file. - */ -class WorkspaceFileHyperlink implements IHyperlink { - // copies of this class exist in: - // org.eclipse.wst.xml.ui.internal.hyperlink - // org.eclipse.wst.html.ui.internal.hyperlink - // org.eclipse.wst.jsdt.web.ui.internal.hyperlink - - private IRegion fRegion; - private IFile fFile; - private IRegion fHighlightRange; - - public WorkspaceFileHyperlink(IRegion region, IFile file) { - fRegion = region; - fFile = file; - } - - public WorkspaceFileHyperlink(IRegion region, IFile file, IRegion range) { - fRegion = region; - fFile = file; - fHighlightRange = range; - } - - public IRegion getHyperlinkRegion() { - return fRegion; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel() - */ - public String getTypeLabel() { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText() - */ - public String getHyperlinkText() { - // TODO Auto-generated method stub - return null; - } - - public void open() { - if (fFile != null && fFile.exists()) { - try { - IWorkbenchPage page = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IEditorPart editor = IDE.openEditor(page, fFile, true); - // highlight range in editor if possible - if (fHighlightRange != null && editor instanceof ITextEditor) { - ((ITextEditor) editor).setHighlightRange(fHighlightRange - .getOffset(), fHighlightRange.getLength(), true); - } - } catch (PartInitException pie) { - Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie); - } - } - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/XMLHyperlinkDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/XMLHyperlinkDetector.java deleted file mode 100644 index d68b183b48..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/XMLHyperlinkDetector.java +++ /dev/null @@ -1,534 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.hyperlink; - -import java.io.File; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.Region; -import org.eclipse.jface.text.hyperlink.IHyperlink; -import org.eclipse.jface.text.hyperlink.IHyperlinkDetector; -import org.eclipse.jface.text.hyperlink.URLHyperlink; -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.utils.StringUtils; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Attr; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -/** - * Detects hyperlinks in XML tags. Includes detection in DOCTYPE and attribute - * values. Resolves references to schemas, dtds, etc using the Common URI - * Resolver. - * - */ -public class XMLHyperlinkDetector implements IHyperlinkDetector { - // copies of this class exist in: - // org.eclipse.wst.xml.ui.internal.hyperlink - // org.eclipse.wst.html.ui.internal.hyperlink - // org.eclipse.wst.jsdt.web.ui.internal.hyperlink - - private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$ - private final String NO_NAMESPACE_SCHEMA_LOCATION = "noNamespaceSchemaLocation"; //$NON-NLS-1$ - private final String SCHEMA_LOCATION = "schemaLocation"; //$NON-NLS-1$ - private final String XMLNS = "xmlns"; //$NON-NLS-1$ - private final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$ - - /** - * Create the appropriate hyperlink - * - * @param uriString - * @param hyperlinkRegion - * @return IHyperlink - */ - private IHyperlink createHyperlink(String uriString, - IRegion hyperlinkRegion, IDocument document, Node node) { - IHyperlink link = null; - - if (isHttp(uriString)) { - link = new URLHyperlink(hyperlinkRegion, uriString); - } else { - // try to locate the file in the workspace - File systemFile = getFileFromUriString(uriString); - if (systemFile != null) { - String systemPath = systemFile.getPath(); - IFile file = getFile(systemPath); - if (file != null) { - // this is a WorkspaceFileHyperlink since file exists in - // workspace - link = new WorkspaceFileHyperlink(hyperlinkRegion, file); - } else { - // this is an ExternalFileHyperlink since file does not - // exist in workspace - link = new ExternalFileHyperlink(hyperlinkRegion, - systemFile); - } - } - } - return link; - } - - public IHyperlink[] detectHyperlinks(ITextViewer textViewer, - IRegion region, boolean canShowMultipleHyperlinks) { - // for now, only capable of creating 1 hyperlink - List hyperlinks = new ArrayList(0); - - if (region != null && textViewer != null) { - IDocument document = textViewer.getDocument(); - Node currentNode = getCurrentNode(document, region.getOffset()); - if (currentNode != null) { - String uriString = null; - if (currentNode.getNodeType() == Node.DOCUMENT_TYPE_NODE) { - // doctype nodes - uriString = getURIString(currentNode, document); - } else if (currentNode.getNodeType() == Node.ELEMENT_NODE) { - // element nodes - Attr currentAttr = getCurrentAttrNode(currentNode, region - .getOffset()); - if (currentAttr != null) { - // try to find link for current attribute - // resolve attribute value - uriString = getURIString(currentAttr, document); - // verify validity of uri string - if (uriString == null || !isValidURI(uriString)) { - // reset current attribute - currentAttr = null; - } - } - if (currentAttr == null) { - // try to find a linkable attribute within element - currentAttr = getLinkableAttr((Element) currentNode); - if (currentAttr != null) { - uriString = getURIString(currentAttr, document); - } - } - currentNode = currentAttr; - } - // try to create hyperlink from information gathered - if (uriString != null && currentNode != null - && isValidURI(uriString)) { - IRegion hyperlinkRegion = getHyperlinkRegion(currentNode); - IHyperlink hyperlink = createHyperlink(uriString, - hyperlinkRegion, document, currentNode); - if (hyperlink != null) { - hyperlinks.add(hyperlink); - } - } - } - } - if (hyperlinks.size() == 0) { - return null; - } - return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]); - } - - /** - * Get the base location from the current model (local file system) - */ - private String getBaseLocation(IDocument document) { - String baseLoc = null; - - // get the base location from the current model - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - if (sModel != null) { - IPath location = new Path(sModel.getBaseLocation()); - if (location.toFile().exists()) { - baseLoc = location.toString(); - } else { - if (location.segmentCount() > 1) { - baseLoc = ResourcesPlugin.getWorkspace().getRoot() - .getFile(location).getLocation().toString(); - } else { - baseLoc = ResourcesPlugin.getWorkspace().getRoot() - .getLocation().append(location).toString(); - } - } - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - return baseLoc; - } - - /** - * Get the CMElementDeclaration for an element - * - * @param element - * @return CMElementDeclaration - */ - private CMElementDeclaration getCMElementDeclaration(Element element) { - CMElementDeclaration ed = null; - - ModelQuery mq = ModelQueryUtil - .getModelQuery(element.getOwnerDocument()); - if (mq != null) { - ed = mq.getCMElementDeclaration(element); - } - return ed; - } - - /** - * Returns the attribute node within node at offset - * - * @param node - * @param offset - * @return Attr - */ - private Attr getCurrentAttrNode(Node node, int offset) { - if ((node instanceof IndexedRegion) - && ((IndexedRegion) node).contains(offset) - && (node.hasAttributes())) { - NamedNodeMap attrs = node.getAttributes(); - // go through each attribute in node and if attribute contains - // offset, return that attribute - for (int i = 0; i < attrs.getLength(); ++i) { - // assumption that if parent node is of type IndexedRegion, - // then its attributes will also be of type IndexedRegion - IndexedRegion attRegion = (IndexedRegion) attrs.item(i); - if (attRegion.contains(offset)) { - return (Attr) attrs.item(i); - } - } - } - return null; - } - - /** - * Returns the node the cursor is currently on in the document. null if no - * node is selected - * - * @param offset - * @return Node either element, doctype, text, or null - */ - private Node getCurrentNode(IDocument document, int offset) { - // get the current node at the offset (returns either: element, - // doctype, text) - IndexedRegion inode = null; - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - inode = sModel.getIndexedRegion(offset); - if (inode == null) { - inode = sModel.getIndexedRegion(offset - 1); - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - - if (inode instanceof Node) { - return (Node) inode; - } - return null; - } - - /** - * Returns an IFile from the given uri if possible, null if cannot find file - * from uri. - * - * @param fileString - * file system path - * @return returns IFile if fileString exists in the workspace - */ - private IFile getFile(String fileString) { - IFile file = null; - - if (fileString != null) { - IFile[] files = ResourcesPlugin.getWorkspace().getRoot() - .findFilesForLocation(new Path(fileString)); - for (int i = 0; i < files.length && file == null; i++) { - if (files[i].exists()) { - file = files[i]; - } - } - } - - return file; - } - - /** - * Create a file from the given uri string - * - * @param uriString - - * assumes uriString is not http:// - * @return File created from uriString if possible, null otherwise - */ - private File getFileFromUriString(String uriString) { - File file = null; - try { - // first just try to create a file directly from uriString as - // default in case create file from uri does not work - file = new File(uriString); - - // try to create file from uri - URI uri = new URI(uriString); - file = new File(uri); - } catch (Exception e) { - // if exception is thrown while trying to create File just ignore - // and file will be null - } - return file; - } - - private IRegion getHyperlinkRegion(Node node) { - IRegion hyperRegion = null; - - if (node != null) { - short nodeType = node.getNodeType(); - if (nodeType == Node.DOCUMENT_TYPE_NODE) { - // handle doc type node - IDOMNode docNode = (IDOMNode) node; - hyperRegion = new Region(docNode.getStartOffset(), docNode - .getEndOffset() - - docNode.getStartOffset()); - } else if (nodeType == Node.ATTRIBUTE_NODE) { - // handle attribute nodes - IDOMAttr att = (IDOMAttr) node; - // do not include quotes in attribute value region - int regOffset = att.getValueRegionStartOffset(); - ITextRegion valueRegion = att.getValueRegion(); - if (valueRegion != null) { - int regLength = valueRegion.getTextLength(); - String attValue = att.getValueRegionText(); - if (StringUtils.isQuoted(attValue)) { - ++regOffset; - regLength = regLength - 2; - } - hyperRegion = new Region(regOffset, regLength); - } - } - } - return hyperRegion; - } - - /** - * Attempts to find an attribute within element that is openable. - * - * @param element - - * cannot be null - * @return Attr attribute that can be used for open on, null if no attribute - * could be found - */ - private Attr getLinkableAttr(Element element) { - CMElementDeclaration ed = getCMElementDeclaration(element); - // get the list of attributes for this node - NamedNodeMap attrs = element.getAttributes(); - for (int i = 0; i < attrs.getLength(); ++i) { - // check if this attribute is "openOn-able" - Attr att = (Attr) attrs.item(i); - if (isLinkableAttr(att, ed)) { - return att; - } - } - return null; - } - - /** - * Find the location hint for the given namespaceURI if it exists - * - * @param elementNode - - * cannot be null - * @param namespaceURI - - * cannot be null - * @return location hint (systemId) if it was found, null otherwise - */ - private String getLocationHint(Element elementNode, String namespaceURI) { - Attr schemaLocNode = elementNode.getAttributeNodeNS(XSI_NAMESPACE_URI, - SCHEMA_LOCATION); - if (schemaLocNode != null) { - StringTokenizer st = new StringTokenizer(schemaLocNode.getValue()); - while (st.hasMoreTokens()) { - String publicId = st.hasMoreTokens() ? st.nextToken() : null; - String systemId = st.hasMoreTokens() ? st.nextToken() : null; - // found location hint - if (namespaceURI.equalsIgnoreCase(publicId)) { - return systemId; - } - } - } - return null; - } - - /** - * Returns the URI string - * - * @param node - - * assumes not null - */ - private String getURIString(Node node, IDocument document) { - String resolvedURI = null; - // need the base location, publicId, and systemId for URIResolver - String baseLoc = null; - String publicId = null; - String systemId = null; - - short nodeType = node.getNodeType(); - // handle doc type node - if (nodeType == Node.DOCUMENT_TYPE_NODE) { - baseLoc = getBaseLocation(document); - publicId = ((DocumentType) node).getPublicId(); - systemId = ((DocumentType) node).getSystemId(); - } else if (nodeType == Node.ATTRIBUTE_NODE) { - // handle attribute node - Attr attrNode = (Attr) node; - String attrName = attrNode.getName(); - String attrValue = attrNode.getValue(); - attrValue = StringUtils.strip(attrValue); - if (attrValue != null && attrValue.length() > 0) { - baseLoc = getBaseLocation(document); - - // handle schemaLocation attribute - String prefix = DOMNamespaceHelper.getPrefix(attrName); - String unprefixedName = DOMNamespaceHelper - .getUnprefixedName(attrName); - if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName))) { - publicId = attrValue; - systemId = getLocationHint(attrNode.getOwnerElement(), - publicId); - if (systemId == null) { - systemId = attrValue; - } - } else if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper - .getNamespaceURI(attrNode))) - && (SCHEMA_LOCATION.equals(unprefixedName))) { - // for now just use the first pair - // need to look into being more precise - StringTokenizer st = new StringTokenizer(attrValue); - publicId = st.hasMoreTokens() ? st.nextToken() : null; - systemId = st.hasMoreTokens() ? st.nextToken() : null; - // else check if xmlns publicId = value - } else { - systemId = attrValue; - } - } - } - - resolvedURI = resolveURI(baseLoc, publicId, systemId); - return resolvedURI; - } - - /** - * Returns true if this uriString is an http string - * - * @param uriString - * @return true if uriString is http string, false otherwise - */ - private boolean isHttp(String uriString) { - boolean isHttp = false; - if (uriString != null) { - String tempString = uriString.toLowerCase(); - if (tempString.startsWith(HTTP_PROTOCOL)) { - isHttp = true; - } - } - return isHttp; - } - - /** - * Checks to see if the given attribute is openable. Attribute is openable - * if it is a namespace declaration attribute or if the attribute value is - * of type URI. - * - * @param attr - * cannot be null - * @param cmElement - * CMElementDeclaration associated with the attribute (can be - * null) - * @return true if this attribute is "openOn-able" false otherwise - */ - private boolean isLinkableAttr(Attr attr, CMElementDeclaration cmElement) { - String attrName = attr.getName(); - String prefix = DOMNamespaceHelper.getPrefix(attrName); - String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName); - // determine if attribute is namespace declaration - if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName))) { - return true; - } - - // determine if attribute contains schema location - if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attr))) - && ((SCHEMA_LOCATION.equals(unprefixedName)) || (NO_NAMESPACE_SCHEMA_LOCATION - .equals(unprefixedName)))) { - return true; - } - - // determine if attribute value is of type URI - if (cmElement != null) { - CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) cmElement - .getAttributes().getNamedItem(attrName); - if ((attrDecl != null) - && (attrDecl.getAttrType() != null) - && (CMDataType.URI.equals(attrDecl.getAttrType() - .getDataTypeName()))) { - return true; - } - } - return false; - } - - /** - * Checks whether the given uriString is really pointing to a file - * - * @param uriString - * @return boolean - */ - private boolean isValidURI(String uriString) { - boolean isValid = false; - - if (isHttp(uriString)) { - isValid = true; - } else { - File file = getFileFromUriString(uriString); - if (file != null) { - isValid = file.isFile(); - } - } - return isValid; - } - - /** - * Resolves the given URI information - * - * @param baseLocation - * @param publicId - * @param systemId - * @return String resolved uri. - */ - private String resolveURI(String baseLocation, String publicId, - String systemId) { - // dont resolve if there's nothing to resolve - if ((baseLocation == null) && (publicId == null) && (systemId == null)) { - return null; - } - return URIResolverPlugin.createResolver().resolve(baseLocation, - publicId, systemId); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java deleted file mode 100644 index f233ecee5d..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java +++ /dev/null @@ -1,405 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.core.search.SearchDocument; -import org.eclipse.wst.jsdt.core.search.SearchMatch; -import org.eclipse.wst.jsdt.core.search.SearchRequestor; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JavaSearchDocumentDelegate; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.DocumentChange; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; -import org.eclipse.osgi.util.NLS; -import org.eclipse.text.edits.MalformedTreeException; -import org.eclipse.text.edits.MultiTextEdit; -import org.eclipse.text.edits.ReplaceEdit; -import org.eclipse.text.edits.TextEdit; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IEditorReference; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.actions.WorkspaceModifyOperation; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.core.internal.document.DocumentReader; -import org.eclipse.wst.sse.core.internal.encoding.CodedStreamCreator; - -/** - * Creates document change(s) for an IJavaElement rename. Changes are created - * for every type "match" in the workspace - * - * @author pavery - */ -public class BasicRefactorSearchRequestor extends SearchRequestor { - - /** - * Workspace operation to perform save on model for updated documents. - * Should only be done on models not open in an editor. - */ - private class SaveJspFileOp extends WorkspaceModifyOperation { - - private IDocument fJSPDoc = null; - private IFile fJSPFile = null; - - public SaveJspFileOp(IFile jspFile, IDocument jspDoc) { - this.fJSPDoc = jspDoc; - this.fJSPFile = jspFile; - } - - @Override - protected void execute(IProgressMonitor monitor) throws CoreException, - InvocationTargetException, InterruptedException { - - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3765 - // save file w/ no intermediate model creation - - CodedStreamCreator codedStreamCreator = new CodedStreamCreator(); - Reader reader = new DocumentReader(this.fJSPDoc); - codedStreamCreator.set(this.fJSPFile, reader); - - ByteArrayOutputStream codedByteStream = null; - InputStream codedStream = null; - try { - codedByteStream = codedStreamCreator - .getCodedByteArrayOutputStream(); - codedStream = new ByteArrayInputStream(codedByteStream - .toByteArray()); - if (this.fJSPFile.exists()) { - this.fJSPFile.setContents(codedStream, true, true, null); - } else { - this.fJSPFile.create(codedStream, false, null); - } - - } catch (CoreException e) { - Logger.logException(e); - } catch (IOException e) { - Logger.logException(e); - } finally { - try { - if (codedByteStream != null) { - codedByteStream.close(); - } - if (codedStream != null) { - codedStream.close(); - } - } catch (IOException e) { - // unlikely - } - } - } - } - - // end inner class SaveJspFileOp - - /** - * Change class that wraps a text edit on the jsp document - */ - private class RenameChange extends DocumentChange { - - private TextEdit fEdit = null; - private IFile fJSPFile = null; - private IDocument fJSPDoc = null; - private String fDescription = JSPUIMessages.BasicRefactorSearchRequestor_0; - - public RenameChange(IFile jspFile, IDocument jspDoc, TextEdit edit, - String description) { - super(JSPUIMessages.BasicRefactorSearchRequestor_6, jspDoc); - this.fEdit = edit; - this.fJSPFile = jspFile; - this.fJSPDoc = jspDoc; - this.fDescription = description; - } - - @Override - public RefactoringStatus isValid(IProgressMonitor pm) - throws CoreException { - return new RefactoringStatus(); - } - - @Override - public IDocument getPreviewDocument(IProgressMonitor pm) - throws CoreException { - IDocument copyDoc = new Document(fJSPDoc.get()); - try { - fEdit.apply(copyDoc); - } catch (MalformedTreeException e) { - // ignore - } catch (BadLocationException e) { - // ignore - } - return copyDoc; - } - - @Override - public Change perform(IProgressMonitor pm) throws CoreException { - RenameChange undoChange = null; - try { - - if (!isOpenInEditor(this.fJSPDoc)) { - // apply edit to JSP doc AND save model - undoChange = new RenameChange(this.fJSPFile, this.fJSPDoc, - this.fEdit.apply(fJSPDoc), this.fDescription); - saveFile(this.fJSPFile, this.fJSPDoc); - } else { - // just apply edit to JSP document - undoChange = new RenameChange(this.fJSPFile, this.fJSPDoc, - this.fEdit.apply(fJSPDoc), this.fDescription); - } - - } catch (MalformedTreeException e) { - Logger.logException(e); - } catch (BadLocationException e) { - Logger.logException(e); - } - return undoChange; - } - - /** - * Performed in an operation since it modifies resources in the - * workspace - * - * @param jspDoc - * @throws CoreException - */ - private void saveFile(IFile jspFile, IDocument jspDoc) { - - SaveJspFileOp op = new SaveJspFileOp(jspFile, jspDoc); - - try { - op.run(JSPSearchSupport.getInstance().getProgressMonitor()); - } catch (InvocationTargetException e) { - Logger.logException(e); - } catch (InterruptedException e) { - Logger.logException(e); - } - } - - /** - * Checks if a document is open in an editor - * - * @param jspDoc - * @return - */ - private boolean isOpenInEditor(IDocument jspDoc) { - IWorkbenchWindow[] windows = PlatformUI.getWorkbench() - .getWorkbenchWindows(); - IWorkbenchWindow w = null; - for (int i = 0; i < windows.length; i++) { - - w = windows[i]; - IWorkbenchPage page = w.getActivePage(); - if (page != null) { - - IEditorReference[] references = page.getEditorReferences(); - IEditorPart editor = null; - Object o = null; - IDocument doc = null; - for (int j = 0; j < references.length; j++) { - - editor = references[j].getEditor(true); - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3764 - // use adapter to get ITextEditor (for things like - // page designer) - o = editor.getAdapter(ITextEditor.class); - if (o != null && o instanceof ITextEditor) { - - doc = ((ITextEditor) o).getDocumentProvider() - .getDocument(editor.getEditorInput()); - if (doc != null && doc.equals(jspDoc)) { - return true; - } - } - } - } - } - return false; - } - - @Override - public String getName() { - return this.fDescription; - } - - @Override - public Object getModifiedElement() { - return getElement(); - } - } - - // end inner class RenameChange - - /** The type being renamed (the old type) */ - IJavaElement fElement = null; - /** The new name of the type being renamed */ - private String fNewName = ""; //$NON-NLS-1$ - /** maps a JSPSearchDocument path -> MultiTextEdit for the java file */ - private HashMap fSearchDocPath2JavaEditMap = null; - - public BasicRefactorSearchRequestor(IJavaElement element, String newName) { - this.fNewName = newName; - this.fElement = element; - this.fSearchDocPath2JavaEditMap = new HashMap(); - } - - public IJavaElement getElement() { - return this.fElement; - } - - /** - * @return the new name for the Type - */ - public String getNewName() { - return this.fNewName; - } - - /** - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#acceptSearchMatch(org.eclipse.wst.jsdt.core.search.SearchMatch) - */ - @Override - public void acceptSearchMatch(SearchMatch javaMatch) throws CoreException { - - String matchDocumentPath = javaMatch.getResource().getFullPath() - .toString(); - SearchDocument searchDoc = JSPSearchSupport.getInstance() - .getSearchDocument(matchDocumentPath); - - if (searchDoc != null - && searchDoc instanceof JavaSearchDocumentDelegate) { - - String renameText = getRenameText( - (JavaSearchDocumentDelegate) searchDoc, javaMatch); - - // add it for the correct document - addJavaEdit(searchDoc.getPath(), new ReplaceEdit(javaMatch - .getOffset(), javaMatch.getLength(), renameText)); - } - } - - /** - * @param searchDoc - * @return - */ - protected String getRenameText(JavaSearchDocumentDelegate searchDoc, - SearchMatch javaMatch) { - return getNewName(); - } - - /** - * Adds to the multi edit for a give java document. - * - * @param javaDocument - * @param javaEdit - */ - private void addJavaEdit(String searchDocPath, ReplaceEdit javaEdit) { - - Object o = this.fSearchDocPath2JavaEditMap.get(searchDocPath); - if (o != null) { - - MultiTextEdit multi = (MultiTextEdit) o; - multi.addChild(javaEdit); - } else { - // use a multi edit so doc position offsets get updated - // automatically - // when adding multiple child edits - MultiTextEdit multi = new MultiTextEdit(); - multi.addChild(javaEdit); - this.fSearchDocPath2JavaEditMap.put(searchDocPath, multi); - } - } - - /** - * - * @return all JSP changes for the search matches for the given Type - */ - public Change[] getChanges() { - - JSPSearchSupport support = JSPSearchSupport.getInstance(); - List changes = new ArrayList(); - Iterator keys = fSearchDocPath2JavaEditMap.keySet().iterator(); - String searchDocPath = null; - SearchDocument delegate = null; - - while (keys.hasNext()) { - // create on the fly - searchDocPath = (String) keys.next(); - MultiTextEdit javaEdit = (MultiTextEdit) fSearchDocPath2JavaEditMap - .get(searchDocPath); - delegate = support.getSearchDocument(searchDocPath); - - if (delegate != null - && delegate instanceof JavaSearchDocumentDelegate) { - JavaSearchDocumentDelegate javaDelegate = (JavaSearchDocumentDelegate) delegate; - changes.add(createChange(javaDelegate, javaDelegate - .getJspTranslation().getJspEdit(javaEdit))); - } - } - return (Change[]) changes.toArray(new Change[changes.size()]); - } - - private Change createChange(JavaSearchDocumentDelegate searchDoc, - TextEdit edit) { - - IDocument doc = searchDoc.getJspTranslation().getJspDocument(); - String file = searchDoc.getFile().getName(); - String description = getDescription(); - try { - // document lines are 0 based - String lineNumber = Integer.toString(doc.getLineOfOffset(edit - .getOffset()) + 1); - description += " " + NLS.bind(JSPUIMessages.BasicRefactorSearchRequestor_1, new String[] { file, lineNumber }); //$NON-NLS-1$ - } catch (BadLocationException e) { - Logger.logException(e); - } - return new RenameChange(searchDoc.getFile(), doc, edit, description); - } - - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3205 - // only relevant for IType refactorings - protected boolean isFullyQualified(String matchText) { - if (getElement() instanceof IType) { - String pkg = ((IType) getElement()).getPackageFragment() - .getElementName(); - return matchText.startsWith(pkg); - } - return false; - } - - /** - * Subclasses should override to better describe the change. - * - * @return - */ - protected String getDescription() { - return ""; //$NON-NLS-1$ - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPJavaSelectionProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPJavaSelectionProvider.java deleted file mode 100644 index 0ed1601002..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPJavaSelectionProvider.java +++ /dev/null @@ -1,67 +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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -class JSPJavaSelectionProvider { - static IJavaElement[] getSelection(ITextEditor textEditor) { - IJavaElement[] elements = null; - - IDocument document = textEditor.getDocumentProvider().getDocument( - textEditor.getEditorInput()); - ISelection selection = textEditor.getSelectionProvider().getSelection(); - if (selection instanceof ITextSelection) { - ITextSelection textSelection = (ITextSelection) selection; - // get the JSP translation object for this editor's document - IStructuredModel model = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - try { - if (model instanceof IDOMModel) { - IDOMModel xmlModel = (IDOMModel) model; - IDOMDocument xmlDoc = xmlModel.getDocument(); - - JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc - .getAdapterFor(IJSPTranslation.class); - if (adapter != null) { - JSPTranslation translation = adapter - .getJSPTranslation(); - elements = translation.getElementsFromJspRange( - textSelection.getOffset(), textSelection - .getOffset() - + textSelection.getLength()); - } - } - } finally { - if (model != null) { - model.releaseFromRead(); - } - } - } - if (elements == null) { - elements = new IJavaElement[0]; - } - return elements; - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameChange.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameChange.java deleted file mode 100644 index 79931bf025..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameChange.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IMethod; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; - -/** - * @author pavery - */ -public class JSPMethodRenameChange extends Change { - - public static Change[] createChangesFor(IMethod method, String newName) { - JSPSearchSupport support = JSPSearchSupport.getInstance(); - - // should be handled by JSPIndexManager - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036 - // support.indexWorkspaceAndWait(); - - BasicRefactorSearchRequestor requestor = new JSPMethodRenameRequestor( - method, newName); - support.searchRunnable(method, new JSPSearchScope(), requestor); - - return requestor.getChanges(); - } - - @Override - public String getName() { - return JSPUIMessages.JSP_changes; - } - - @Override - public void initializeValidationData(IProgressMonitor pm) { - // pa_TODO implement - // must be implemented to decide correct value of isValid - } - - @Override - public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException { - // pa_TODO implement - // This method must ensure that the change object is still valid. - // This is in particular interesting when performing an undo change - // since the workspace could have changed since the undo change has - // been created. - return new RefactoringStatus(); - } - - @Override - public Change perform(IProgressMonitor pm) throws CoreException { - // pa_TODO return the "undo" change here - return null; - } - - @Override - public Object getModifiedElement() { - // pa_TODO Auto-generated method stub - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameParticipant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameParticipant.java deleted file mode 100644 index 61c0d07fde..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameParticipant.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -/* - * Created on May 6, 2004 - * - * TODO To change the template for this generated file go to - * Window - Preferences - Java - Code Style - Code Templates - */ -package org.eclipse.wst.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IMethod; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.CompositeChange; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; -import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; -import org.eclipse.ltk.core.refactoring.participants.RenameParticipant; - -/** - * @author pavery - */ -public class JSPMethodRenameParticipant extends RenameParticipant { - - private IMethod fMethod = null; - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object) - */ - @Override - protected boolean initialize(Object element) { - if (element instanceof IMethod) { - this.fMethod = (IMethod) element; - return true; - } - return false; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName() - */ - @Override - public String getName() { - String name = ""; //$NON-NLS-1$ - if (this.fMethod != null) { - try { - name = this.fMethod.getSource(); - } catch (JavaModelException e) { - Logger.logException(e); - } - } - return name; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, - * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext) - */ - @Override - public RefactoringStatus checkConditions(IProgressMonitor pm, - CheckConditionsContext context) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public Change createChange(IProgressMonitor pm) throws CoreException { - Change[] changes = JSPMethodRenameChange.createChangesFor(this.fMethod, - getArguments().getNewName()); - CompositeChange multiChange = null; - if (changes.length > 0) { - multiChange = new CompositeChange(JSPUIMessages.JSP_changes, - changes); - } - return multiChange; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameRequestor.java deleted file mode 100644 index 3932c59057..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMethodRenameRequestor.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import java.text.MessageFormat; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.search.SearchMatch; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JavaSearchDocumentDelegate; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; - -/** - * @author pavery - */ -public class JSPMethodRenameRequestor extends BasicRefactorSearchRequestor { - - public JSPMethodRenameRequestor(IJavaElement element, String newName) { - super(element, newName); - } - - @Override - protected String getRenameText(JavaSearchDocumentDelegate searchDoc, - SearchMatch javaMatch) { - - String javaText = searchDoc.getJspTranslation().getJavaText(); - String methodText = javaText.substring(javaMatch.getOffset(), javaMatch - .getOffset() - + javaMatch.getLength()); - String methodSuffix = methodText.substring(methodText.indexOf("(")); //$NON-NLS-1$ - return getNewName() + methodSuffix; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.jsdt.web.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription() - */ - @Override - protected String getDescription() { - - String methodName = getElement().getElementName(); - String newName = getNewName(); - String description = MessageFormat.format( - JSPUIMessages.BasicRefactorSearchRequestor_3, new String[] { - methodName, newName }); - return description; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java deleted file mode 100644 index 4c81b93a80..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.swt.widgets.Event; -import org.eclipse.ui.IActionDelegate2; -import org.eclipse.ui.IEditorActionDelegate; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IViewActionDelegate; -import org.eclipse.ui.IViewPart; -import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil; - -/** - * An action delegate that launches JDT move element wizard - * - * Still relies heavily on internal API will change post 3.0 with public move - * support https://bugs.eclipse.org/bugs/show_bug.cgi?id=61817 - */ -public class JSPMoveElementActionDelegate implements IEditorActionDelegate, - IActionDelegate2, IViewActionDelegate { - // private IEditorPart fEditor; - - public void setActiveEditor(IAction action, IEditorPart targetEditor) { - // fEditor = targetEditor; - } - - public void dispose() { - // nulling out just in case - // fEditor = null; - } - - public void init(IAction action) { - if (action != null) { - action.setText(JSPUIMessages.MoveElement_label); - action.setToolTipText(JSPUIMessages.MoveElement_label); - } - } - - public void runWithEvent(IAction action, Event event) { - run(action); - } - - public void run(IAction action) { - - // no-op until we know how we're supposed to use this - // eclipse 3.2M5 - // public move support: - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=61817 - - // IJavaElement[] elements = getSelectedElements(); - // if (elements.length > 0) { - // - // // need to check if it's movable - // try { - // JavaMoveProcessor processor = - // JavaMoveProcessor.create(getResources(elements), elements); - // - // Shell parent = - // PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); - // MoveRefactoring refactoring = new MoveRefactoring(processor); - // - // RefactoringWizard wizard = createWizard(refactoring); - // - // /* - // * We want to get the shell from the refactoring dialog but - // * it's not known at this point, so we pass the wizard and - // * then, once the dialog is open, we will have access to its - // * shell. - // */ - // - // processor.setCreateTargetQueries(new CreateTargetQueries(wizard)); - // processor.setReorgQueries(new ReorgQueries(wizard)); - // // String openRefactoringWizMsg = - // // - // RefactoringMessages.getString("OpenRefactoringWizardAction.refactoring"); - // // //$NON-NLS-1$ - // String openRefactoringWizMsg = JSPUIMessages.MoveElementWizard; // - // "Move - // // the - // // selected - // // elements"; - // // //$NON-NLS-1$ - // new RefactoringStarter().activate(refactoring, wizard, parent, - // openRefactoringWizMsg, true); - // - // PlatformStatusLineUtil.clearStatusLine(); - // - // } - // catch (JavaModelException e) { - // Logger.logException(e); - // } - // } - // else { - // PlatformStatusLineUtil.displayErrorMessage(JSPUIMessages.JSPMoveElementAction_0); - // //$NON-NLS-1$ - // } - - } - - public void selectionChanged(IAction action, ISelection selection) { - PlatformStatusLineUtil.clearStatusLine(); - } - - public void init(IViewPart view) { - // do nothing - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameChange.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameChange.java deleted file mode 100644 index e39d87cd6f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameChange.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IPackageFragment; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; - -/** - * @author pavery - */ -public class JSPPackageRenameChange extends Change { - - public static Change[] createChangesFor(IPackageFragment pkg, String newName) { - JSPSearchSupport support = JSPSearchSupport.getInstance(); - - // should be handled by JSPIndexManager - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036 - // support.indexWorkspaceAndWait(); - - BasicRefactorSearchRequestor requestor = new JSPPackageRenameRequestor( - pkg, newName); - support.searchRunnable(pkg, new JSPSearchScope(), requestor); - - return requestor.getChanges(); - } - - @Override - public String getName() { - return JSPUIMessages.JSP_changes; - } - - @Override - public void initializeValidationData(IProgressMonitor pm) { - // pa_TODO implement - // must be implemented to decide correct value of isValid - } - - @Override - public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException { - // pa_TODO implement - // This method must ensure that the change object is still valid. - // This is in particular interesting when performing an undo change - // since the workspace could have changed since the undo change has - // been created. - return new RefactoringStatus(); - } - - @Override - public Change perform(IProgressMonitor pm) throws CoreException { - // TODO return the "undo" change here - return null; - } - - @Override - public Object getModifiedElement() { - - // return this.pkg; - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameParticipant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameParticipant.java deleted file mode 100644 index 8ccf855cf6..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameParticipant.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IPackageFragment; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.CompositeChange; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; -import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; -import org.eclipse.ltk.core.refactoring.participants.RenameParticipant; - -/** - * Remember to change the plugin.xml file if the name of this class changes. - * - * @author pavery - */ -public class JSPPackageRenameParticipant extends RenameParticipant { - - private IPackageFragment fPkg = null; - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object) - */ - @Override - protected boolean initialize(Object element) { - if (element instanceof IPackageFragment) { - this.fPkg = (IPackageFragment) element; - return true; - } - return false; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName() - */ - @Override - public String getName() { - String name = ""; //$NON-NLS-1$ - if (this.fPkg != null) { - name = this.fPkg.getElementName(); - } - return name; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, - * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext) - */ - @Override - public RefactoringStatus checkConditions(IProgressMonitor pm, - CheckConditionsContext context) { - // TODO Auto-generated method stub - return null; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public Change createChange(IProgressMonitor pm) throws CoreException { - Change[] changes = JSPPackageRenameChange.createChangesFor(this.fPkg, - getArguments().getNewName()); - CompositeChange multiChange = null; - if (changes.length > 0) { - multiChange = new CompositeChange(JSPUIMessages.JSP_changes, - changes); - } - return multiChange; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameRequestor.java deleted file mode 100644 index b6692fbec6..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPPackageRenameRequestor.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.osgi.util.NLS; - -/** - * Overrides get description - * - * @author pavery - */ -public class JSPPackageRenameRequestor extends BasicRefactorSearchRequestor { - - /** - * Element is the old package. newName is the new package name. - * - * @param element - * @param newName - */ - public JSPPackageRenameRequestor(IJavaElement element, String newName) { - super(element, newName); - } - - /* - * @see org.eclipse.wst.jsdt.web.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription() - */ - @Override - protected String getDescription() { - String packageName = getElement().getElementName(); - String newName = getNewName(); - String description = NLS.bind( - JSPUIMessages.BasicRefactorSearchRequestor_5, (new String[] { - packageName, newName })); - return description; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java deleted file mode 100644 index 1864ca1241..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.IMethod; -import org.eclipse.wst.jsdt.core.IPackageFragment; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.ui.refactoring.RenameSupport; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.swt.widgets.Event; -import org.eclipse.ui.IActionDelegate2; -import org.eclipse.ui.IEditorActionDelegate; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IViewActionDelegate; -import org.eclipse.ui.IViewPart; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil; - -/** - * An action delegate that launches JDT rename element wizard - */ -public class JSPRenameElementActionDelegate implements IEditorActionDelegate, - IActionDelegate2, IViewActionDelegate { - private IEditorPart fEditor; - - public void setActiveEditor(IAction action, IEditorPart targetEditor) { - fEditor = targetEditor; - } - - public void dispose() { - // nulling out just in case - fEditor = null; - } - - public void init(IAction action) { - if (action != null) { - action.setText(JSPUIMessages.RenameElement_label); - action.setToolTipText(JSPUIMessages.RenameElement_label); - } - } - - public void runWithEvent(IAction action, Event event) { - run(action); - } - - public void run(IAction action) { - IJavaElement element = getSelectedElement(); - if (element != null) { - RenameSupport renameSupport = null; - try { - switch (element.getElementType()) { - case IJavaElement.TYPE: - renameSupport = RenameSupport.create((IType) element, - element.getElementName(), - RenameSupport.UPDATE_REFERENCES); - break; - case IJavaElement.METHOD: - renameSupport = RenameSupport.create((IMethod) element, - element.getElementName(), - RenameSupport.UPDATE_REFERENCES); - break; - case IJavaElement.PACKAGE_FRAGMENT: - renameSupport = RenameSupport.create( - (IPackageFragment) element, element - .getElementName(), - RenameSupport.UPDATE_REFERENCES); - break; - } - if (renameSupport != null) { - renameSupport.openDialog(PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getShell()); - PlatformStatusLineUtil.clearStatusLine(); - } - } catch (CoreException e) { - Logger.logException(e); - } - } else { - PlatformStatusLineUtil - .displayErrorMessage(JSPUIMessages.JSPRenameElementAction_0); - PlatformStatusLineUtil.addOneTimeClearListener(); - } - } - - public void selectionChanged(IAction action, ISelection selection) { - PlatformStatusLineUtil.clearStatusLine(); - } - - public void init(IViewPart view) { - // do nothing - } - - private IJavaElement getSelectedElement() { - IJavaElement element = null; - if (fEditor instanceof ITextEditor) { - IJavaElement[] elements = JSPJavaSelectionProvider - .getSelection((ITextEditor) fEditor); - if (elements.length == 1) { - element = elements[0]; - } - } - return element; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveChange.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveChange.java deleted file mode 100644 index b16e73c67f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveChange.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; - -/** - * @author pavery - */ -public class JSPTypeMoveChange extends Change { - - public static Change[] createChangesFor(IType type, String newName) { - - JSPSearchSupport support = JSPSearchSupport.getInstance(); - // should be handled by JSPIndexManager - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036 - // support.indexWorkspaceAndWait(); - - JSPTypeMoveRequestor requestor = new JSPTypeMoveRequestor(type, newName); - support.searchRunnable(type, new JSPSearchScope(), requestor); - - return requestor.getChanges(); - } - - @Override - public String getName() { - return JSPUIMessages.JSP_changes; - } - - @Override - public void initializeValidationData(IProgressMonitor pm) { - // pa_TODO implement - // must be implemented to decide correct value of isValid - } - - @Override - public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException { - // pa_TODO implement - // This method must ensure that the change object is still valid. - // This is in particular interesting when performing an undo change - // since the workspace could have changed since the undo change has - // been created. - return new RefactoringStatus(); - } - - @Override - public Change perform(IProgressMonitor pm) throws CoreException { - // TODO return the "undo" change here - return null; - } - - @Override - public Object getModifiedElement() { - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveParticipant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveParticipant.java deleted file mode 100644 index 60531d143d..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveParticipant.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IPackageFragment; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.CompositeChange; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; -import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; -import org.eclipse.ltk.core.refactoring.participants.MoveParticipant; - -/** - * @author pavery - */ -public class JSPTypeMoveParticipant extends MoveParticipant { - - IType fType = null; - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object) - */ - @Override - protected boolean initialize(Object element) { - - if (element instanceof IType) { - this.fType = (IType) element; - return true; - } - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName() - */ - @Override - public String getName() { - - String name = ""; //$NON-NLS-1$ - if (this.fType != null) { - name = this.fType.getElementName(); - } - return name; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, - * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext) - */ - @Override - public RefactoringStatus checkConditions(IProgressMonitor pm, - CheckConditionsContext context) { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public Change createChange(IProgressMonitor pm) throws CoreException { - - if (pm != null && pm.isCanceled()) { - return null; - } - - CompositeChange multiChange = null; - Object dest = getArguments().getDestination(); - - if (dest instanceof IPackageFragment) { - Change[] changes = JSPTypeMoveChange.createChangesFor(fType, - ((IPackageFragment) dest).getElementName()); - if (changes.length > 0) { - multiChange = new CompositeChange(JSPUIMessages.JSP_changes, - changes); - } - } - return multiChange; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveRequestor.java deleted file mode 100644 index ffc85fd126..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeMoveRequestor.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import java.text.MessageFormat; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.search.SearchMatch; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JavaSearchDocumentDelegate; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; - -/** - * @author pavery - */ -public class JSPTypeMoveRequestor extends BasicRefactorSearchRequestor { - - /** - * @param element - * @param newName - */ - public JSPTypeMoveRequestor(IJavaElement element, String newPackage) { - super(element, newPackage); - } - - @Override - protected String getRenameText(JavaSearchDocumentDelegate searchDoc, - SearchMatch javaMatch) { - - String renameText = getElement().getElementName(); - - JSPTranslation trans = searchDoc.getJspTranslation(); - String matchText = trans.getJavaText().substring(javaMatch.getOffset(), - javaMatch.getOffset() + javaMatch.getLength()); - - // if it's an import or jsp:useBean, we need to add the package name as - // well - if (trans.isImport(javaMatch.getOffset()) - || trans.isUseBean(javaMatch.getOffset()) - || isFullyQualified(matchText)) { - if (!getNewName().equals("")) { - // getNewName() is the pkg name - renameText = getNewName() + "." + renameText; //$NON-NLS-1$ - } - } - return renameText; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.jsdt.web.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription() - */ - @Override - protected String getDescription() { - - String typeName = getElement().getElementName(); - String newName = getNewName(); - String description = MessageFormat.format( - JSPUIMessages.BasicRefactorSearchRequestor_2, new String[] { - typeName, newName }); - return description; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameChange.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameChange.java deleted file mode 100644 index 55be698fb4..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameChange.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; - -/** - * @author pavery - */ -public class JSPTypeRenameChange extends Change { - - public static Change[] createChangesFor(IType type, String newName) { - JSPSearchSupport support = JSPSearchSupport.getInstance(); - - // should be handled by JSPIndexManager - // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036 - // support.indexWorkspaceAndWait(); - - JSPTypeRenameRequestor requestor = new JSPTypeRenameRequestor(type, - newName); - support.searchRunnable(type, new JSPSearchScope(), requestor); - - return requestor.getChanges(); - } - - @Override - public String getName() { - return JSPUIMessages.JSP_changes; - } - - @Override - public void initializeValidationData(IProgressMonitor pm) { - // pa_TODO implement - // must be implemented to decide correct value of isValid - } - - @Override - public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException { - // pa_TODO implement - // This method must ensure that the change object is still valid. - // This is in particular interesting when performing an undo change - // since the workspace could have changed since the undo change has - // been created. - return new RefactoringStatus(); - } - - @Override - public Change perform(IProgressMonitor pm) throws CoreException { - // TODO return the "undo" change here - return null; - } - - @Override - public Object getModifiedElement() { - // TODO Auto-generated method stub - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameParticipant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameParticipant.java deleted file mode 100644 index 8074a6e1c7..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameParticipant.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.ltk.core.refactoring.Change; -import org.eclipse.ltk.core.refactoring.CompositeChange; -import org.eclipse.ltk.core.refactoring.RefactoringStatus; -import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; -import org.eclipse.ltk.core.refactoring.participants.RenameParticipant; - -/** - * Remember to change the plugin.xml file if the name of this class changes. - * - * @author pavery - */ -public class JSPTypeRenameParticipant extends RenameParticipant { - - private IType fType = null; - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object) - */ - @Override - protected boolean initialize(Object element) { - if (element instanceof IType) { - this.fType = (IType) element; - return true; - } - return false; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName() - */ - @Override - public String getName() { - String name = ""; //$NON-NLS-1$ - if (this.fType != null) { - try { - name = this.fType.getSource(); - } catch (JavaModelException e) { - Logger.logException(e); - } - } - return name; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, - * org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext) - */ - @Override - public RefactoringStatus checkConditions(IProgressMonitor pm, - CheckConditionsContext context) { - // TODO Auto-generated method stub - return null; - } - - /** - * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor) - */ - @Override - public Change createChange(IProgressMonitor pm) throws CoreException { - Change[] changes = JSPTypeRenameChange.createChangesFor(fType, - getArguments().getNewName()); - CompositeChange multiChange = null; - if (changes.length > 0) { - multiChange = new CompositeChange(JSPUIMessages.JSP_changes, - changes); - } - return multiChange; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameRequestor.java deleted file mode 100644 index 4ad02b6dfe..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/refactoring/JSPTypeRenameRequestor.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.refactoring; - -import java.text.MessageFormat; - -import org.eclipse.wst.jsdt.core.IType; -import org.eclipse.wst.jsdt.core.search.SearchMatch; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JavaSearchDocumentDelegate; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; - -/** - * Creates document change(s) for a type rename. Changes are created for every - * type "match" in the workspace - * - * @author pavery - */ -public class JSPTypeRenameRequestor extends BasicRefactorSearchRequestor { - - public JSPTypeRenameRequestor(IType type, String newName) { - super(type, newName); - } - - private IType getType() { - return (IType) getElement(); - } - - @Override - protected String getRenameText(JavaSearchDocumentDelegate searchDoc, - SearchMatch javaMatch) { - - String renameText = getNewName(); - - String pkg = getType().getPackageFragment().getElementName(); - JSPTranslation trans = searchDoc.getJspTranslation(); - String matchText = trans.getJavaText().substring(javaMatch.getOffset(), - javaMatch.getOffset() + javaMatch.getLength()); - - // if it's an import or jsp:useBean or fully qualified type, we need to - // add the package name as well - if (trans.isImport(javaMatch.getOffset()) - || /* trans.isUseBean(javaMatch.getOffset()) || */isFullyQualified(matchText)) { - if (!pkg.equals("")) { - renameText = pkg + "." + renameText; //$NON-NLS-1$ - } - } - return renameText; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.jsdt.web.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription() - */ - @Override - protected String getDescription() { - - String typeName = getElement().getElementName(); - String newName = getNewName(); - String description = MessageFormat.format( - JSPUIMessages.BasicRefactorSearchRequestor_4, new String[] { - typeName, newName }); - return description; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/BasicJSPSearchRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/BasicJSPSearchRequestor.java deleted file mode 100644 index 8b79afca24..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/BasicJSPSearchRequestor.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.jsdt.core.search.SearchDocument; -import org.eclipse.wst.jsdt.core.search.SearchMatch; -import org.eclipse.wst.jsdt.core.search.SearchParticipant; -import org.eclipse.wst.jsdt.core.search.SearchRequestor; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JavaSearchDocumentDelegate; - -/** - * Accepts matches from JSPSearchSupport.search(...) request. Adapts the results - * from java to JSP and displays in the SearchResultView. - * - * @author pavery - */ -public class BasicJSPSearchRequestor extends SearchRequestor { - - // for debugging - private static final boolean DEBUG; - static { - String value = Platform - .getDebugOption("org.eclipse.wst.jsdt.web.core/debug/jspsearch"); //$NON-NLS-1$ - DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$ - } - - /** - * Maps java search coordinates to corresponding JSP coordinates. Adds the - * matches to the Search Results view. - * - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#acceptSearchMatch(org.eclipse.wst.jsdt.core.search.SearchMatch) - */ - @Override - public void acceptSearchMatch(SearchMatch match) throws CoreException { - - if (JSPSearchSupport.getInstance().isCanceled()) { - return; - } - - String matchDocumentPath = match.getResource().getFullPath().toString(); - SearchDocument searchDoc = JSPSearchSupport.getInstance() - .getSearchDocument(matchDocumentPath); - - if (searchDoc != null - && searchDoc instanceof JavaSearchDocumentDelegate) { - JavaSearchDocumentDelegate javaSearchDoc = (JavaSearchDocumentDelegate) searchDoc; - int jspStart = javaSearchDoc.getJspOffset(match.getOffset()); - int jspEnd = javaSearchDoc.getJspOffset(match.getOffset() - + match.getLength()); - - JSPTranslation trans = javaSearchDoc.getJspTranslation(); - String jspText = trans.getJspText(); - String javaText = javaSearchDoc.getJavaText(); - - if (DEBUG) { - displayDebugInfo(match, jspStart, jspEnd, jspText, javaText); - } - - if (jspStart > -1 && jspEnd > -1) { - addSearchMatch(new Document(trans.getJspText()), javaSearchDoc - .getFile(), jspStart, jspEnd, jspText); - } - } - } - - /** - * @param searchDoc - * @param jspStart - * @param jspEnd - * @param jspTranslation - * @param jspText - * @throws CoreException - */ - protected void addSearchMatch(IDocument jspDocument, IFile jspFile, - int jspStart, int jspEnd, String jspText) { - // implement in subclass - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#beginReporting() - */ - @Override - public void beginReporting() { - - if (DEBUG) { - System.out.println("JSP Search requestor: beginReporting()"); //$NON-NLS-1$ - } - } - - /** - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#endReporting() - */ - @Override - public void endReporting() { - - if (DEBUG) { - System.out.println("JSP Search requestor: endReporting()"); //$NON-NLS-1$ - } - } - - /** - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#enterParticipant(org.eclipse.wst.jsdt.core.search.SearchParticipant) - */ - @Override - public void enterParticipant(SearchParticipant participant) { - - if (DEBUG) { - System.out.println("JSP Search requestor: enterParticipant()"); //$NON-NLS-1$ - } - } - - /** - * @see org.eclipse.wst.jsdt.core.search.SearchRequestor#exitParticipant(org.eclipse.wst.jsdt.core.search.SearchParticipant) - */ - @Override - public void exitParticipant(SearchParticipant participant) { - - if (DEBUG) { - System.out.println("JSP Search requestor: exitParticipant()"); //$NON-NLS-1$ - } - } - - /** - * For debug. - * - * @param origMatch - * @param jspStart - * @param jspEnd - * @param jspText - * @param javaText - */ - private void displayDebugInfo(SearchMatch origMatch, int jspStart, - int jspEnd, String jspText, String javaText) { - - if (origMatch == null || jspStart == -1 || jspEnd == -1 - || jspEnd < jspStart || jspText == null || javaText == null) { - return; - } - - System.out.println("+-----------------------------------------+"); //$NON-NLS-1$ - System.out - .println("accept possible match [jspDoc: " + origMatch.getResource().getFullPath().toOSString() + " " + origMatch.getOffset() + ":" + origMatch.getOffset() + origMatch.getLength() + "]?"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - System.out.println("match info:"); //$NON-NLS-1$ - System.out - .println("the java text is:" + javaText.substring(origMatch.getOffset(), origMatch.getOffset() + origMatch.getLength())); //$NON-NLS-1$ - System.out - .println("java search match translates to jsp coords [start: " + jspStart + " end:" + jspEnd + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - System.out - .println(" the jsp text is:" + jspText.substring(jspStart, jspEnd)); //$NON-NLS-1$ - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java deleted file mode 100644 index eb9dc7cb21..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.java.search; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.html.ui.internal.search.HTMLFindOccurrencesProcessor; -import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesActionDelegate; - -/** - * Sets up FindOccurrencesActionDelegate for jsp find occurrences processors - */ -public class JSPFindOccurrencesActionDelegate extends - FindOccurrencesActionDelegate { - private List fProcessors; - - @Override - protected List getProcessors() { - if (fProcessors == null) { - fProcessors = new ArrayList(); - HTMLFindOccurrencesProcessor htmlProcessor = new HTMLFindOccurrencesProcessor(); - fProcessors.add(htmlProcessor); - // temporary, workaround to disable function, since using the - // function - // can easily cause deadlock to occur. - // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=103662 - // JSPFindOccurrencesProcessor jspProcessor = new - // JSPFindOccurrencesProcessor(); - // fProcessors.add(jspProcessor); - } - return fProcessors; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesProcessor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesProcessor.java deleted file mode 100644 index 7f1f5eb31d..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPFindOccurrencesProcessor.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.java.search; - -import org.eclipse.core.resources.IFile; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.jsdt.web.core.text.IJSPPartitions; -import org.eclipse.search.ui.ISearchQuery; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesProcessor; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -/** - * Configures a FindOccurrencesProcessor with JSP partitions and regions - */ -public class JSPFindOccurrencesProcessor extends FindOccurrencesProcessor { - - @Override - protected String[] getPartitionTypes() { - return new String[] { IJSPPartitions.JSP_DEFAULT, - IJSPPartitions.JSP_CONTENT_JAVA }; - } - - @Override - protected String[] getRegionTypes() { - return new String[] { DOMRegionContext.BLOCK_TEXT, - DOMJSPRegionContexts.JSP_CONTENT }; - } - - @Override - protected ISearchQuery getSearchQuery(IFile file, - IStructuredDocument document, String regionText, String regionType, - ITextSelection textSelection) { - return new JSPSearchQuery(file, getJavaElement(document, textSelection)); - } - - private IJavaElement getJavaElement(IDocument document, - ITextSelection textSelection) { - IJavaElement[] elements = getJavaElementsForCurrentSelection(document, - textSelection); - return elements.length > 0 ? elements[0] : null; - } - - /** - * uses JSPTranslation to get currently selected Java elements. - * - * @return currently selected IJavaElements - */ - private IJavaElement[] getJavaElementsForCurrentSelection( - IDocument document, ITextSelection selection) { - IJavaElement[] elements = new IJavaElement[0]; - // get JSP translation object for this viewer's document - IStructuredModel model = StructuredModelManager.getModelManager() - .getExistingModelForRead(document); - try { - if (model != null && model instanceof IDOMModel) { - IDOMDocument xmlDoc = ((IDOMModel) model).getDocument(); - JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc - .getAdapterFor(IJSPTranslation.class); - if (adapter != null) { - JSPTranslation translation = adapter.getJSPTranslation(); - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=102211 - elements = translation.getElementsFromJspRange(selection - .getOffset(), selection.getOffset() - + selection.getLength()); - } - } - } finally { - if (model != null) { - model.releaseFromRead(); - } - } - return elements; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPOccurrencesSearchResult.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPOccurrencesSearchResult.java deleted file mode 100644 index ae1daccf6b..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPOccurrencesSearchResult.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search; - -import org.eclipse.search.ui.ISearchQuery; -import org.eclipse.search.ui.text.Match; -import org.eclipse.wst.sse.ui.internal.search.OccurrencesSearchResult; - -/** - * @author pavery - */ -public class JSPOccurrencesSearchResult extends OccurrencesSearchResult { - - public JSPOccurrencesSearchResult(ISearchQuery query) { - super(query); - } - - @Override - public Match[] getMatches() { - return ((JSPSearchQuery) getQuery()).getMatches(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchQuery.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchQuery.java deleted file mode 100644 index a86fc88885..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchQuery.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.search.SearchDocument; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.osgi.util.NLS; -import org.eclipse.search.ui.ISearchResult; -import org.eclipse.wst.sse.ui.internal.search.BasicSearchQuery; - -/** - * Implementation of <code>ISearchQuery</code> for <code>IJavaElement</code>s - * in JSP files. - * - * @author pavery - */ -public class JSPSearchQuery extends BasicSearchQuery { - - /** the IJavaElement we are searching for in the file * */ - private IJavaElement fElement = null; - - public JSPSearchQuery(IFile file, IJavaElement element) { - super(file); - this.fElement = element; - } - - public IJavaElement getJavaElement() { - return this.fElement; - } - - // for access by inner class - public JSPSearchQuery getInstance() { - return this; - } - - @Override - protected IStatus doQuery() { - - clearMatches(); - - IStatus status = Status.OK_STATUS; - try { - JSPSearchSupport support = JSPSearchSupport.getInstance(); - // index the file - SearchDocument delegate = support.addJspFile(getFile()); - - String scopePath = delegate.getPath(); - JSPSearchScope singleFileScope = new JSPSearchScope(new String[] { - getFile().getFullPath().toString(), scopePath }); - - // perform a searchs - // by passing in this jsp search query, requstor can add matches - // support.searchRunnable(getJavaElement(), singleFileScope, new - // JSPSingleFileSearchRequestor(getInstance())); - support.searchRunnable(getJavaElement(), singleFileScope, - new JSPSingleFileSearchRequestor(getInstance())); - } catch (Exception e) { - status = new Status(IStatus.ERROR, - "org.eclipse.wst.sse.ui", IStatus.OK, "", null); //$NON-NLS-1$ //$NON-NLS-2$ - } - return status; - } - - /** - * @see org.eclipse.search.ui.ISearchQuery#getLabel() - */ - @Override - public String getLabel() { - String[] args = { getSearchText(), getOccurrencesCountText(), - getFilename() }; - return NLS.bind(JSPUIMessages.OccurrencesSearchQuery_0, args); - } - - private String getFilename() { - String filename = JSPUIMessages.OccurrencesSearchQuery_2; - if (getFile() != null) { - filename = getFile().getName(); - } - return filename; - } - - private String getOccurrencesCountText() { - String count = ""; //$NON-NLS-1$ - // pa_TODO make dynamic - return count; - } - - @Override - protected String getSearchText() { - return fElement.getElementName(); - } - - @Override - public boolean canRerun() { - - return false; - } - - /** - * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground() - */ - @Override - public boolean canRunInBackground() { - return true; - } - - /** - * @see org.eclipse.search.ui.ISearchQuery#getSearchResult() - */ - @Override - public ISearchResult getSearchResult() { - - return new JSPOccurrencesSearchResult(this); - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchRequestor.java deleted file mode 100644 index 2d062fb1a0..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSearchRequestor.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search; - -import java.util.HashMap; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IMarker; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.jsdt.ui.search.ISearchRequestor; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.search.ui.NewSearchUI; -import org.eclipse.search.ui.text.Match; - -/** - * @author pavery - */ -public class JSPSearchRequestor extends BasicJSPSearchRequestor { - - private ISearchRequestor fJavaRequestor = null; - - public JSPSearchRequestor() { - super(); - } - - public JSPSearchRequestor(ISearchRequestor javaRequestor) { - // need to report matches to javaRequestor - this.fJavaRequestor = javaRequestor; - } - - @Override - protected void addSearchMatch(IDocument jspDocument, IFile jspFile, - int jspStart, int jspEnd, String jspText) { - - if (!jspFile.exists()) { - return; - } - - int lineNumber = -1; - try { - lineNumber = jspDocument.getLineOfOffset(jspStart); - } catch (BadLocationException e) { - Logger.logException("offset: " + Integer.toString(jspStart), e); //$NON-NLS-1$ - } - createSearchMarker(jspFile, jspStart, jspEnd, lineNumber); - - if (this.fJavaRequestor != null) { - Match match = new Match(jspFile, jspStart, jspEnd - jspStart); - this.fJavaRequestor.reportMatch(match); - } - } - - /** - * @param jspFile - * @param jspStart - * @param jspEnd - */ - private void createSearchMarker(IFile jspFile, int jspStart, int jspEnd, - int lineNumber) { - - try { - IMarker marker = jspFile.createMarker(NewSearchUI.SEARCH_MARKER); - HashMap attributes = new HashMap(4); - attributes.put(IMarker.CHAR_START, new Integer(jspStart)); - attributes.put(IMarker.CHAR_END, new Integer(jspEnd)); - attributes.put(IMarker.LINE_NUMBER, new Integer(lineNumber)); - marker.setAttributes(attributes); - - } catch (CoreException e) { - Logger.logException(e); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSingleFileSearchRequestor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSingleFileSearchRequestor.java deleted file mode 100644 index 9c8503b1b5..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/JSPSingleFileSearchRequestor.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.text.IDocument; - -/** - * <p> - * Special requestor that adds search results for single file search (Used for - * JSPFindOccurrences action). It groups each match as it's own result. - * </p> - * - * @author pavery - */ -public class JSPSingleFileSearchRequestor extends BasicJSPSearchRequestor { - - private JSPSearchQuery fQuery = null; - - public JSPSingleFileSearchRequestor(JSPSearchQuery query) { - this.fQuery = query; - } - - @Override - protected void addSearchMatch(IDocument jspDocument, IFile jspFile, - int jspStart, int jspEnd, String jspText) { - // add match to JSP query... - this.fQuery.addMatch(jspDocument, jspStart, jspEnd); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPMatchPresentation.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPMatchPresentation.java deleted file mode 100644 index 091fc5d9f4..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPMatchPresentation.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search.ui; - -import org.eclipse.wst.jsdt.ui.search.IMatchPresentation; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.search.ui.text.Match; -import org.eclipse.ui.PartInitException; -import org.eclipse.wst.sse.ui.internal.search.BasicSearchLabelProvider; - -/** - * @author pavery - */ -public class JSPMatchPresentation implements IMatchPresentation { - - /** - * @see org.eclipse.wst.jsdt.ui.search.IMatchPresentation#createLabelProvider() - */ - public ILabelProvider createLabelProvider() { - return new BasicSearchLabelProvider(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.jsdt.ui.search.IMatchPresentation#showMatch(org.eclipse.search.ui.text.Match, - * int, int, boolean) - */ - public void showMatch(Match match, int currentOffset, int currentLength, - boolean activate) throws PartInitException { - // pa_TODO implement - // Object obj = match.getElement(); - // show match in JSP editor - if (activate) { - // use show in target? - } else { - // just select - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPQueryParticipant.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPQueryParticipant.java deleted file mode 100644 index e4864cbbf4..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/java/search/ui/JSPQueryParticipant.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.java.search.ui; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.search.SearchPattern; -import org.eclipse.wst.jsdt.core.search.SearchRequestor; -import org.eclipse.wst.jsdt.ui.search.ElementQuerySpecification; -import org.eclipse.wst.jsdt.ui.search.IMatchPresentation; -import org.eclipse.wst.jsdt.ui.search.IQueryParticipant; -import org.eclipse.wst.jsdt.ui.search.ISearchRequestor; -import org.eclipse.wst.jsdt.ui.search.PatternQuerySpecification; -import org.eclipse.wst.jsdt.ui.search.QuerySpecification; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchScope; -import org.eclipse.wst.jsdt.web.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.jsdt.web.ui.internal.java.search.JSPSearchRequestor; - -/** - * @author pavery - */ -public class JSPQueryParticipant implements IQueryParticipant { - - // for debugging - private static final boolean DEBUG; - static { - String value = Platform - .getDebugOption("org.eclipse.wst.jsdt.web.core/debug/jspsearch"); //$NON-NLS-1$ - DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$ - } - - /** - * @see org.eclipse.wst.jsdt.ui.search.IQueryParticipant#search(org.eclipse.wst.jsdt.ui.search.ISearchRequestor, - * org.eclipse.wst.jsdt.ui.search.QuerySpecification, - * org.eclipse.core.runtime.IProgressMonitor) - */ - public void search(ISearchRequestor requestor, - QuerySpecification querySpecification, IProgressMonitor monitor) - throws CoreException { - - // indexIfNeeded(); - - // do search based on the particular Java query - - if (querySpecification instanceof ElementQuerySpecification) { - // element search (eg. from global find references in Java file) - ElementQuerySpecification elementQuery = (ElementQuerySpecification) querySpecification; - IJavaElement element = elementQuery.getElement(); - - if (DEBUG) { - System.out - .println("JSP Query Participant searching on ELEMENT: " + element); //$NON-NLS-1$ - } - - SearchRequestor jspRequestor = new JSPSearchRequestor(requestor); - - // pa_TODO need to adapt JavaSearchScope to a JSPSearchScope - JSPSearchSupport.getInstance().search(element, - new JSPSearchScope(), jspRequestor); - - } else if (querySpecification instanceof PatternQuerySpecification) { - - // pattern search (eg. from Java search page) - PatternQuerySpecification patternQuery = (PatternQuerySpecification) querySpecification; - String pattern = patternQuery.getPattern(); - - if (DEBUG) { - System.out - .println("JSP Query Participant searching on PATTERN: " + pattern); //$NON-NLS-1$ - } - - SearchRequestor jspRequestor = new JSPSearchRequestor(requestor); - - JSPSearchSupport.getInstance().search(pattern, - new JSPSearchScope(), patternQuery.getSearchFor(), - patternQuery.getLimitTo(), SearchPattern.R_PATTERN_MATCH, - false, jspRequestor); - } - } - - /** - * @see org.eclipse.wst.jsdt.ui.search.IQueryParticipant#estimateTicks(org.eclipse.wst.jsdt.ui.search.QuerySpecification) - */ - public int estimateTicks(QuerySpecification data) { - // pa_TODO use project file counter from JSPSearchSupport... - return 0; - } - - /** - * @see org.eclipse.wst.jsdt.ui.search.IQueryParticipant#getUIParticipant() - */ - public IMatchPresentation getUIParticipant() { - return new JSPMatchPresentation(); - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceInitializer.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceInitializer.java deleted file mode 100644 index bc9322def7..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceInitializer.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.preferences; - -import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.text.templates.Template; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.style.IStyleConstantsJSP; -import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML; -import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper; -import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML; - -/** - * Sets default values for JSP UI preferences - */ -public class JSPUIPreferenceInitializer extends AbstractPreferenceInitializer { - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() - */ - @Override - public void initializeDefaultPreferences() { - IPreferenceStore store = JSPUIPlugin.getDefault().getPreferenceStore(); - - // setting the same as HTML - store.setDefault(JSPUIPreferenceNames.AUTO_PROPOSE, true); - store.setDefault(JSPUIPreferenceNames.AUTO_PROPOSE_CODE, "<");//$NON-NLS-1$ - - // JSP Style Preferences - String NOBACKGROUNDBOLD = " | null | false"; //$NON-NLS-1$ - String styleValue = ColorHelper.getColorString(127, 0, 127) - + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_NAME, styleValue); - - styleValue = ColorHelper.getColorString(42, 0, 255) + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE, styleValue); - - styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$ - - // specified value is black; leaving as widget default - store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS, styleValue); - - styleValue = ColorHelper.getColorString(63, 95, 191) + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsXML.COMMENT_BORDER, styleValue); - store.setDefault(IStyleConstantsXML.COMMENT_TEXT, styleValue); - - styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsXML.TAG_BORDER, styleValue); - - styleValue = ColorHelper.getColorString(63, 127, 127) - + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsXML.TAG_NAME, styleValue); - - styleValue = ColorHelper.getColorString(191, 95, 63) + NOBACKGROUNDBOLD; - store.setDefault(IStyleConstantsHTML.SCRIPT_AREA_BORDER, styleValue); - - styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$ - store.setDefault(IStyleConstantsJSP.JSP_CONTENT, styleValue); - - // set default new jsp file template to use in new file wizard - /* - * Need to find template name that goes with default template id (name - * may change for differnt language) - */ - String templateName = ""; //$NON-NLS-1$ - Template template = JSPUIPlugin.getDefault().getTemplateStore() - .findTemplateById("org.eclipse.wst.jsdt.web.ui.templates.jsphtml"); //$NON-NLS-1$ - if (template != null) { - templateName = template.getName(); - } - store.setDefault(JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, - templateName); - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceNames.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceNames.java deleted file mode 100644 index b7c267878c..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/JSPUIPreferenceNames.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.preferences; - -/** - * Preference keys for JSP UI - */ -public class JSPUIPreferenceNames { - /** - * A named preference that controls if code assist gets auto activated. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String AUTO_PROPOSE = getAutoProposeKey(); - - private static String getAutoProposeKey() { - return "autoPropose";//$NON-NLS-1$ - } - - /** - * A named preference that holds the characters that auto activate code - * assist. - * <p> - * Value is of type <code>String</code>. All characters that trigger auto - * code assist. - * </p> - */ - public static final String AUTO_PROPOSE_CODE = getAutoProposeCodeKey(); - - private static String getAutoProposeCodeKey() { - return "autoProposeCode";//$NON-NLS-1$ - } - - /** - * The key to store customized templates. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String TEMPLATES_KEY = getTemplatesKey(); - - private static String getTemplatesKey() { - return "org.eclipse.wst.sse.ui.custom_templates"; //$NON-NLS-1$ - } - - /** - * The key to store the last template name used in new JSP file wizard. - * Template name is stored instead of template id because user-created - * templates do not have template ids. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String NEW_FILE_TEMPLATE_NAME = "newFileTemplateName"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPColorPage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPColorPage.java deleted file mode 100644 index d0be95b91a..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPColorPage.java +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.preferences.ui; - -import java.util.ArrayList; -import java.util.Dictionary; -import java.util.Hashtable; -import java.util.Iterator; - -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.wst.jsdt.web.core.internal.provisional.contenttype.ContentTypeIdForJSP; -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.editor.IHelpContextIds; -import org.eclipse.wst.jsdt.web.ui.internal.style.IStyleConstantsJSP; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IModelManager; -import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore; -import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore.OverlayKey; -import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.eclipse.wst.xml.ui.internal.preferences.XMLColorPage; -import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML; - -public class JSPColorPage extends XMLColorPage { - - /** - * Overridden to set up StyledTextColorPicker differently - */ - @Override - protected void createContentsForPicker(Composite parent) { - // create the color picker - fPicker = new JSPStyledTextColorPicker(parent, SWT.NULL); - GridData data = new GridData(GridData.FILL_BOTH); - fPicker.setLayoutData(data); - - fPicker.setPreferenceStore(fOverlayStore); - setupPicker(fPicker); - - fPicker.setText(getSampleText()); - } - - /** - * Set up all the style preference keys in the overlay store - */ - @Override - protected OverlayKey[] createOverlayStoreKeys() { - ArrayList overlayKeys = new ArrayList(); - - ArrayList styleList = new ArrayList(); - initStyleList(styleList); - Iterator i = styleList.iterator(); - while (i.hasNext()) { - overlayKeys.add(new OverlayPreferenceStore.OverlayKey( - OverlayPreferenceStore.STRING, (String) i.next())); - } - - OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys - .size()]; - overlayKeys.toArray(keys); - return keys; - } - - @Override - public String getSampleText() { - return JSPUIMessages.Sample_JSP_doc; // = "<%@ page - // \n\tlanguage=\"java\" - // \n\tcontentType=\"text/html; - // charset=ISO-8859-1\"\n%>\n<jsp:include - // flush=\"true\" - // page=\"titleBar.jsp\"/>\n\n<%-- - // Use below tags ONLY for JSP - // 1.1 - // --%>\n<%\n\tSystem.out.println(\"Welcome!\");\n%>\n<%-- - // Use below tags ONLY for JSP - // 1.2 - // --%>\n<jsp:scriptlet>\n\tSystem.out.println(\"Welcome!\");\n</jsp:scriptlet>" - } - - @Override - protected void initContextStyleMap(Dictionary contextStyleMap) { - - initCommonContextStyleMap(contextStyleMap); - contextStyleMap.remove(DOMRegionContext.XML_CONTENT); // leave content - // between tags - // alone - contextStyleMap.remove(DOMRegionContext.XML_DECLARATION_OPEN); // xml/html - // specific - contextStyleMap.remove(DOMRegionContext.XML_DECLARATION_CLOSE); // xml/html - // specific - contextStyleMap.remove(DOMRegionContext.XML_ELEMENT_DECLARATION); // xml/html - // specific - contextStyleMap.remove(DOMRegionContext.XML_ELEMENT_DECL_CLOSE); // xml/html - // specific - - // contextStyleMap.put(XMLJSPRegionContexts.JSP_CONTENT, - // HTMLColorManager.SCRIPT_AREA); - // contextStyleMap.put(XMLJSPRegionContexts.BLOCK_TEXT, - // HTMLColorManager.SCRIPT_AREA); - contextStyleMap.put(DOMJSPRegionContexts.JSP_DECLARATION_OPEN, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_EXPRESSION_OPEN, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_CLOSE, - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - - contextStyleMap.put(DOMJSPRegionContexts.JSP_CONTENT, - IStyleConstantsJSP.JSP_CONTENT); - - contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, - IStyleConstantsXML.TAG_NAME); - contextStyleMap.put(DOMJSPRegionContexts.JSP_ROOT_TAG_NAME, - IStyleConstantsXML.TAG_NAME); - contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_OPEN, - IStyleConstantsXML.COMMENT_BORDER); - contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_TEXT, - IStyleConstantsXML.COMMENT_TEXT); - contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_CLOSE, - IStyleConstantsXML.COMMENT_BORDER); - - contextStyleMap.put( - DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, - IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - contextStyleMap.put( - DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE, - IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - } - - @Override - protected void initDescriptions(Dictionary descriptions) { - initCommonDescriptions(descriptions); - descriptions.remove(IStyleConstantsXML.XML_CONTENT); // leave content - // between tags - // alone - descriptions.remove(IStyleConstantsXML.DECL_BORDER); // xml/html - // specific - descriptions.put(IStyleConstantsHTML.SCRIPT_AREA_BORDER, - JSPUIMessages.JSP_Delimiters_UI_); // = "JSP Delimiters" - descriptions.put(IStyleConstantsJSP.JSP_CONTENT, - JSPUIMessages.JSPColorPage_jsp_content); - } - - @Override - protected void initStyleList(ArrayList list) { - initCommonStyleList(list); - list.remove(IStyleConstantsXML.XML_CONTENT); // leave content between - // tags alone - list.remove(IStyleConstantsXML.DECL_BORDER); // xml/html specific - list.add(IStyleConstantsHTML.SCRIPT_AREA_BORDER); - list.add(IStyleConstantsJSP.JSP_CONTENT); - } - - @Override - protected void setupPicker(StyledTextColorPicker picker) { - IModelManager mmanager = StructuredModelManager.getModelManager(); - picker.setParser(mmanager.createStructuredDocumentFor( - ContentTypeIdForJSP.ContentTypeID_JSP).getParser()); - - // create descriptions for highlighting types - Dictionary descriptions = new Hashtable(); - initDescriptions(descriptions); - - // map region types to highlighting types - Dictionary contextStyleMap = new Hashtable(); - initContextStyleMap(contextStyleMap); - - ArrayList styleList = new ArrayList(); - initStyleList(styleList); - - picker.setContextStyleMap(contextStyleMap); - picker.setDescriptions(descriptions); - picker.setStyleList(styleList); - - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) - */ - @Override - protected Control createContents(Composite parent) { - - Control c = super.createContents(parent); - PlatformUI.getWorkbench().getHelpSystem().setHelp(c, - IHelpContextIds.JSP_PREFWEBX_STYLES_HELPID); - return c; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore() - */ - @Override - protected IPreferenceStore doGetPreferenceStore() { - return JSPUIPlugin.getDefault().getPreferenceStore(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractColorPage#savePreferences() - */ - @Override - protected void savePreferences() { - JSPUIPlugin.getDefault().savePluginPreferences(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPFilesPreferencePage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPFilesPreferencePage.java deleted file mode 100644 index d23cb8ac17..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPFilesPreferencePage.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.jsdt.web.ui.internal.preferences.ui; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.wst.jsdt.web.core.internal.JSPCorePlugin; -import org.eclipse.wst.jsdt.web.core.internal.preferences.JSPCorePreferenceNames; -import org.eclipse.wst.jsdt.web.core.internal.provisional.contenttype.ContentTypeIdForJSP; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.editor.IHelpContextIds; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.html.ui.internal.preferences.ui.HTMLFilesPreferencePage; - -public class JSPFilesPreferencePage extends HTMLFilesPreferencePage { - private Button fValidateFragments; - - @Override - protected Preferences getModelPreferences() { - return JSPCorePlugin.getDefault().getPluginPreferences(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore() - */ - @Override - protected IPreferenceStore doGetPreferenceStore() { - return JSPUIPlugin.getDefault().getPreferenceStore(); - } - - @Override - protected void doSavePreferenceStore() { - JSPCorePlugin.getDefault().savePluginPreferences(); // model - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) - */ - @Override - protected Control createContents(Composite parent) { - Control c = super.createContents(parent); - - Group g = createGroup((Composite) c, 1); - g.setText(JSPUIMessages.JSPFilesPreferencePage_0); - fValidateFragments = createCheckBox(g, - JSPUIMessages.JSPFilesPreferencePage_1); - boolean validateFragments = getModelPreferences().getBoolean( - JSPCorePreferenceNames.VALIDATE_FRAGMENTS); - fValidateFragments.setSelection(validateFragments); - - PlatformUI.getWorkbench().getHelpSystem().setHelp(c, - IHelpContextIds.JSP_PREFWEBX_FILES_HELPID); - - setSize((Composite) c); - return c; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#createContentsForLoadingGroup(org.eclipse.swt.widgets.Composite) - */ - @Override - protected void createContentsForLoadingGroup(Composite parent) { - // no loading preferences - } - - @Override - protected IContentType getContentType() { - return Platform.getContentTypeManager().getContentType( - ContentTypeIdForJSP.ContentTypeID_JSP); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#initializeValuesForLoadingGroup() - */ - @Override - protected void initializeValuesForLoadingGroup() { - // no loading preferences - } - - @Override - protected void performDefaults() { - super.performDefaults(); - - boolean validateFragments = getModelPreferences().getDefaultBoolean( - JSPCorePreferenceNames.VALIDATE_FRAGMENTS); - fValidateFragments.setSelection(validateFragments); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#performDefaultsForLoadingGroup() - */ - @Override - protected void performDefaultsForLoadingGroup() { - // no loading preferences - } - - @Override - protected void storeValues() { - boolean validateFragments = fValidateFragments.getSelection(); - getModelPreferences().setValue( - JSPCorePreferenceNames.VALIDATE_FRAGMENTS, validateFragments); - super.storeValues(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#storeValuesForLoadingGroup() - */ - @Override - protected void storeValuesForLoadingGroup() { - // no loading preferences - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPSourcePreferencePage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPSourcePreferencePage.java deleted file mode 100644 index ae60894771..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPSourcePreferencePage.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.preferences.ui; - -import org.eclipse.jface.preference.PreferencePage; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.ScrolledComposite; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPreferencePage; -import org.eclipse.ui.dialogs.PreferenceLinkArea; -import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; - -public class JSPSourcePreferencePage extends PreferencePage implements - IWorkbenchPreferencePage { - - public void init(IWorkbench workbench) { - // do nothing - } - - @Override - protected Control createContents(Composite parent) { - Composite composite = createScrolledComposite(parent); - - Text label = new Text(composite, SWT.READ_ONLY); - label.setText(JSPUIMessages.JSPSourcePreferencePage_0); - GridData data = new GridData(GridData.FILL_HORIZONTAL - | GridData.GRAB_HORIZONTAL); - data.horizontalIndent = 0; - label.setLayoutData(data); - - PreferenceLinkArea fileEditorsArea = new PreferenceLinkArea( - composite, - SWT.NONE, - "org.eclipse.wst.html.ui.preferences.source", JSPUIMessages.JSPSourcePreferencePage_1,//$NON-NLS-1$ - (IWorkbenchPreferenceContainer) getContainer(), null); - - data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); - data.horizontalIndent = 5; - fileEditorsArea.getControl().setLayoutData(data); - - PreferenceLinkArea contentTypeArea = new PreferenceLinkArea( - composite, - SWT.NONE, - "org.eclipse.wst.sse.ui.preferences.xml.source", JSPUIMessages.JSPSourcePreferencePage_2,//$NON-NLS-1$ - (IWorkbenchPreferenceContainer) getContainer(), null); - - data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); - data.horizontalIndent = 5; - contentTypeArea.getControl().setLayoutData(data); - - setSize(composite); - return composite; - } - - private Composite createScrolledComposite(Composite parent) { - // create scrollbars for this parent when needed - final ScrolledComposite sc1 = new ScrolledComposite(parent, - SWT.H_SCROLL | SWT.V_SCROLL); - sc1.setLayoutData(new GridData(GridData.FILL_BOTH)); - Composite composite = createComposite(sc1); - sc1.setContent(composite); - - // not calling setSize for composite will result in a blank composite, - // so calling it here initially - // setSize actually needs to be called after all controls are created, - // so scrolledComposite - // has correct minSize - setSize(composite); - return composite; - } - - private void setSize(Composite composite) { - if (composite != null) { - // Note: The font is set here in anticipation that the class - // inheriting - // this base class may add widgets to the dialog. setSize - // is assumed to be called just before we go live. - applyDialogFont(composite); - Point minSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT); - composite.setSize(minSize); - // set scrollbar composite's min size so page is expandable but - // has scrollbars when needed - if (composite.getParent() instanceof ScrolledComposite) { - ScrolledComposite sc1 = (ScrolledComposite) composite - .getParent(); - sc1.setMinSize(minSize); - sc1.setExpandHorizontal(true); - sc1.setExpandVertical(true); - } - } - } - - private Composite createComposite(Composite parent) { - Composite composite = new Composite(parent, SWT.NULL); - - // GridLayout - GridLayout layout = new GridLayout(); - layout.marginWidth = 0; - layout.marginHeight = 0; - composite.setLayout(layout); - - // GridData - GridData data = new GridData(GridData.FILL); - data.horizontalIndent = 0; - data.verticalAlignment = GridData.FILL; - data.horizontalAlignment = GridData.FILL; - composite.setLayoutData(data); - - composite.setFont(parent.getFont()); - return composite; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPStyledTextColorPicker.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPStyledTextColorPicker.java deleted file mode 100644 index e1c3890c45..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPStyledTextColorPicker.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.preferences.ui; - -import org.eclipse.wst.jsdt.web.ui.internal.style.IStyleConstantsJSP; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker; - -/** - * Overrides StyledTextColorPicker for special enablement behavior for - * JSPContent (only background settable) - */ -public class JSPStyledTextColorPicker extends StyledTextColorPicker { - - public JSPStyledTextColorPicker(Composite parent, int style) { - super(parent, style); - } - - /** - * Activate controls based on the given local color type. Overridden to - * disable foreground color, bold. - */ - @Override - protected void activate(String namedStyle) { - super.activate(namedStyle); - - if (namedStyle == IStyleConstantsJSP.JSP_CONTENT) { - fForeground.setEnabled(false); - fBold.setEnabled(false); - if (showItalic) { - fItalic.setEnabled(false); - } - fForegroundLabel.setEnabled(false); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPTemplatePreferencePage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPTemplatePreferencePage.java deleted file mode 100644 index 0ffb0da765..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/preferences/ui/JSPTemplatePreferencePage.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.preferences.ui; - -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.jface.text.source.SourceViewer; -import org.eclipse.jface.text.source.SourceViewerConfiguration; -import org.eclipse.wst.jsdt.web.core.internal.provisional.contenttype.ContentTypeIdForJSP; -import org.eclipse.wst.jsdt.web.ui.StructuredTextViewerConfigurationJSP; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.editor.IHelpContextIds; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.texteditor.templates.TemplatePreferencePage; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration; -import org.eclipse.wst.sse.ui.internal.StructuredTextViewer; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; - -/** - * Preference page for JSP templates - */ -public class JSPTemplatePreferencePage extends TemplatePreferencePage { - - public JSPTemplatePreferencePage() { - JSPUIPlugin jspEditorPlugin = JSPUIPlugin.getDefault(); - - setPreferenceStore(jspEditorPlugin.getPreferenceStore()); - setTemplateStore(jspEditorPlugin.getTemplateStore()); - setContextTypeRegistry(jspEditorPlugin.getTemplateContextRegistry()); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.IPreferencePage#performOk() - */ - @Override - public boolean performOk() { - boolean ok = super.performOk(); - JSPUIPlugin.getDefault().savePluginPreferences(); - return ok; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.texteditor.templates.TemplatePreferencePage#isShowFormatterSetting() - */ - @Override - protected boolean isShowFormatterSetting() { - // template formatting has not been implemented - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) - */ - @Override - protected Control createContents(Composite ancestor) { - Control c = super.createContents(ancestor); - PlatformUI.getWorkbench().getHelpSystem().setHelp(c, - IHelpContextIds.JSP_PREFWEBX_TEMPLATES_HELPID); - return c; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.texteditor.templates.TemplatePreferencePage#createViewer(org.eclipse.swt.widgets.Composite) - */ - @Override - protected SourceViewer createViewer(Composite parent) { - SourceViewer viewer = null; - String contentTypeID = ContentTypeIdForJSP.ContentTypeID_JSP; - SourceViewerConfiguration sourceViewerConfiguration = new StructuredTextViewerConfiguration() { - StructuredTextViewerConfiguration baseConfiguration = new StructuredTextViewerConfigurationJSP(); - - @Override - public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { - return baseConfiguration - .getConfiguredContentTypes(sourceViewer); - } - - @Override - public LineStyleProvider[] getLineStyleProviders( - ISourceViewer sourceViewer, String partitionType) { - return baseConfiguration.getLineStyleProviders(sourceViewer, - partitionType); - } - }; - viewer = new StructuredTextViewer(parent, null, null, false, SWT.BORDER - | SWT.V_SCROLL | SWT.H_SCROLL); - ((StructuredTextViewer) viewer).getTextWidget().setFont( - JFaceResources.getFont("org.eclipse.wst.sse.ui.textfont")); //$NON-NLS-1$ - IStructuredModel scratchModel = StructuredModelManager - .getModelManager().createUnManagedStructuredModelFor( - contentTypeID); - IDocument document = scratchModel.getStructuredDocument(); - viewer.configure(sourceViewerConfiguration); - viewer.setDocument(document); - return viewer; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionAnnotationModelChanges.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionAnnotationModelChanges.java deleted file mode 100644 index ac8b363302..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionAnnotationModelChanges.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.projection; - -import java.util.Map; - -import org.eclipse.jface.text.source.Annotation; -import org.w3c.dom.Node; - -/** - * Contains a set of projection model additions/deletions/modifications - */ -class ProjectionAnnotationModelChanges { - // copies of this class located in: - // org.eclipse.wst.xml.ui.internal.projection - // org.eclipse.wst.css.ui.internal.projection - // org.eclipse.wst.html.ui.internal.projection - // org.eclipse.wst.jsdt.web.ui.internal.projection - private Node fNode; - private Annotation[] fDeletions; - private Map fAdditions; - private Annotation[] fModifications; - - public ProjectionAnnotationModelChanges(Node node, Annotation[] deletions, - Map additions, Annotation[] modifications) { - fNode = node; - fDeletions = deletions; - fAdditions = additions; - fModifications = modifications; - } - - public Map getAdditions() { - return fAdditions; - } - - public Annotation[] getDeletions() { - return fDeletions; - } - - public Annotation[] getModifications() { - return fModifications; - } - - public Node getNode() { - return fNode; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java deleted file mode 100644 index 313c02ceb8..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.projection; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.jface.text.source.Annotation; -import org.eclipse.jface.text.source.projection.ProjectionViewer; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.w3c.dom.Node; - -public class ProjectionModelNodeAdapterFactoryHTML extends - AbstractAdapterFactory { - // copies of this class located in: - // org.eclipse.wst.html.ui.internal.projection - // org.eclipse.wst.jsdt.web.ui.internal.projection - - /** - * List of projection viewers currently associated with this projection - * model node adapter factory. - */ - private HashMap fProjectionViewers; - - public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey, - boolean registerAdapters) { - super(adapterKey, registerAdapters); - } - - public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey) { - super(adapterKey); - } - - public ProjectionModelNodeAdapterFactoryHTML() { - this(ProjectionModelNodeAdapterHTML.class); - } - - /** - * Actually creates an adapter for the parent of target if target is the - * "adapt-able" node - */ - @Override - protected INodeAdapter createAdapter(INodeNotifier target) { - if ((isActive()) && (target instanceof Node) - && ((Node) target).getNodeType() == Node.ELEMENT_NODE) { - Node node = (Node) target; - if (isNodeProjectable(node)) { - - // actually work with the parent node to listen for add, - // delete events - Node parent = node.getParentNode(); - if (parent instanceof INodeNotifier) { - INodeNotifier parentNotifier = (INodeNotifier) parent; - ProjectionModelNodeAdapterHTML parentAdapter = (ProjectionModelNodeAdapterHTML) parentNotifier - .getExistingAdapter(ProjectionModelNodeAdapterHTML.class); - if (parentAdapter == null) { - // create a new adapter for parent - parentAdapter = new ProjectionModelNodeAdapterHTML(this); - parentNotifier.addAdapter(parentAdapter); - } - // call update on parent because a new node has just been - // added - parentAdapter.updateAdapter(parent); - } - } - } - - return null; - } - - /** - * Returns true if node is a node type able to fold - * - * @param node - * @return boolean true if node is projectable, false otherwise - */ - boolean isNodeProjectable(Node node) { - if (node.getNodeType() == Node.ELEMENT_NODE) { - String tagName = node.getNodeName(); - // node is only projectable if it is head, body, script, style, - // table, ul, ol tags - if (HTML40Namespace.ElementName.HEAD.equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.BODY - .equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.SCRIPT - .equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.STYLE - .equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.TABLE - .equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.UL.equalsIgnoreCase(tagName) - || HTML40Namespace.ElementName.OL.equalsIgnoreCase(tagName)) { - return true; - } - } - return false; - } - - /** - * Return true if this factory is currently actively managing projection - * - * @return - */ - boolean isActive() { - return (fProjectionViewers != null && !fProjectionViewers.isEmpty()); - } - - /** - * Updates projection annotation model if document is not in flux. - * Otherwise, queues up the changes to be applied when document is ready. - * - * @param node - * @param deletions - * @param additions - * @param modifications - */ - void queueAnnotationModelChanges(Node node, Annotation[] deletions, - Map additions, Annotation[] modifications) { - queueAnnotationModelChanges(node, deletions, additions, modifications, - null); - } - - /** - * Updates projection annotation model for a specific projection viewer if - * document is not in flux. Otherwise, queues up the changes to be applied - * when document is ready. - * - * @param node - * @param deletions - * @param additions - * @param modifications - * @param viewer - */ - void queueAnnotationModelChanges(Node node, Annotation[] deletions, - Map additions, Annotation[] modifications, ProjectionViewer viewer) { - // create a change object for latest change and add to queue - ProjectionAnnotationModelChanges newChange = new ProjectionAnnotationModelChanges( - node, deletions, additions, modifications); - if (fProjectionViewers != null) { - if (viewer != null) { - ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers - .get(viewer); - if (info != null) { - info.queueAnnotationModelChanges(newChange); - } - } else { - Iterator infos = fProjectionViewers.values().iterator(); - while (infos.hasNext()) { - ProjectionViewerInformation info = (ProjectionViewerInformation) infos - .next(); - info.queueAnnotationModelChanges(newChange); - } - } - } - } - - @Override - public void release() { - // go through every projectionviewer and call - // removeProjectionViewer(viewer); - if (fProjectionViewers != null) { - Iterator infos = fProjectionViewers.values().iterator(); - while (infos.hasNext()) { - ProjectionViewerInformation info = (ProjectionViewerInformation) infos - .next(); - info.dispose(); - infos.remove(); - } - fProjectionViewers = null; - } - super.release(); - } - - /** - * Adds viewer to list of projection viewers this factory is associated with - * - * @param viewer - - * assumes viewer's document and projection annotation model are - * not null - */ - void addProjectionViewer(ProjectionViewer viewer) { - // remove old entry if it exists - removeProjectionViewer(viewer); - - if (fProjectionViewers == null) { - fProjectionViewers = new HashMap(); - } - - // create new object containing projection viewer and its info - ProjectionViewerInformation info = new ProjectionViewerInformation( - viewer); - fProjectionViewers.put(viewer, info); - info.initialize(); - } - - /** - * Removes the given viewer from the list of projection viewers this factor - * is associated with - * - * @param viewer - */ - void removeProjectionViewer(ProjectionViewer viewer) { - if (fProjectionViewers != null) { - // remove entry from list of viewers - ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers - .remove(viewer); - if (info != null) { - info.dispose(); - } - // if removing last projection viewer, clear out everything - if (fProjectionViewers.isEmpty()) { - fProjectionViewers = null; - } - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java deleted file mode 100644 index 346023f570..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.projection; - -import org.eclipse.wst.jsdt.web.core.internal.provisional.JSP11Namespace; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.w3c.dom.Node; - -public class ProjectionModelNodeAdapterFactoryJSP extends - ProjectionModelNodeAdapterFactoryHTML { - public ProjectionModelNodeAdapterFactoryJSP() { - this(ProjectionModelNodeAdapterJSP.class); - } - - public ProjectionModelNodeAdapterFactoryJSP(Object adapterKey, - boolean registerAdapters) { - super(adapterKey, registerAdapters); - } - - public ProjectionModelNodeAdapterFactoryJSP(Object adapterKey) { - super(adapterKey); - } - - /** - * Actually creates an adapter for the parent of target if target is the - * "adapt-able" node - */ - @Override - protected INodeAdapter createAdapter(INodeNotifier target) { - if ((isActive()) && (target instanceof Node) - && ((Node) target).getNodeType() == Node.ELEMENT_NODE) { - Node node = (Node) target; - if (isNodeProjectable(node)) { - - // actually work with the parent node to listen for add, - // delete events - Node parent = node.getParentNode(); - if (parent instanceof INodeNotifier) { - INodeNotifier parentNotifier = (INodeNotifier) parent; - ProjectionModelNodeAdapterJSP parentAdapter = (ProjectionModelNodeAdapterJSP) parentNotifier - .getExistingAdapter(ProjectionModelNodeAdapterJSP.class); - if (parentAdapter == null) { - // create a new adapter for parent - parentAdapter = new ProjectionModelNodeAdapterJSP(this); - parentNotifier.addAdapter(parentAdapter); - } - // call update on parent because a new node has just been - // added - parentAdapter.updateAdapter(parent); - } - } - } - - return null; - } - - /** - * Returns true if node is a node type able to fold - * - * @param node - * @return boolean true if node is projectable, false otherwise - */ - @Override - boolean isNodeProjectable(Node node) { - if (node.getNodeType() == Node.ELEMENT_NODE) { - String tagName = node.getNodeName(); - // node is only projectable if it is jsp scriptlet tag - if (JSP11Namespace.ElementName.SCRIPTLET.equalsIgnoreCase(tagName)) { - return true; - } - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterHTML.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterHTML.java deleted file mode 100644 index fb29a07197..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterHTML.java +++ /dev/null @@ -1,305 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.projection; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.text.source.projection.ProjectionAnnotation; -import org.eclipse.jface.text.source.projection.ProjectionViewer; -import org.eclipse.swt.graphics.FontMetrics; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Canvas; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.w3c.dom.Node; - -/** - * Updates projection annotation model with projection annotations for this - * adapter node's children - */ -public class ProjectionModelNodeAdapterHTML implements INodeAdapter { - // copies of this class located in: - // org.eclipse.wst.html.ui.internal.projection - // org.eclipse.wst.jsdt.web.ui.internal.projection - private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.html.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$ - - private class TagProjectionAnnotation extends ProjectionAnnotation { - private boolean fIsVisible = false; /* workaround for BUG85874 */ - private Node fNode; - - public TagProjectionAnnotation(Node node, boolean isCollapsed) { - super(isCollapsed); - fNode = node; - } - - public Node getNode() { - return fNode; - } - - public void setNode(Node node) { - fNode = node; - } - - /** - * Does not paint hidden annotations. Annotations are hidden when they - * only span one line. - * - * @see ProjectionAnnotation#paint(org.eclipse.swt.graphics.GC, - * org.eclipse.swt.widgets.Canvas, - * org.eclipse.swt.graphics.Rectangle) - */ - @Override - public void paint(GC gc, Canvas canvas, Rectangle rectangle) { - /* workaround for BUG85874 */ - /* - * only need to check annotations that are expanded because hidden - * annotations should never have been given the chance to collapse. - */ - if (!isCollapsed()) { - // working with rectangle, so line height - FontMetrics metrics = gc.getFontMetrics(); - if (metrics != null) { - // do not draw annotations that only span one line and - // mark them as not visible - if ((rectangle.height / metrics.getHeight()) <= 1) { - fIsVisible = false; - return; - } - } - } - fIsVisible = true; - super.paint(gc, canvas, rectangle); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.source.projection.ProjectionAnnotation#markCollapsed() - */ - @Override - public void markCollapsed() { - /* workaround for BUG85874 */ - // do not mark collapsed if annotation is not visible - if (fIsVisible) { - super.markCollapsed(); - } - } - } - - // copies of this class located in: - // org.eclipse.wst.html.ui.internal.projection - // org.eclipse.wst.jsdt.web.ui.internal.projection - - ProjectionModelNodeAdapterFactoryHTML fAdapterFactory; - private Map fTagAnnotations = new HashMap(); - - public ProjectionModelNodeAdapterHTML( - ProjectionModelNodeAdapterFactoryHTML factory) { - fAdapterFactory = factory; - } - - /** - * Create a projection position from the given node. Able to get projection - * position if node isNodeProjectable. - * - * @param node - * @return null if no projection position possible, a Position otherwise - */ - private Position createProjectionPosition(Node node) { - Position pos = null; - if (fAdapterFactory.isNodeProjectable(node) - && node instanceof IndexedRegion) { - // IDocument document = - // fAdapterFactory.getProjectionViewer().getDocument(); - // if (document != null) { - IndexedRegion inode = (IndexedRegion) node; - int start = inode.getStartOffset(); - int end = inode.getEndOffset(); - if (start >= 0 && start < end) { - // region-based - // extra line when collapsed, but no region - // increase when add newline - pos = new Position(start, end - start); - // try { - // // line-based - // // extra line when collapsed, but no region - // // increase when add newline - // IRegion startLineRegion = - // document.getLineInformationOfOffset(start); - // IRegion endLineRegion = - // document.getLineInformationOfOffset(end); - // int startOffset = startLineRegion.getOffset(); - // int endOffset = endLineRegion.getOffset() + - // endLineRegion.getLength(); - // if (endOffset > startOffset) { - // pos = new Position(startOffset, endOffset - - // startOffset); - // } - // - // // line-based - // // no extra line when collapsed, but region increase - // // when add newline - // int startLine = document.getLineOfOffset(start); - // int endLine = document.getLineOfOffset(end); - // if (endLine + 1 < document.getNumberOfLines()) { - // int offset = document.getLineOffset(startLine); - // int endOffset = document.getLineOffset(endLine + 1); - // pos = new Position(offset, endOffset - offset); - // } - // } - // catch (BadLocationException x) { - // Logger.log(Logger.WARNING_DEBUG, null, x); - // } - } - } - // } - return pos; - } - - /** - * Find TagProjectionAnnotation for node in the current list of projection - * annotations for this adapter - * - * @param node - * @return TagProjectionAnnotation - */ - private TagProjectionAnnotation getExistingAnnotation(Node node) { - TagProjectionAnnotation anno = null; - - if ((node != null) && (!fTagAnnotations.isEmpty())) { - Iterator it = fTagAnnotations.keySet().iterator(); - while (it.hasNext() && anno == null) { - TagProjectionAnnotation a = (TagProjectionAnnotation) it.next(); - Node n = a.getNode(); - if (node.equals(n)) { - anno = a; - } - } - } - return anno; - } - - public boolean isAdapterForType(Object type) { - return type == ProjectionModelNodeAdapterHTML.class; - } - - public void notifyChanged(INodeNotifier notifier, int eventType, - Object changedFeature, Object oldValue, Object newValue, int pos) { - // check if folding is even enabled, if not, just ignore notifyChanged - // events - if (!fAdapterFactory.isActive()) { - return; - } - - if ((eventType == INodeNotifier.STRUCTURE_CHANGED) - && (notifier instanceof Node)) { - updateAdapter((Node) notifier); - } - } - - /** - * Update the projection annotation of all the nodes that are children of - * node - * - * @param node - */ - void updateAdapter(Node node) { - updateAdapter(node, null); - } - - /** - * Update the projection annotation of all the nodes that are children of - * node and adds all projection annotations to viewer (for newly added - * viewers) - * - * @param node - * @param viewer - */ - void updateAdapter(Node node, ProjectionViewer viewer) { - long start = System.currentTimeMillis(); - - Map additions = new HashMap(); - Map projectionAnnotations = new HashMap(); - - // go through immediate child nodes and figure out projection - // model annotations - if (node != null) { - Node childNode = node.getFirstChild(); - while (childNode != null) { - Position newPos = createProjectionPosition(childNode); - if (newPos != null) { - TagProjectionAnnotation newAnnotation = new TagProjectionAnnotation( - childNode, false); - TagProjectionAnnotation existing = getExistingAnnotation(childNode); - if (existing == null) { - // add to map containing all annotations for this - // adapter - projectionAnnotations.put(newAnnotation, newPos); - // add to map containing annotations to add - additions.put(newAnnotation, newPos); - } else { - // add to map containing all annotations for this - // adapter - projectionAnnotations.put(existing, newPos); - // remove from map containing annotations to delete - fTagAnnotations.remove(existing); - } - } - childNode = childNode.getNextSibling(); - } - - // in the end, want to delete anything leftover in old list, add - // everything in additions, and update everything in - // projectionAnnotations - ProjectionAnnotation[] oldList = null; - if (!fTagAnnotations.isEmpty()) { - oldList = (ProjectionAnnotation[]) fTagAnnotations.keySet() - .toArray(new ProjectionAnnotation[0]); - } - ProjectionAnnotation[] modifyList = null; - if (!projectionAnnotations.isEmpty()) { - modifyList = (ProjectionAnnotation[]) projectionAnnotations - .keySet().toArray(new ProjectionAnnotation[0]); - } - - // specifically add all annotations to viewer - if (viewer != null && !projectionAnnotations.isEmpty()) { - fAdapterFactory.queueAnnotationModelChanges(node, null, - projectionAnnotations, null, viewer); - } - - // only update when there is something to update - if ((oldList != null && oldList.length > 0) - || (!additions.isEmpty()) - || (modifyList != null && modifyList.length > 0)) { - fAdapterFactory.queueAnnotationModelChanges(node, oldList, - additions, modifyList); - } - } - - // save new list of annotations - fTagAnnotations = projectionAnnotations; - - if (debugProjectionPerf) { - long end = System.currentTimeMillis(); - String nodeName = node != null ? node.getNodeName() : "null"; //$NON-NLS-1$ - System.out - .println("ProjectionModelNodeAdapterHTML.updateAdapter (" + nodeName + "):" + (end - start)); //$NON-NLS-1$ //$NON-NLS-2$ - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterJSP.java deleted file mode 100644 index a942613f30..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionModelNodeAdapterJSP.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.projection; - -/** - * Updates projection annotation model with projection annotations for this - * adapter node's children - */ -public class ProjectionModelNodeAdapterJSP extends - ProjectionModelNodeAdapterHTML { - public ProjectionModelNodeAdapterJSP( - ProjectionModelNodeAdapterFactoryJSP factory) { - super(factory); - } - - @Override - public boolean isAdapterForType(Object type) { - return type == ProjectionModelNodeAdapterJSP.class; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionViewerInformation.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionViewerInformation.java deleted file mode 100644 index 053aa0eacc..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/ProjectionViewerInformation.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.projection; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.text.DocumentEvent; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IDocumentExtension; -import org.eclipse.jface.text.IDocumentListener; -import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel; -import org.eclipse.jface.text.source.projection.ProjectionViewer; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; - -/** - * Contains information about a projection viewer and also manages updating the - * viewer's projection annotation model - */ -class ProjectionViewerInformation { - // copies of this class located in: - // org.eclipse.wst.xml.ui.internal.projection - // org.eclipse.wst.css.ui.internal.projection - // org.eclipse.wst.html.ui.internal.projection - // org.eclipse.wst.jsdt.web.ui.internal.projection - - /** - * Listens to document to be aware of when to update the projection - * annotation model. - */ - private class DocumentListener implements IDocumentListener { - private ProjectionViewerInformation fInfo; - - public DocumentListener(ProjectionViewerInformation info) { - fInfo = info; - } - - public void documentAboutToBeChanged(DocumentEvent event) { - IDocument document = event.getDocument(); - if (fInfo.getDocument() == document) { - fInfo.setIsDocumentChanging(true); - } - } - - public void documentChanged(DocumentEvent event) { - // register a post notification replace so that projection - // annotation model will be updated after all documentChanged - // listeners have been notified - IDocument document = event.getDocument(); - if (document instanceof IDocumentExtension - && fInfo.getDocument() == document) { - if (fInfo.hasChangesQueued()) { - ((IDocumentExtension) document) - .registerPostNotificationReplace(this, - new PostDocumentChangedListener(fInfo)); - } - } - } - } - - /** - * Essentially a post document changed listener because it is called after - * documentchanged has been fired. - */ - private class PostDocumentChangedListener implements - IDocumentExtension.IReplace { - private ProjectionViewerInformation fInfo; - - public PostDocumentChangedListener(ProjectionViewerInformation info) { - fInfo = info; - } - - public void perform(IDocument document, IDocumentListener owner) { - fInfo.applyAnnotationModelChanges(); - fInfo.setIsDocumentChanging(false); - } - } - - /** - * Projection annotation model current associated with this projection - * viewer - */ - private ProjectionAnnotationModel fProjectionAnnotationModel; - /** - * Document currently associated with this projection viewer - */ - private IDocument fDocument; - /** - * Listener to fProjectionViewer's document - */ - private IDocumentListener fDocumentListener; - /** - * Indicates whether or not document is in the middle of changing - */ - private boolean fIsDocumentChanging = false; - /** - * List of projection annotation model changes that need to be applied - */ - private List fQueuedAnnotationChanges; - - public ProjectionViewerInformation(ProjectionViewer viewer) { - fDocument = viewer.getDocument(); - fProjectionAnnotationModel = viewer.getProjectionAnnotationModel(); - } - - IDocument getDocument() { - return fDocument; - } - - private List getQueuedAnnotationChanges() { - if (fQueuedAnnotationChanges == null) { - fQueuedAnnotationChanges = new ArrayList(); - } - return fQueuedAnnotationChanges; - } - - void setIsDocumentChanging(boolean changing) { - fIsDocumentChanging = changing; - } - - private boolean isDocumentChanging() { - return fIsDocumentChanging; - } - - /** - * Applies the pending projection annotation model changes to the projection - * annotation model. - */ - void applyAnnotationModelChanges() { - List queuedChanges = getQueuedAnnotationChanges(); - // go through all the pending annotation changes and apply - // them to - // the projection annotation model - while (!queuedChanges.isEmpty()) { - ProjectionAnnotationModelChanges changes = (ProjectionAnnotationModelChanges) queuedChanges - .remove(0); - try { - fProjectionAnnotationModel.modifyAnnotations(changes - .getDeletions(), changes.getAdditions(), changes - .getModifications()); - } catch (Exception e) { - // if anything goes wrong, log it be continue - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - } - - /** - * Returns true if there are annotation changes queued up, false otherwise - * - * @return boolean - */ - boolean hasChangesQueued() { - return !getQueuedAnnotationChanges().isEmpty(); - } - - /** - * Updates projection annotation model if document is not in flux. - * Otherwise, queues up the changes to be applied when document is ready. - */ - public void queueAnnotationModelChanges( - ProjectionAnnotationModelChanges newChange) { - /* - * future_TODO: maybe improve by checking if annotation projection model - * change already exists for node. if so, throw out old change. - */ - getQueuedAnnotationChanges().add(newChange); - - // if document isn't changing, go ahead and apply it - if (!isDocumentChanging()) { - applyAnnotationModelChanges(); - } - } - - public void initialize() { - // add document listener - if (fDocumentListener == null) { - fDocumentListener = new DocumentListener(this); - } - getDocument().addDocumentListener(fDocumentListener); - } - - public void dispose() { - // remove document listener - if (fDocumentListener != null) { - getDocument().removeDocumentListener(fDocumentListener); - } - - // clear out list of queued changes since it may no longer - // be accurate - if (fQueuedAnnotationChanges != null) { - fQueuedAnnotationChanges.clear(); - fQueuedAnnotationChanges = null; - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/StructuredTextFoldingProviderJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/StructuredTextFoldingProviderJSP.java deleted file mode 100644 index 24e5a73ca2..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/projection/StructuredTextFoldingProviderJSP.java +++ /dev/null @@ -1,428 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.projection; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextInputListener; -import org.eclipse.jface.text.source.projection.IProjectionListener; -import org.eclipse.jface.text.source.projection.ProjectionViewer; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -/** - * Updates the projection model of a structured model for JSP. - */ -public class StructuredTextFoldingProviderJSP implements - IStructuredTextFoldingProvider, IProjectionListener, ITextInputListener { - private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.jsdt.web.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$ - - private IDocument fDocument; - private ProjectionViewer fViewer; - private boolean fProjectionNeedsToBeEnabled = false; - /** - * Maximum number of child nodes to add adapters to (limit for performance - * sake) - */ - private final int MAX_CHILDREN = 10; - /** - * Maximum number of sibling nodes to add adapters to (limit for performance - * sake) - */ - private final int MAX_SIBLINGS = 1000; - - /** - * Adds an adapter to node and its children - * - * @param node - * @param childLevel - */ - private void addAdapterToNodeAndChildren(Node node, int childLevel) { - // stop adding initial adapters MAX_CHILDREN levels deep for - // performance sake - if (node instanceof INodeNotifier && childLevel < MAX_CHILDREN) { - INodeNotifier notifier = (INodeNotifier) node; - - // try and get the adapter for the current node and update the - // adapter with projection information - ProjectionModelNodeAdapterJSP adapter = (ProjectionModelNodeAdapterJSP) notifier - .getExistingAdapter(ProjectionModelNodeAdapterJSP.class); - if (adapter != null) { - adapter.updateAdapter(node, fViewer); - } else { - // just call getadapter so the adapter is created and - // automatically initialized - notifier.getAdapterFor(ProjectionModelNodeAdapterJSP.class); - } - ProjectionModelNodeAdapterHTML adapter2 = (ProjectionModelNodeAdapterHTML) notifier - .getExistingAdapter(ProjectionModelNodeAdapterHTML.class); - if (adapter2 != null) { - adapter2.updateAdapter(node); - } else { - // just call getadapter so the adapter is created and - // automatically initialized - notifier.getAdapterFor(ProjectionModelNodeAdapterHTML.class); - } - int siblingLevel = 0; - Node nextChild = node.getFirstChild(); - while (nextChild != null && siblingLevel < MAX_SIBLINGS) { - Node childNode = nextChild; - nextChild = childNode.getNextSibling(); - - addAdapterToNodeAndChildren(childNode, childLevel + 1); - ++siblingLevel; - } - } - } - - /** - * Goes through every node and adds an adapter onto each for tracking - * purposes - */ - private void addAllAdapters() { - long start = System.currentTimeMillis(); - - if (fDocument != null) { - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(fDocument); - if (sModel != null) { - int startOffset = 0; - IndexedRegion startNode = sModel - .getIndexedRegion(startOffset); - if (startNode instanceof Node) { - int siblingLevel = 0; - Node nextSibling = (Node) startNode; - while (nextSibling != null - && siblingLevel < MAX_SIBLINGS) { - Node currentNode = nextSibling; - nextSibling = currentNode.getNextSibling(); - - addAdapterToNodeAndChildren(currentNode, 0); - ++siblingLevel; - } - } - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - } - if (debugProjectionPerf) { - long end = System.currentTimeMillis(); - System.out - .println("StructuredTextFoldingProviderJSP.addAllAdapters: " + (end - start)); //$NON-NLS-1$ - } - } - - /** - * Get the ProjectionModelNodeAdapterFactoryHTML to use with this provider. - * - * @return ProjectionModelNodeAdapterFactoryHTML - */ - private ProjectionModelNodeAdapterFactoryHTML getAdapterFactoryHTML( - boolean createIfNeeded) { - long start = System.currentTimeMillis(); - - ProjectionModelNodeAdapterFactoryHTML factory = null; - if (fDocument != null) { - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(fDocument); - if (sModel != null) { - FactoryRegistry factoryRegistry = sModel - .getFactoryRegistry(); - - // getting the projectionmodelnodeadapter for the first - // time - // so do some initializing - if (!factoryRegistry - .contains(ProjectionModelNodeAdapterHTML.class) - && createIfNeeded) { - ProjectionModelNodeAdapterFactoryHTML newFactory = new ProjectionModelNodeAdapterFactoryHTML(); - - // add factory to factory registry - factoryRegistry.addFactory(newFactory); - - // add factory to propogating adapter - IDOMModel domModel = (IDOMModel) sModel; - Document document = domModel.getDocument(); - PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document) - .getAdapterFor(PropagatingAdapter.class); - if (propagatingAdapter != null) { - propagatingAdapter - .addAdaptOnCreateFactory(newFactory); - } - } - - // try and get the factory - factory = (ProjectionModelNodeAdapterFactoryHTML) factoryRegistry - .getFactoryFor(ProjectionModelNodeAdapterHTML.class); - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - } - - if (debugProjectionPerf) { - long end = System.currentTimeMillis(); - System.out - .println("StructuredTextFoldingProviderJSP.getAdapterFactoryHTML: " + (end - start)); //$NON-NLS-1$ - } - return factory; - } - - /** - * Get the ProjectionModelNodeAdapterFactoryJSP to use with this provider. - * - * @return ProjectionModelNodeAdapterFactoryJSP - */ - private ProjectionModelNodeAdapterFactoryJSP getAdapterFactoryJSP( - boolean createIfNeeded) { - long start = System.currentTimeMillis(); - - ProjectionModelNodeAdapterFactoryJSP factory = null; - if (fDocument != null) { - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(fDocument); - if (sModel != null) { - FactoryRegistry factoryRegistry = sModel - .getFactoryRegistry(); - - // getting the projectionmodelnodeadapter for the first - // time - // so do some initializing - if (!factoryRegistry - .contains(ProjectionModelNodeAdapterJSP.class) - && createIfNeeded) { - ProjectionModelNodeAdapterFactoryJSP newFactory = new ProjectionModelNodeAdapterFactoryJSP(); - - // add factory to factory registry - factoryRegistry.addFactory(newFactory); - - // add factory to propogating adapter - IDOMModel domModel = (IDOMModel) sModel; - Document document = domModel.getDocument(); - PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document) - .getAdapterFor(PropagatingAdapter.class); - if (propagatingAdapter != null) { - propagatingAdapter - .addAdaptOnCreateFactory(newFactory); - } - } - - // try and get the factory - factory = (ProjectionModelNodeAdapterFactoryJSP) factoryRegistry - .getFactoryFor(ProjectionModelNodeAdapterJSP.class); - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - } - - if (debugProjectionPerf) { - long end = System.currentTimeMillis(); - System.out - .println("StructuredTextFoldingProviderJSP.getAdapterFactoryJSP: " + (end - start)); //$NON-NLS-1$ - } - return factory; - } - - /** - * Initialize this provider with the correct document. Assumes projection is - * enabled. (otherwise, only install would have been called) - */ - public void initialize() { - if (!isInstalled()) { - return; - } - - // clear out old info - projectionDisabled(); - - fDocument = fViewer.getDocument(); - - // set projection viewer on new document's adapter factory - if (fViewer.getProjectionAnnotationModel() != null) { - ProjectionModelNodeAdapterFactoryJSP factory = getAdapterFactoryJSP(true); - if (factory != null) { - factory.addProjectionViewer(fViewer); - } - ProjectionModelNodeAdapterFactoryHTML factory2 = getAdapterFactoryHTML(true); - if (factory2 != null) { - factory2.addProjectionViewer(fViewer); - } - - addAllAdapters(); - } - fProjectionNeedsToBeEnabled = false; - } - - /** - * Associate a ProjectionViewer with this IStructuredTextFoldingProvider - * - * @param viewer - - * assumes not null - */ - public void install(ProjectionViewer viewer) { - // uninstall before trying to install new viewer - if (isInstalled()) { - uninstall(); - } - fViewer = viewer; - fViewer.addProjectionListener(this); - fViewer.addTextInputListener(this); - } - - private boolean isInstalled() { - return fViewer != null; - } - - public void projectionDisabled() { - ProjectionModelNodeAdapterFactoryJSP factory = getAdapterFactoryJSP(false); - if (factory != null) { - factory.removeProjectionViewer(fViewer); - } - ProjectionModelNodeAdapterFactoryHTML factory2 = getAdapterFactoryHTML(false); - if (factory2 != null) { - factory2.removeProjectionViewer(fViewer); - } - - // clear out all annotations - if (fViewer.getProjectionAnnotationModel() != null) { - fViewer.getProjectionAnnotationModel().removeAllAnnotations(); - } - - removeAllAdapters(); - - fDocument = null; - fProjectionNeedsToBeEnabled = false; - } - - public void projectionEnabled() { - initialize(); - } - - /** - * Removes an adapter from node and its children - * - * @param node - * @param level - */ - private void removeAdapterFromNodeAndChildren(Node node, int level) { - if (node instanceof INodeNotifier) { - INodeNotifier notifier = (INodeNotifier) node; - - // try and get the adapter for the current node and remove it - INodeAdapter adapter = notifier - .getExistingAdapter(ProjectionModelNodeAdapterJSP.class); - if (adapter != null) { - notifier.removeAdapter(adapter); - } - - INodeAdapter adapter2 = notifier - .getExistingAdapter(ProjectionModelNodeAdapterHTML.class); - if (adapter2 != null) { - notifier.removeAdapter(adapter2); - } - - Node nextChild = node.getFirstChild(); - while (nextChild != null) { - Node childNode = nextChild; - nextChild = childNode.getNextSibling(); - - removeAdapterFromNodeAndChildren(childNode, level + 1); - } - } - } - - /** - * Goes through every node and removes adapter from each for cleanup - * purposes - */ - private void removeAllAdapters() { - long start = System.currentTimeMillis(); - - if (fDocument != null) { - IStructuredModel sModel = null; - try { - sModel = StructuredModelManager.getModelManager() - .getExistingModelForRead(fDocument); - if (sModel != null) { - int startOffset = 0; - IndexedRegion startNode = sModel - .getIndexedRegion(startOffset); - if (startNode instanceof Node) { - Node nextSibling = (Node) startNode; - while (nextSibling != null) { - Node currentNode = nextSibling; - nextSibling = currentNode.getNextSibling(); - - removeAdapterFromNodeAndChildren(currentNode, 0); - } - } - } - } finally { - if (sModel != null) { - sModel.releaseFromRead(); - } - } - } - - if (debugProjectionPerf) { - long end = System.currentTimeMillis(); - System.out - .println("StructuredTextFoldingProviderJSP.addAllAdapters: " + (end - start)); //$NON-NLS-1$ - } - } - - public void inputDocumentAboutToBeChanged(IDocument oldInput, - IDocument newInput) { - // if folding is enabled and new document is going to be a totally - // different document, disable projection - if (fDocument != null && fDocument != newInput) { - // disable projection and disconnect everything - projectionDisabled(); - fProjectionNeedsToBeEnabled = true; - } - } - - public void inputDocumentChanged(IDocument oldInput, IDocument newInput) { - // if projection was previously enabled before input document changed - // and new document is different than old document - if (fProjectionNeedsToBeEnabled && fDocument == null - && newInput != null) { - projectionEnabled(); - fProjectionNeedsToBeEnabled = false; - } - } - - /** - * Disconnect this IStructuredTextFoldingProvider from projection viewer - */ - public void uninstall() { - if (isInstalled()) { - projectionDisabled(); - - fViewer.removeProjectionListener(this); - fViewer.removeTextInputListener(this); - fViewer = null; - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/registry/AdapterFactoryProviderForJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/registry/AdapterFactoryProviderForJSDT.java deleted file mode 100644 index ee4544986f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/registry/AdapterFactoryProviderForJSDT.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.registry; - -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapterFactory; -import org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterFactoryForJSDT; -//import org.eclipse.wst.jsdt.web.core.internal.modelhandler.ModelHandlerForJSP; -import org.eclipse.wst.html.core.internal.modelhandler.ModelHandlerForHTML; -import org.eclipse.wst.html.ui.internal.contentoutline.JFaceNodeAdapterFactoryForHTML; -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter; -import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider; -import org.eclipse.wst.sse.ui.internal.util.Assert; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -public class AdapterFactoryProviderForJSDT implements AdapterFactoryProvider { - - /* - * @see AdapterFactoryProvider#addAdapterFactories(IStructuredModel) - */ - public void addAdapterFactories(IStructuredModel structuredModel) { - // these are the main factories, on model's factory registry - addContentBasedFactories(structuredModel); - // ------- - // Must update/add to propagating adapters here too - addPropagatingAdapters(structuredModel); - } - - protected void addContentBasedFactories(IStructuredModel structuredModel) { - FactoryRegistry factoryRegistry = structuredModel.getFactoryRegistry(); - - Assert.isNotNull(factoryRegistry,"Program Error: client caller must ensure model has factory registry"); //$NON-NLS-1$ - INodeAdapterFactory factory = null; - factory = factoryRegistry.getFactoryFor(IJFaceNodeAdapter.class); - - if (!(factory instanceof JFaceNodeAdapterFactoryForJSDT)) { - factoryRegistry.removeFactoriesFor(IJFaceNodeAdapter.class); - factory = new JFaceNodeAdapterFactoryForJSDT(IJFaceNodeAdapter.class, true); - factoryRegistry.addFactory(factory); - } - - factory = factoryRegistry.getFactoryFor(IJSPTranslation.class); - - if (factory == null) { - factory = new JSPTranslationAdapterFactory(); - factoryRegistry.addFactory(factory); - } - } - - protected void addPropagatingAdapters(IStructuredModel structuredModel) {} - - /* - * @see AdapterFactoryProvider#isFor(ContentTypeDescription) - */ - public boolean isFor(IDocumentTypeHandler contentTypeDescription) { - //return (contentTypeDescription instanceof ModelHandlerForJSP); - return (contentTypeDescription instanceof ModelHandlerForHTML); - } - - public void reinitializeFactories(IStructuredModel structuredModel) { - addAdapterFactories(structuredModel); - - - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/IStyleConstantsJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/IStyleConstantsJSP.java deleted file mode 100644 index f1f20cfd06..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/IStyleConstantsJSP.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.style; - -public interface IStyleConstantsJSP { - public static final String JSP_CONTENT = "jsp_content"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/LineStyleProviderForJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/LineStyleProviderForJSP.java deleted file mode 100644 index e3d11c7af1..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/LineStyleProviderForJSP.java +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style; - -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.text.TextAttribute; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.ui.internal.provisional.style.AbstractLineStyleProvider; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML; - -public class LineStyleProviderForJSP extends AbstractLineStyleProvider - implements LineStyleProvider { - - private String fLanguage = null; - - // private static final String JAVA = "java"; //$NON-NLS-1$ - // private static final String[] JAVASCRIPT_LANGUAGE_KEYS = new String[] { - // "javascript", "javascript1.0", "javascript1.1_3", "javascript1.2", - // "javascript1.3", "javascript1.4", "javascript1.5", "javascript1.6", - // "jscript", "sashscript" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - // //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ - // //$NON-NLS-9$ //$NON-NLS-10$ - - public LineStyleProviderForJSP() { - super(); - } - - @Override - protected TextAttribute getAttributeFor(ITextRegion region) { - /** - * a method to centralize all the "sytle rules" for regions - */ - TextAttribute result = null; - // not sure why this is coming through null, but just to catch it - if (region == null) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.CDATA_TEXT); - } else { - - if (result == null) { - String type = region.getType(); - if ((type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) - || (type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN) - || (type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN) - || (type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) - || (type == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE) - || (type == DOMJSPRegionContexts.JSP_CLOSE)) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsHTML.SCRIPT_AREA_BORDER); - } else if (type == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME - || type == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_NAME); - } else if ((type == DOMJSPRegionContexts.JSP_COMMENT_OPEN) - || (type == DOMJSPRegionContexts.JSP_COMMENT_CLOSE)) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.COMMENT_BORDER); - } else if (type == DOMJSPRegionContexts.JSP_COMMENT_TEXT) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.COMMENT_TEXT); - } - // ============ These are in common with XML --- (for XML form - // of tags) - // Note: this assume's this provider is only called for - // true JSP Nodes. If its called for others, then this will - // cause their tag names to be highlighted too! - // Further checks could be done to prevent that, but doesn't - // seem worth it, since if adpaters factories are working - // right, - // then wouldn't be needed. - else if (type == DOMRegionContext.XML_TAG_NAME) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_NAME); - } else if ((type == DOMRegionContext.XML_TAG_OPEN) - || (type == DOMRegionContext.XML_END_TAG_OPEN) - || (type == DOMRegionContext.XML_TAG_CLOSE) - || (type == DOMRegionContext.XML_EMPTY_TAG_CLOSE)) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_BORDER); - } else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_ATTRIBUTE_NAME); - } else if ((type == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) - || (type == DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE) - || (type == DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - } else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS); - } - - // DMW: added 9/1/2002 Undefined color may need addjustment :) - else if (type == DOMRegionContext.UNDEFINED) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.XML_CONTENT); - } else if (type == DOMRegionContext.WHITE_SPACE) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.XML_CONTENT); - } else if (type == DOMRegionContext.XML_CONTENT) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.XML_CONTENT); - } else if (type == DOMRegionContext.BLOCK_TEXT) { - result = (TextAttribute) getTextAttributes().get( - IStyleConstantsXML.CDATA_TEXT); - } - } - } - // default, return null to signal "not handled" - // in which case, other factories should be tried - return result; - } - - @Override - protected IPreferenceStore getColorPreferences() { - return JSPUIPlugin.getDefault().getPreferenceStore(); - } - - @Override - protected void loadColors() { - addTextAttribute(IStyleConstantsXML.TAG_NAME); - addTextAttribute(IStyleConstantsXML.TAG_BORDER); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS); - addTextAttribute(IStyleConstantsXML.COMMENT_BORDER); - addTextAttribute(IStyleConstantsXML.COMMENT_TEXT); - addTextAttribute(IStyleConstantsXML.CDATA_BORDER); - addTextAttribute(IStyleConstantsXML.CDATA_TEXT); - addTextAttribute(IStyleConstantsXML.DECL_BORDER); - addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID); - addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF); - addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF); - addTextAttribute(IStyleConstantsXML.DOCTYPE_NAME); - addTextAttribute(IStyleConstantsXML.PI_CONTENT); - addTextAttribute(IStyleConstantsXML.PI_BORDER); - addTextAttribute(IStyleConstantsXML.XML_CONTENT); - addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER); - } - - @Override - protected void handlePropertyChange(PropertyChangeEvent event) { - String styleKey = null; - - if (event != null) { - String prefKey = event.getProperty(); - // check if preference changed is a style preference - if (IStyleConstantsXML.TAG_NAME.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_NAME; - } else if (IStyleConstantsXML.TAG_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_BORDER; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS; - } else if (IStyleConstantsXML.COMMENT_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsXML.COMMENT_BORDER; - } else if (IStyleConstantsXML.COMMENT_TEXT.equals(prefKey)) { - styleKey = IStyleConstantsXML.COMMENT_TEXT; - } else if (IStyleConstantsXML.CDATA_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsXML.CDATA_BORDER; - } else if (IStyleConstantsXML.CDATA_TEXT.equals(prefKey)) { - styleKey = IStyleConstantsXML.CDATA_TEXT; - } else if (IStyleConstantsXML.DECL_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsXML.DECL_BORDER; - } else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID.equals(prefKey)) { - styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID; - } else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF - .equals(prefKey)) { - styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF; - } else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF - .equals(prefKey)) { - styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF; - } else if (IStyleConstantsXML.DOCTYPE_NAME.equals(prefKey)) { - styleKey = IStyleConstantsXML.DOCTYPE_NAME; - } else if (IStyleConstantsXML.PI_CONTENT.equals(prefKey)) { - styleKey = IStyleConstantsXML.PI_CONTENT; - } else if (IStyleConstantsXML.PI_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsXML.PI_BORDER; - } else if (IStyleConstantsXML.XML_CONTENT.equals(prefKey)) { - styleKey = IStyleConstantsXML.XML_CONTENT; - } else if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER; - } - } - - if (styleKey != null) { - // overwrite style preference with new value - addTextAttribute(styleKey); - super.handlePropertyChange(event); - } - } - - /** - * Returns the language. - * - * @return String - */ - public String getLanguage() { - return fLanguage; - } - - /** - * Sets the language. - * - * @param language - * The language to set - */ - public void setLanguage(String language) { - this.fLanguage = language; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/IStyleConstantsJSPJava.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/IStyleConstantsJSPJava.java deleted file mode 100644 index c0020650a8..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/IStyleConstantsJSPJava.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.style.java; - -public interface IStyleConstantsJSPJava { - String JAVA_KEYWORD = "keyword"; //$NON-NLS-1$ - String JAVA_SINGLE_LINE_COMMENT = "single_line_comment"; //$NON-NLS-1$ - String JAVA_STRING = "string"; //$NON-NLS-1$ - String JAVA_DEFAULT = "default"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaCodeScanner.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaCodeScanner.java deleted file mode 100644 index 2bc85ba5dc..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaCodeScanner.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.java; - -import org.eclipse.wst.jsdt.web.core.internal.java.JsDataTypes; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.text.rules.EndOfLineRule; -import org.eclipse.jface.text.rules.IRule; -import org.eclipse.jface.text.rules.IToken; -import org.eclipse.jface.text.rules.MultiLineRule; -import org.eclipse.jface.text.rules.SingleLineRule; -import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.text.rules.WordRule; - -/** - * A Java code scanner. - */ -class JavaCodeScanner extends org.eclipse.jface.text.rules.RuleBasedScanner { - private IToken fKeywordToken; - private IToken fTypeToken; - private IToken fStringToken; - private IToken fSingleLineCommentToken; - private IToken fDefaultToken; - - private static String[] fgKeywords = JsDataTypes.KEYWORDS; - private static String[] fgTypes = JsDataTypes.TYPES; - private static String[] fgConstants = JsDataTypes.CONSTANTS; - - /** - * Creates a Java code scanner - */ - public JavaCodeScanner() { - super(); - } - - public void initializeRules() { - List rules = new ArrayList(); - - // Add rule for multiple line comments. - rules.add(new MultiLineRule("/*", "*/", fSingleLineCommentToken));//$NON-NLS-1$ //$NON-NLS-2$ - - // Add rule for single line comments. - rules.add(new EndOfLineRule("//", fSingleLineCommentToken));//$NON-NLS-1$ - - // Add rule for strings and character constants. - rules.add(new SingleLineRule("\"", "\"", fStringToken, '\\'));//$NON-NLS-2$//$NON-NLS-1$ - rules.add(new SingleLineRule("'", "'", fStringToken, '\\'));//$NON-NLS-2$//$NON-NLS-1$ - - // Add generic whitespace rule. - // rules.add(new WhitespaceRule(new JavaWhitespaceDetector())); - - // Add word rule for keywords, types, and constants. - WordRule wordRule = new WordRule(new JavaWordDetector(), fDefaultToken); - for (int i = 0; i < fgKeywords.length; i++) { - wordRule.addWord(fgKeywords[i], fKeywordToken); - } - for (int i = 0; i < fgTypes.length; i++) { - wordRule.addWord(fgTypes[i], fTypeToken); - } - for (int i = 0; i < fgConstants.length; i++) { - wordRule.addWord(fgConstants[i], fTypeToken); - } - rules.add(wordRule); - - IRule[] result = new IRule[rules.size()]; - rules.toArray(result); - setRules(result); - } - - public void setTokenData(String tokenKey, Object data) { - if (tokenKey == IStyleConstantsJSPJava.JAVA_KEYWORD) { - fKeywordToken = new Token(data); - fTypeToken = new Token(data); - } else if (tokenKey == IStyleConstantsJSPJava.JAVA_STRING) { - fStringToken = new Token(data); - } else if (tokenKey == IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT) { - fSingleLineCommentToken = new Token(data); - } else if (tokenKey == IStyleConstantsJSPJava.JAVA_DEFAULT) { - fDefaultToken = new Token(data); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaColorProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaColorProvider.java deleted file mode 100644 index 98c7fa19d3..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaColorProvider.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.java; - -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceConverter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.RGB; - -/** - * Colors used in the Java editor - */ -public class JavaColorProvider { - - // people should not be setting these, even though they are currently not - // final - public static RGB MULTI_LINE_COMMENT = new RGB(128, 0, 0); - public static RGB SINGLE_LINE_COMMENT = new RGB(128, 128, 0); - public static RGB KEYWORD = new RGB(0, 0, 128); - public static RGB TYPE = new RGB(0, 0, 128); - public static RGB STRING = new RGB(0, 128, 0); - public static RGB DEFAULT = new RGB(0, 0, 0); - public static RGB JAVADOC_KEYWORD = new RGB(0, 128, 0); - public static RGB JAVADOC_TAG = new RGB(128, 128, 128); - public static RGB JAVADOC_LINK = new RGB(128, 128, 128); - public static RGB JAVADOC_DEFAULT = new RGB(0, 128, 128); - - public static int MULTI_LINE_COMMENT_BOLD = SWT.NORMAL; - public static int SINGLE_LINE_COMMENT_BOLD = SWT.NORMAL; - public static int KEYWORD_BOLD = SWT.BOLD; - public static int TYPE_BOLD = SWT.BOLD; - public static int STRING_BOLD = SWT.NORMAL; - public static int DEFAULT_BOLD = SWT.NORMAL; - public static int JAVADOC_KEYWORD_BOLD = SWT.BOLD; - public static int JAVADOC_TAG_BOLD = SWT.NORMAL; - public static int JAVADOC_LINK_BOLD = SWT.NORMAL; - public static int JAVADOC_DEFAULT_BOLD = SWT.NORMAL; - - private static JavaColorProvider fInstance = null; - - public static JavaColorProvider getInstance() { - if (fInstance == null) { - fInstance = new JavaColorProvider(); - } - return fInstance; - } - - /** - * Use colors from JDT plugin - */ - public void loadJavaColors() { - IPreferenceStore jdtStore = PreferenceConstants.getPreferenceStore(); - MULTI_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR); - SINGLE_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR); - KEYWORD = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR); - TYPE = KEYWORD; - STRING = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_STRING_COLOR); - DEFAULT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR); - JAVADOC_KEYWORD = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR); - JAVADOC_TAG = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR); - JAVADOC_LINK = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR); - JAVADOC_DEFAULT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR); - - MULTI_LINE_COMMENT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - SINGLE_LINE_COMMENT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - KEYWORD_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD - : SWT.NORMAL; - TYPE_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD - : SWT.NORMAL; - STRING_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_STRING_BOLD) ? SWT.BOLD - : SWT.NORMAL; - DEFAULT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_TAG_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_LINK_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_DEFAULT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWhitespaceDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWhitespaceDetector.java deleted file mode 100644 index 8ec04c3ef9..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWhitespaceDetector.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.java; - -/** - * A java aware white space detector. - */ -public class JavaWhitespaceDetector implements - org.eclipse.jface.text.rules.IWhitespaceDetector { - - /** - * @see org.eclipse.jface.text.rules.IWhitespaceDetector#isWhitespace - */ - public boolean isWhitespace(char c) { - return Character.isWhitespace(c); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWordDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWordDetector.java deleted file mode 100644 index c2aebede0f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/JavaWordDetector.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.java; - -/** - * A Java aware word detector. - */ -public class JavaWordDetector implements - org.eclipse.jface.text.rules.IWordDetector { - - /** - * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierPart - */ - public boolean isWordPart(char c) { - return Character.isJavaIdentifierPart(c); - } - - /** - * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierStart - */ - public boolean isWordStart(char c) { - return Character.isJavaIdentifierStart(c); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/LineStyleProviderForJava.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/LineStyleProviderForJava.java deleted file mode 100644 index 02914566ee..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/java/LineStyleProviderForJava.java +++ /dev/null @@ -1,490 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.jsdt.web.ui.internal.style.java; - -import java.util.Collection; -import java.util.HashMap; - -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceConverter; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITypedRegion; -import org.eclipse.jface.text.TextAttribute; -import org.eclipse.jface.text.rules.IToken; -import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.style.IStyleConstantsJSP; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper; -import org.eclipse.wst.sse.ui.internal.provisional.style.Highlighter; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; -import org.eclipse.wst.sse.ui.internal.util.EditorUtility; -import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML; - -// Note: many of the methods in this class were based on (or copied from) those -// found in the example Java Editor -public class LineStyleProviderForJava implements LineStyleProvider { - private class PropertyChangeListener implements IPropertyChangeListener { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - // have to do it this way so others can override the method - handlePropertyChange(event); - } - } - - private IDocument fDocument; - private Highlighter fHighlighter; - private boolean fIsInitialized = false; - private PropertyChangeListener fPreferenceListener = new PropertyChangeListener(); - /** The scanner it uses */ - private JavaCodeScanner fScanner; - /** Contains all text attributes pretaining to this line style provider */ - private HashMap fTextAttributes = null; - - public LineStyleProviderForJava() { - super(); - fScanner = new JavaCodeScanner(); - } - - /** - * Adds style information to the given text presentation. - * - * @param presentation - * the text presentation to be extended - * @param offset - * the offset of the range to be styled - * @param length - * the length of the range to be styled - * @param attr - * the attribute describing the style of the range to be styled - */ - private void addRange(Collection presentation, int offset, int length, - TextAttribute attr) { - // support for user defined backgroud for JSP scriptlet regions - TextAttribute ta = (TextAttribute) getTextAttributes().get( - IStyleConstantsJSP.JSP_CONTENT); - Color bgColor = ta.getBackground(); - if (bgColor == null) { - bgColor = attr.getBackground(); - } - StyleRange result = new StyleRange(offset, length, - attr.getForeground(), bgColor, attr.getStyle()); - if ((attr.getStyle() & TextAttribute.STRIKETHROUGH) != 0) { - result.strikeout = true; - } - if ((attr.getStyle() & TextAttribute.UNDERLINE) != 0) { - result.underline = true; - } - presentation.add(result); - } - - /** - * Looks up the colorKey in the preference store and adds the style - * information to list of TextAttributes - * - * @param colorKey - */ - private void addTextAttribute(String colorKey) { - if (getColorPreferences() != null) { - String prefString = getColorPreferences().getString(colorKey); - String[] stylePrefs = ColorHelper - .unpackStylePreferences(prefString); - if (stylePrefs != null) { - RGB foreground = ColorHelper.toRGB(stylePrefs[0]); - RGB background = ColorHelper.toRGB(stylePrefs[1]); - boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue(); - boolean italic = Boolean.valueOf(stylePrefs[3]).booleanValue(); - boolean strikethrough = Boolean.valueOf(stylePrefs[4]) - .booleanValue(); - boolean underline = Boolean.valueOf(stylePrefs[5]) - .booleanValue(); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italic) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - TextAttribute createTextAttribute = createTextAttribute( - foreground, background, style); - getTextAttributes().put(colorKey, createTextAttribute); - } - } - } - - /** - * Looks up the colorKey in the preference store and adds the style - * information to list of TextAttributes - * - * @param colorKey - */ - private void addJavaTextAttribute(String colorKey) { - IPreferenceStore store = getJavaColorPreferences(); - if (store != null && colorKey != null) { - TextAttribute ta = null; - if (colorKey == IStyleConstantsJSPJava.JAVA_KEYWORD) { - // keyword - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } else if (colorKey == IStyleConstantsJSPJava.JAVA_STRING) { - // string - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_STRING_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_STRING_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_STRING_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_STRING_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_STRING_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } else if (colorKey == IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT) { - // single line comment - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } else if (colorKey == IStyleConstantsJSPJava.JAVA_DEFAULT) { - // default - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } - if (ta != null) { - getTextAttributes().put(colorKey, ta); - fScanner.setTokenData(colorKey, ta); - } - } - } - - private TextAttribute createTextAttribute(RGB foreground, RGB background, - int style) { - return new TextAttribute((foreground != null) ? EditorUtility - .getColor(foreground) : null, - (background != null) ? EditorUtility.getColor(background) - : null, style); - } - - /** - * Returns the hashtable containing all the text attributes for this line - * style provider. Lazily creates a hashtable if one has not already been - * created. - * - * @return - */ - private HashMap getTextAttributes() { - if (fTextAttributes == null) { - fTextAttributes = new HashMap(); - loadColors(); - } - return fTextAttributes; - } - - /** - * Returns a text attribute encoded in the given token. If the token's data - * is not <code>null</code> and a text attribute it is assumed that it is - * the encoded text attribute. It returns the default text attribute if - * there is no encoded text attribute found. - * - * @param token - * the token whose text attribute is to be determined - * @return the token's text attribute - */ - private TextAttribute getTokenTextAttribute(IToken token) { - TextAttribute ta = null; - - Object data = token.getData(); - if (data instanceof TextAttribute) { - ta = (TextAttribute) data; - } else { - ta = (TextAttribute) getTextAttributes().get( - IStyleConstantsJSPJava.JAVA_DEFAULT); - } - return ta; - } - - public void init(IStructuredDocument document, Highlighter highlighter) { - fDocument = document; - fHighlighter = highlighter; - - if (fIsInitialized) { - return; - } - - registerPreferenceListener(); - - fIsInitialized = true; - } - - private void loadColors() { - addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - addTextAttribute(IStyleConstantsJSP.JSP_CONTENT); - - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_KEYWORD); - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_STRING); - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT); - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_DEFAULT); - - fScanner.initializeRules(); - } - - protected void handlePropertyChange(PropertyChangeEvent event) { - String styleKey = null; - String javaStyleKey = null; - - if (event != null) { - String prefKey = event.getProperty(); - // check if preference changed is a style preference - if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE; - } else if (IStyleConstantsJSP.JSP_CONTENT.equals(prefKey)) { - styleKey = IStyleConstantsJSP.JSP_CONTENT; - } else if (PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR - .equals(prefKey) - || (PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD - .equals(prefKey)) - || (PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPJava.JAVA_KEYWORD; - } else if (PreferenceConstants.EDITOR_STRING_COLOR.equals(prefKey) - || (PreferenceConstants.EDITOR_STRING_BOLD.equals(prefKey)) - || (PreferenceConstants.EDITOR_STRING_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPJava.JAVA_STRING; - } else if (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR - .equals(prefKey) - || (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD - .equals(prefKey)) - || (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT; - } else if (PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR - .equals(prefKey) - || (PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD - .equals(prefKey)) - || (PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPJava.JAVA_DEFAULT; - } - } - - if (styleKey != null) { - // overwrite style preference with new value - addTextAttribute(styleKey); - } - if (javaStyleKey != null) { - // overwrite style preference with new value - addJavaTextAttribute(javaStyleKey); - fScanner.initializeRules(); - } - if (styleKey != null || javaStyleKey != null) { - // force a full update of the text viewer - fHighlighter.refreshDisplay(); - } - } - - public boolean prepareRegions(ITypedRegion typedRegion, - int ssssrequestedStart, int ssssrequestedLength, - Collection holdResults) { - boolean result = true; - try { - // ideally, eventually, we'll have a "virtualDocument" we can - // refer to, but for now ... we'll simple rescan the one region. - // use simple adjustment (since "sub-content" starts at 0 - int offsetAdjustment = typedRegion.getOffset(); - String content = fDocument.get(typedRegion.getOffset(), typedRegion - .getLength()); - IDocument document = new Document(content); - - int lastStart = 0; - int length = 0; - IToken lastToken = Token.UNDEFINED; - - int remainingLength = typedRegion.getLength(); - fScanner.setRange(document, lastStart, remainingLength); - - while (true) { - IToken token = fScanner.nextToken(); - - if (token.isEOF()) { - if (!lastToken.isUndefined() && length != 0) { - addRange(holdResults, lastStart + offsetAdjustment, - length, getTokenTextAttribute(lastToken)); - } - break; - } - - if (token.isWhitespace()) { - length += fScanner.getTokenLength(); - continue; - } - - if (lastToken.isUndefined()) { - lastToken = token; - length += fScanner.getTokenLength(); - continue; - } - - if (token != lastToken) { - addRange(holdResults, lastStart + offsetAdjustment, length, - getTokenTextAttribute(lastToken)); - lastToken = token; - lastStart = fScanner.getTokenOffset(); - length = fScanner.getTokenLength(); - continue; - } - - length += fScanner.getTokenLength(); - } - } catch (BadLocationException e) { - // shouldn't happen, but we don't want it to stop other - // highlighting, if it does. - result = false; - } - return result; - } - - private void registerPreferenceListener() { - getColorPreferences().addPropertyChangeListener(fPreferenceListener); - getJavaColorPreferences() - .addPropertyChangeListener(fPreferenceListener); - } - - public void release() { - unregisterPreferenceManager(); - if (fTextAttributes != null) { - fTextAttributes.clear(); - fTextAttributes = null; - } - } - - private void unregisterPreferenceManager() { - getColorPreferences().removePropertyChangeListener(fPreferenceListener); - getJavaColorPreferences().removePropertyChangeListener( - fPreferenceListener); - } - - private IPreferenceStore getColorPreferences() { - return JSPUIPlugin.getDefault().getPreferenceStore(); - } - - private IPreferenceStore getJavaColorPreferences() { - return PreferenceConstants.getPreferenceStore(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/IStyleConstantsJSPEL.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/IStyleConstantsJSPEL.java deleted file mode 100644 index 7ecd0c651d..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/IStyleConstantsJSPEL.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.style.jspel; - -public interface IStyleConstantsJSPEL { - String EL_KEYWORD = "keyword"; //$NON-NLS-1$ - String EL_DEFAULT = "default"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELCodeScanner.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELCodeScanner.java deleted file mode 100644 index 956710cfc8..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELCodeScanner.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.jspel; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.text.rules.IRule; -import org.eclipse.jface.text.rules.IToken; -import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.text.rules.WhitespaceRule; -import org.eclipse.jface.text.rules.WordRule; - -/** - * A Java code scanner. - */ -public class JSPELCodeScanner extends - org.eclipse.jface.text.rules.RuleBasedScanner { - private IToken fKeywordToken; - private IToken fTypeToken; - private IToken fDefaultToken; - - private static String[] fgKeywords = { "and", //$NON-NLS-1$ - "did", //$NON-NLS-1$ - "div", //$NON-NLS-1$ - "empty", //$NON-NLS-1$ - "eq", //$NON-NLS-1$ - "ge", //$NON-NLS-1$ - "gt", //$NON-NLS-1$ - "or", //$NON-NLS-1$ - "le", //$NON-NLS-1$ - "lt", //$NON-NLS-1$ - "mod", //$NON-NLS-1$ - "ne", //$NON-NLS-1$ - "not" //$NON-NLS-1$ - }; - private static String[] fgConstants = { "false", "true" };//$NON-NLS-2$//$NON-NLS-1$ - - /** - * Creates a Java code scanner - */ - public JSPELCodeScanner() { - super(); - } - - public void initializeRules() { - List rules = new ArrayList(); - - // Add generic whitespace rule. - rules.add(new WhitespaceRule(new JSPELWhitespaceDetector())); - - // Add word rule for keywords, types, and constants. - WordRule wordRule = new WordRule(new JSPELWordDetector(), fDefaultToken); - for (int i = 0; i < fgKeywords.length; i++) { - wordRule.addWord(fgKeywords[i], fKeywordToken); - } - for (int i = 0; i < fgConstants.length; i++) { - wordRule.addWord(fgConstants[i], fTypeToken); - } - rules.add(wordRule); - - IRule[] result = new IRule[rules.size()]; - rules.toArray(result); - setRules(result); - } - - public void setTokenData(String tokenKey, Object data) { - if (tokenKey == IStyleConstantsJSPEL.EL_KEYWORD) { - fKeywordToken = new Token(data); - fTypeToken = new Token(data); - } else if (tokenKey == IStyleConstantsJSPEL.EL_DEFAULT) { - fDefaultToken = new Token(data); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELColorProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELColorProvider.java deleted file mode 100644 index 883a280e27..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELColorProvider.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.jspel; - -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceConverter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.RGB; - -/** - * Colors used in the Java editor - */ -public class JSPELColorProvider { - - // people should not be setting these, even though they are currently not - // final - public static RGB MULTI_LINE_COMMENT = new RGB(128, 0, 0); - public static RGB SINGLE_LINE_COMMENT = new RGB(128, 128, 0); - public static RGB KEYWORD = new RGB(0, 0, 128); - public static RGB TYPE = new RGB(0, 0, 128); - public static RGB STRING = new RGB(0, 128, 0); - public static RGB DEFAULT = new RGB(0, 0, 0); - public static RGB JAVADOC_KEYWORD = new RGB(0, 128, 0); - public static RGB JAVADOC_TAG = new RGB(128, 128, 128); - public static RGB JAVADOC_LINK = new RGB(128, 128, 128); - public static RGB JAVADOC_DEFAULT = new RGB(0, 128, 128); - - public static int MULTI_LINE_COMMENT_BOLD = SWT.NORMAL; - public static int SINGLE_LINE_COMMENT_BOLD = SWT.NORMAL; - public static int KEYWORD_BOLD = SWT.BOLD; - public static int TYPE_BOLD = SWT.BOLD; - public static int STRING_BOLD = SWT.NORMAL; - public static int DEFAULT_BOLD = SWT.NORMAL; - public static int JAVADOC_KEYWORD_BOLD = SWT.BOLD; - public static int JAVADOC_TAG_BOLD = SWT.NORMAL; - public static int JAVADOC_LINK_BOLD = SWT.NORMAL; - public static int JAVADOC_DEFAULT_BOLD = SWT.NORMAL; - - /** - * @deprecated all editors use same - */ - @Deprecated - public static RGB EDITOR_BACKGROUND = new RGB(255, 255, 255); - /** - * @deprecated all editors use same - */ - @Deprecated - public static boolean EDITOR_CURRENT_LINE = true; - /** - * @deprecated all editors use same - */ - @Deprecated - public static RGB EDITOR_CURRENT_LINE_COLOR = new RGB(128, 128, 128); - - private static JSPELColorProvider fInstance = null; - - public static JSPELColorProvider getInstance() { - if (fInstance == null) { - fInstance = new JSPELColorProvider(); - } - return fInstance; - } - - /** - * Use colors from JDT plugin - */ - public void loadJavaColors() { - - IPreferenceStore jdtStore = PreferenceConstants.getPreferenceStore(); - MULTI_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR); - SINGLE_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR); - KEYWORD = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR); - TYPE = KEYWORD; - STRING = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_STRING_COLOR); - DEFAULT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR); - JAVADOC_KEYWORD = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR); - JAVADOC_TAG = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR); - JAVADOC_LINK = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR); - JAVADOC_DEFAULT = PreferenceConverter.getColor(jdtStore, - PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR); - - MULTI_LINE_COMMENT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - SINGLE_LINE_COMMENT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - KEYWORD_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD - : SWT.NORMAL; - TYPE_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD - : SWT.NORMAL; - STRING_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_STRING_BOLD) ? SWT.BOLD - : SWT.NORMAL; - DEFAULT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_TAG_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_LINK_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD) ? SWT.BOLD - : SWT.NORMAL; - JAVADOC_DEFAULT_BOLD = jdtStore - .getBoolean(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD) ? SWT.BOLD - : SWT.NORMAL; - - // EDITOR_BACKGROUND = new RGB(255, 255, 255); - - // IPreferenceStore sseStore = - // SSEUIPlugin.getDefault().getPreferenceStore(); - // EDITOR_CURRENT_LINE = - // sseStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE); - // EDITOR_CURRENT_LINE_COLOR = PreferenceConverter.getColor(sseStore, - // AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWhitespaceDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWhitespaceDetector.java deleted file mode 100644 index 547e697b51..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWhitespaceDetector.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.jspel; - -/** - * A java aware white space detector. - */ -public class JSPELWhitespaceDetector implements - org.eclipse.jface.text.rules.IWhitespaceDetector { - - /** - * @see org.eclipse.jface.text.rules.IWhitespaceDetector#isWhitespace - */ - public boolean isWhitespace(char c) { - return Character.isWhitespace(c); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWordDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWordDetector.java deleted file mode 100644 index adb9a973d0..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/JSPELWordDetector.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.jspel; - -/** - * A Java aware word detector. - */ -public class JSPELWordDetector implements - org.eclipse.jface.text.rules.IWordDetector { - - /** - * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierPart - */ - public boolean isWordPart(char c) { - return Character.isJavaIdentifierPart(c); - } - - /** - * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierStart - */ - public boolean isWordStart(char c) { - return Character.isJavaIdentifierStart(c); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/LineStyleProviderForJSPEL.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/LineStyleProviderForJSPEL.java deleted file mode 100644 index 557f539166..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/style/jspel/LineStyleProviderForJSPEL.java +++ /dev/null @@ -1,418 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.style.jspel; - -import java.util.Collection; -import java.util.HashMap; - -import org.eclipse.wst.jsdt.ui.PreferenceConstants; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceConverter; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITypedRegion; -import org.eclipse.jface.text.TextAttribute; -import org.eclipse.jface.text.rules.IToken; -import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.style.IStyleConstantsJSP; -import org.eclipse.wst.jsdt.web.ui.internal.style.java.IStyleConstantsJSPJava; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.widgets.Display; -import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper; -import org.eclipse.wst.sse.ui.internal.provisional.style.Highlighter; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; -import org.eclipse.wst.sse.ui.internal.util.EditorUtility; -import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML; - -// Note: many of the methods in this class were based on (or copied from) -// those -// found in the example Java Editor -public class LineStyleProviderForJSPEL implements LineStyleProvider { - private class PropertyChangeListener implements IPropertyChangeListener { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - // have to do it this way so others can override the method - handlePropertyChange(event); - } - } - - private IDocument fDocument; - private Highlighter fHighlighter; - private boolean fIsInitialized = false; - private PropertyChangeListener fPreferenceListener = new PropertyChangeListener(); - /** The scanner it uses */ - private JSPELCodeScanner fScanner; - /** Contains all text attributes pretaining to this line style provider */ - private HashMap fTextAttributes = null; - - public LineStyleProviderForJSPEL() { - super(); - fScanner = new JSPELCodeScanner(); - } - - /** - * Adds style information to the given text presentation. - * - * @param presentation - * the text presentation to be extended - * @param offset - * the offset of the range to be styled - * @param length - * the length of the range to be styled - * @param attr - * the attribute describing the style of the range to be styled - */ - private void addRange(Collection presentation, int offset, int length, - TextAttribute attr) { - // support for user defined backgroud for JSP scriptlet regions - String styleString = JSPUIPlugin.getDefault().getPreferenceStore() - .getString(IStyleConstantsJSP.JSP_CONTENT); - String[] prefs = ColorHelper.unpackStylePreferences(styleString); - Color bgColor = (prefs != null && prefs.length == 3 - && prefs[1].startsWith("#") && Display.getCurrent() != null) //$NON-NLS-1$ - ? new Color(Display.getCurrent(), ColorHelper.toRGB(prefs[1])) - : attr.getBackground(); - - presentation.add(new StyleRange(offset, length, attr.getForeground(), - bgColor, attr.getStyle())); - } - - /** - * Looks up the colorKey in the preference store and adds the style - * information to list of TextAttributes - * - * @param colorKey - */ - private void addTextAttribute(String colorKey) { - if (getColorPreferences() != null) { - String prefString = getColorPreferences().getString(colorKey); - String[] stylePrefs = ColorHelper - .unpackStylePreferences(prefString); - if (stylePrefs != null) { - RGB foreground = ColorHelper.toRGB(stylePrefs[0]); - RGB background = ColorHelper.toRGB(stylePrefs[1]); - boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue(); - boolean italic = Boolean.valueOf(stylePrefs[3]).booleanValue(); - boolean strikethrough = Boolean.valueOf(stylePrefs[4]) - .booleanValue(); - boolean underline = Boolean.valueOf(stylePrefs[5]) - .booleanValue(); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italic) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - TextAttribute createTextAttribute = createTextAttribute( - foreground, background, style); - getTextAttributes().put(colorKey, createTextAttribute); - } - } - } - - /** - * Looks up the colorKey in the preference store and adds the style - * information to list of TextAttributes - * - * @param colorKey - */ - private void addJavaTextAttribute(String colorKey) { - IPreferenceStore store = getJavaColorPreferences(); - if (store != null && colorKey != null) { - TextAttribute ta = null; - if (colorKey == IStyleConstantsJSPEL.EL_KEYWORD) { - // keyword - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } else if (colorKey == IStyleConstantsJSPEL.EL_DEFAULT) { - // default - RGB foreground = PreferenceConverter.getColor(store, - PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR); - boolean bold = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD); - boolean italics = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC); - boolean strikethrough = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_STRIKETHROUGH); - boolean underline = store - .getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_UNDERLINE); - int style = SWT.NORMAL; - if (bold) { - style = style | SWT.BOLD; - } - if (italics) { - style = style | SWT.ITALIC; - } - if (strikethrough) { - style = style | TextAttribute.STRIKETHROUGH; - } - if (underline) { - style = style | TextAttribute.UNDERLINE; - } - - ta = createTextAttribute(foreground, null, style); - } - if (ta != null) { - getTextAttributes().put(colorKey, ta); - fScanner.setTokenData(colorKey, ta); - } - } - } - - private TextAttribute createTextAttribute(RGB foreground, RGB background, - int style) { - return new TextAttribute((foreground != null) ? EditorUtility - .getColor(foreground) : null, - (background != null) ? EditorUtility.getColor(background) - : null, style); - } - - /** - * Returns the hashtable containing all the text attributes for this line - * style provider. Lazily creates a hashtable if one has not already been - * created. - * - * @return - */ - private HashMap getTextAttributes() { - if (fTextAttributes == null) { - fTextAttributes = new HashMap(); - loadColors(); - } - return fTextAttributes; - } - - /** - * Returns a text attribute encoded in the given token. If the token's data - * is not <code>null</code> and a text attribute it is assumed that it is - * the encoded text attribute. It returns the default text attribute if - * there is no encoded text attribute found. - * - * @param token - * the token whose text attribute is to be determined - * @return the token's text attribute - */ - private TextAttribute getTokenTextAttribute(IToken token) { - TextAttribute ta = null; - - Object data = token.getData(); - if (data instanceof TextAttribute) { - ta = (TextAttribute) data; - } else { - ta = (TextAttribute) getTextAttributes().get( - IStyleConstantsJSPJava.JAVA_DEFAULT); - } - return ta; - } - - public void init(IStructuredDocument document, Highlighter highlighter) { - fDocument = document; - fHighlighter = highlighter; - - if (fIsInitialized) { - return; - } - - registerPreferenceListener(); - - fIsInitialized = true; - } - - private void loadColors() { - addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME); - addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE); - - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_KEYWORD); - addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_DEFAULT); - - fScanner.initializeRules(); - } - - protected void handlePropertyChange(PropertyChangeEvent event) { - String styleKey = null; - String javaStyleKey = null; - - if (event != null) { - String prefKey = event.getProperty(); - // check if preference changed is a style preference - if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) { - styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME; - } else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) { - styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE; - } else if (PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR - .equals(prefKey) - || (PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD - .equals(prefKey)) - || (PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPEL.EL_KEYWORD; - } else if (PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR - .equals(prefKey) - || (PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD - .equals(prefKey)) - || (PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC - .equals(prefKey))) { - javaStyleKey = IStyleConstantsJSPEL.EL_DEFAULT; - } - } - - if (styleKey != null) { - // overwrite style preference with new value - addTextAttribute(styleKey); - } - if (javaStyleKey != null) { - // overwrite style preference with new value - addJavaTextAttribute(javaStyleKey); - fScanner.initializeRules(); - } - if (styleKey != null || javaStyleKey != null) { - // force a full update of the text viewer - fHighlighter.refreshDisplay(); - } - } - - public boolean prepareRegions(ITypedRegion typedRegion, - int ssssrequestedStart, int ssssrequestedLength, - Collection holdResults) { - boolean result = true; - try { - // ideally, eventually, we'll have a "virtualDocument" we can - // refer to, but for now ... we'll simple rescan the one region. - // use simple adjustment (since "sub-content" starts at 0 - int offsetAdjustment = typedRegion.getOffset(); - String content = fDocument.get(typedRegion.getOffset(), typedRegion - .getLength()); - IDocument document = new Document(content); - - int lastStart = 0; - int length = 0; - IToken lastToken = Token.UNDEFINED; - - int remainingLength = typedRegion.getLength(); - fScanner.setRange(document, lastStart, remainingLength); - - while (true) { - - IToken token = fScanner.nextToken(); - - if (token.isEOF()) { - if (!lastToken.isUndefined() && length != 0) { - addRange(holdResults, lastStart + offsetAdjustment, - length, getTokenTextAttribute(lastToken)); - } - break; - } - - if (token.isWhitespace()) { - length += fScanner.getTokenLength(); - continue; - } - - if (lastToken.isUndefined()) { - lastToken = token; - length += fScanner.getTokenLength(); - continue; - } - - if (token != lastToken) { - addRange(holdResults, lastStart + offsetAdjustment, length, - getTokenTextAttribute(lastToken)); - lastToken = token; - lastStart = fScanner.getTokenOffset(); - length = fScanner.getTokenLength(); - continue; - } - - length += fScanner.getTokenLength(); - } - } catch (BadLocationException e) { - // shouldn't happen, but we don't want it to stop other - // highlighting, if it does. - result = false; - } - return result; - } - - private void registerPreferenceListener() { - getColorPreferences().addPropertyChangeListener(fPreferenceListener); - getJavaColorPreferences() - .addPropertyChangeListener(fPreferenceListener); - } - - public void release() { - unRegisterPreferenceManager(); - if (fTextAttributes != null) { - fTextAttributes.clear(); - fTextAttributes = null; - } - } - - private void unRegisterPreferenceManager() { - getColorPreferences().removePropertyChangeListener(fPreferenceListener); - getJavaColorPreferences().removePropertyChangeListener( - fPreferenceListener); - } - - private IPreferenceStore getColorPreferences() { - return JSPUIPlugin.getDefault().getPreferenceStore(); - } - - private IPreferenceStore getJavaColorPreferences() { - return PreferenceConstants.getPreferenceStore(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/HTMLPrinter.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/HTMLPrinter.java deleted file mode 100644 index 3b8106c50f..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/HTMLPrinter.java +++ /dev/null @@ -1,222 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.taginfo; - -import java.io.IOException; -import java.io.Reader; -import java.net.URL; - -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.swt.SWT; -import org.eclipse.swt.SWTError; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.widgets.Display; - -/** - * Provides a set of convenience methods for creating HTML pages. - * - * Based on org.eclipse.wst.jsdt.internal.ui.text.HTMLPrinter - */ -class HTMLPrinter { - - static RGB BG_COLOR_RGB = null; - - static { - final Display display = Display.getDefault(); - if (display != null && !display.isDisposed()) { - try { - display.asyncExec(new Runnable() { - /* - * @see java.lang.Runnable#run() - */ - public void run() { - BG_COLOR_RGB = display.getSystemColor( - SWT.COLOR_INFO_BACKGROUND).getRGB(); - } - }); - } catch (SWTError err) { - // see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=45294 - if (err.code != SWT.ERROR_DEVICE_DISPOSED) { - throw err; - } - } - } - } - - private HTMLPrinter() { - // nothing - } - - private static String replace(String text, char c, String s) { - - int previous = 0; - int current = text.indexOf(c, previous); - - if (current == -1) { - return text; - } - - StringBuffer buffer = new StringBuffer(); - while (current > -1) { - buffer.append(text.substring(previous, current)); - buffer.append(s); - previous = current + 1; - current = text.indexOf(c, previous); - } - buffer.append(text.substring(previous)); - - return buffer.toString(); - } - - public static String convertToHTMLContent(String content) { - content = replace(content, '&', "&"); //$NON-NLS-1$ - content = replace(content, '"', """); //$NON-NLS-1$ - content = replace(content, '<', "<"); //$NON-NLS-1$ - return replace(content, '>', ">"); //$NON-NLS-1$ - } - - static String read(Reader rd) { - - StringBuffer buffer = new StringBuffer(); - char[] readBuffer = new char[2048]; - - try { - int n = rd.read(readBuffer); - while (n > 0) { - buffer.append(readBuffer, 0, n); - n = rd.read(readBuffer); - } - return buffer.toString(); - } catch (IOException x) { - // never expected - Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x); - } - - return null; - } - - public static void insertPageProlog(StringBuffer buffer, int position, - RGB bgRGB, URL styleSheetURL) { - - if (bgRGB == null) { - insertPageProlog(buffer, position, styleSheetURL); - } else { - StringBuffer pageProlog = new StringBuffer(300); - - pageProlog.append("<html>"); //$NON-NLS-1$ - - appendStyleSheetLink(pageProlog, styleSheetURL); - - pageProlog.append("<body text=\"#000000\" bgcolor=\""); //$NON-NLS-1$ - appendColor(pageProlog, bgRGB); - pageProlog.append("\"><font size=-1>"); //$NON-NLS-1$ - - buffer.insert(position, pageProlog.toString()); - } - } - - public static void insertPageProlog(StringBuffer buffer, int position, - RGB bgRGB) { - if (bgRGB == null) { - insertPageProlog(buffer, position); - } else { - StringBuffer pageProlog = new StringBuffer(60); - pageProlog.append("<html><body text=\"#000000\" bgcolor=\""); //$NON-NLS-1$ - appendColor(pageProlog, bgRGB); - pageProlog.append("\"><font size=-1>"); //$NON-NLS-1$ - buffer.insert(position, pageProlog.toString()); - } - } - - private static void appendStyleSheetLink(StringBuffer buffer, - URL styleSheetURL) { - if (styleSheetURL == null) { - return; - } - - buffer.append("<head>"); //$NON-NLS-1$ - - buffer.append("<LINK REL=\"stylesheet\" HREF= \""); //$NON-NLS-1$ - buffer.append(styleSheetURL); - buffer.append("\" CHARSET=\"ISO-8859-1\" TYPE=\"text/css\">"); //$NON-NLS-1$ - - buffer.append("</head>"); //$NON-NLS-1$ - } - - private static void appendColor(StringBuffer buffer, RGB rgb) { - buffer.append('#'); - buffer.append(Integer.toHexString(rgb.red)); - buffer.append(Integer.toHexString(rgb.green)); - buffer.append(Integer.toHexString(rgb.blue)); - } - - public static void insertPageProlog(StringBuffer buffer, int position) { - insertPageProlog(buffer, position, getBgColor()); - } - - public static void insertPageProlog(StringBuffer buffer, int position, - URL styleSheetURL) { - insertPageProlog(buffer, position, getBgColor(), styleSheetURL); - } - - private static RGB getBgColor() { - if (BG_COLOR_RGB != null) { - return BG_COLOR_RGB; - } - // RGB value of info bg color on WindowsXP - return new RGB(255, 255, 225); - } - - public static void addPageProlog(StringBuffer buffer) { - insertPageProlog(buffer, buffer.length()); - } - - public static void addPageEpilog(StringBuffer buffer) { - buffer.append("</font></body></html>"); //$NON-NLS-1$ - } - - public static void startBulletList(StringBuffer buffer) { - buffer.append("<ul>"); //$NON-NLS-1$ - } - - public static void endBulletList(StringBuffer buffer) { - buffer.append("</ul>"); //$NON-NLS-1$ - } - - public static void addBullet(StringBuffer buffer, String bullet) { - if (bullet != null) { - buffer.append("<li>"); //$NON-NLS-1$ - buffer.append(bullet); - buffer.append("</li>"); //$NON-NLS-1$ - } - } - - public static void addSmallHeader(StringBuffer buffer, String header) { - if (header != null) { - buffer.append("<h5>"); //$NON-NLS-1$ - buffer.append(header); - buffer.append("</h5>"); //$NON-NLS-1$ - } - } - - public static void addParagraph(StringBuffer buffer, String paragraph) { - if (paragraph != null) { - buffer.append("<p>"); //$NON-NLS-1$ - buffer.append(paragraph); - } - } - - public static void addParagraph(StringBuffer buffer, Reader paragraphReader) { - if (paragraphReader != null) { - addParagraph(buffer, read(paragraphReader)); - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPInformationProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPInformationProvider.java deleted file mode 100644 index c7db3643a8..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPInformationProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.taginfo; - -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.information.IInformationProvider; -import org.eclipse.jface.text.information.IInformationProviderExtension; -import org.eclipse.wst.sse.ui.internal.SSEUIPlugin; - -/** - * Provides context help for JSP tags (Show tooltip description) - */ -public class JSPInformationProvider implements IInformationProvider, - IInformationProviderExtension { - private ITextHover fTextHover = null; - - public JSPInformationProvider() { - fTextHover = SSEUIPlugin.getDefault().getTextHoverManager() - .createBestMatchHover(new JSPTagInfoHoverProcessor()); - } - - public IRegion getSubject(ITextViewer textViewer, int offset) { - return fTextHover.getHoverRegion(textViewer, offset); - } - - public String getInformation(ITextViewer textViewer, IRegion subject) { - return (String) getInformation2(textViewer, subject); - } - - public Object getInformation2(ITextViewer textViewer, IRegion subject) { - return fTextHover.getHoverInfo(textViewer, subject); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java deleted file mode 100644 index b3e1d82973..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.jsdt.web.ui.internal.taginfo; - -import java.io.Reader; - -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.IMember; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.wst.jsdt.ui.JavaElementLabels; -import org.eclipse.wst.jsdt.ui.JavadocContentAccess; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.ui.internal.taginfo.AbstractHoverProcessor; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -/** - * Provides javadoc hover help documentation for java code inside JSPs - */ -public class JSPJavaJavadocHoverProcessor extends AbstractHoverProcessor { - /* - * Bulk of the work was copied from - * org.eclipse.wst.jsdt.internal.ui.text.java.hover.JavadocHover - */ - private final long LABEL_FLAGS = JavaElementLabels.ALL_FULLY_QUALIFIED - | JavaElementLabels.M_PRE_RETURNTYPE - | JavaElementLabels.M_PARAMETER_TYPES - | JavaElementLabels.M_PARAMETER_NAMES - | JavaElementLabels.M_EXCEPTIONS - | JavaElementLabels.F_PRE_TYPE_SIGNATURE - | JavaElementLabels.M_PRE_TYPE_PARAMETERS - | JavaElementLabels.T_TYPE_PARAMETERS - | JavaElementLabels.USE_RESOLVED; - private final long LOCAL_VARIABLE_FLAGS = LABEL_FLAGS - & ~JavaElementLabels.F_FULLY_QUALIFIED - | JavaElementLabels.F_POST_QUALIFIED; - - private String getHoverInfo(IJavaElement[] result) { - StringBuffer buffer = new StringBuffer(); - int nResults = result.length; - if (nResults == 0) { - return null; - } - - if (nResults > 1) { - - for (int i = 0; i < result.length; i++) { - HTMLPrinter.startBulletList(buffer); - IJavaElement curr = result[i]; - if (curr instanceof IMember - || curr.getElementType() == IJavaElement.LOCAL_VARIABLE) { - HTMLPrinter.addBullet(buffer, getInfoText(curr)); - } - HTMLPrinter.endBulletList(buffer); - } - - } else { - - IJavaElement curr = result[0]; - if (curr instanceof IMember) { - IMember member = (IMember) curr; - HTMLPrinter.addSmallHeader(buffer, getInfoText(member)); - Reader reader; - try { - reader = JavadocContentAccess.getHTMLContentReader(member, - true, true); - } catch (JavaModelException ex) { - return null; - } - if (reader != null) { - HTMLPrinter.addParagraph(buffer, reader); - } - } else if (curr.getElementType() == IJavaElement.LOCAL_VARIABLE - || curr.getElementType() == IJavaElement.TYPE_PARAMETER) { - HTMLPrinter.addSmallHeader(buffer, getInfoText(curr)); - } - } - - if (buffer.length() > 0) { - HTMLPrinter.insertPageProlog(buffer, 0); - HTMLPrinter.addPageEpilog(buffer); - return buffer.toString(); - } - - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, - * org.eclipse.jface.text.IRegion) - */ - public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { - // get JSP translation object for this viewer's document - - IDOMModel xmlModel = (IDOMModel) StructuredModelManager - .getModelManager().getExistingModelForRead( - textViewer.getDocument()); - try { - if (xmlModel != null) { - IDOMDocument xmlDoc = xmlModel.getDocument(); - JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc - .getAdapterFor(IJSPTranslation.class); - if (adapter != null) { - JSPTranslation translation = adapter.getJSPTranslation(); - - IJavaElement[] result = translation - .getElementsFromJspRange(hoverRegion.getOffset(), - hoverRegion.getOffset() - + hoverRegion.getLength()); - return translation.fixupMangledName(getHoverInfo(result)); - } - } - } finally { - if (xmlModel != null) { - xmlModel.releaseFromRead(); - } - } - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer, - * int) - */ - public IRegion getHoverRegion(ITextViewer textViewer, int offset) { - return JavaWordFinder.findWord(textViewer.getDocument(), offset); - } - - private String getInfoText(IJavaElement member) { - long flags = member.getElementType() == IJavaElement.LOCAL_VARIABLE ? LOCAL_VARIABLE_FLAGS - : LABEL_FLAGS; - String label = JavaElementLabels.getElementLabel(member, flags); - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < label.length(); i++) { - char ch = label.charAt(i); - if (ch == '<') { - buf.append("<"); //$NON-NLS-1$ - } else if (ch == '>') { - buf.append(">"); //$NON-NLS-1$ - } else { - buf.append(ch); - } - } - return buf.toString(); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java deleted file mode 100644 index e1208e4e12..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.taginfo; - -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.information.IInformationProvider; -import org.eclipse.jface.text.information.IInformationProviderExtension; -import org.eclipse.wst.sse.ui.internal.SSEUIPlugin; - -/** - * Provides javadoc context information for java code inside JSPs (Shows tooltip - * description) - */ -public class JSPJavaJavadocInformationProvider implements IInformationProvider, - IInformationProviderExtension { - private ITextHover fTextHover = null; - - public JSPJavaJavadocInformationProvider() { - fTextHover = SSEUIPlugin.getDefault().getTextHoverManager() - .createBestMatchHover(new JSPJavaJavadocHoverProcessor()); - } - - public IRegion getSubject(ITextViewer textViewer, int offset) { - return fTextHover.getHoverRegion(textViewer, offset); - } - - public String getInformation(ITextViewer textViewer, IRegion subject) { - return (String) getInformation2(textViewer, subject); - } - - public Object getInformation2(ITextViewer textViewer, IRegion subject) { - return fTextHover.getHoverInfo(textViewer, subject); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPTagInfoHoverProcessor.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPTagInfoHoverProcessor.java deleted file mode 100644 index e68850297e..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JSPTagInfoHoverProcessor.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.taginfo; - -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.html.ui.internal.taginfo.HTMLTagInfoHoverProcessor; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; - -/** - * Provides hover help documentation for JSP tags - */ -public class JSPTagInfoHoverProcessor extends HTMLTagInfoHoverProcessor { - - @Override - protected String computeRegionHelp(IndexedRegion treeNode, - IDOMNode parentNode, IStructuredDocumentRegion flatNode, - ITextRegion region) { - String result = null; - - if (region == null) { - return null; - } - - String regionType = region.getType(); - if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) { - result = computeJSPDirHelp((IDOMNode) treeNode, parentNode, - flatNode, region); - } else { - result = super.computeRegionHelp(treeNode, parentNode, flatNode, - region); - } - - return result; - } - - /** - * Computes the hover help for the jsp directive name for now, treat jsp - * directives like any other tag name - */ - protected String computeJSPDirHelp(IDOMNode xmlnode, IDOMNode parentNode, - IStructuredDocumentRegion flatNode, ITextRegion region) { - return computeTagNameHelp(xmlnode, parentNode, flatNode, region); - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JavaWordFinder.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JavaWordFinder.java deleted file mode 100644 index 9e97fd6155..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/taginfo/JavaWordFinder.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.taginfo; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.Region; - -/** - * Copied from org.eclipse.wst.jsdt.internal.ui.text.JavaWordFinder - */ -class JavaWordFinder { - - public static IRegion findWord(IDocument document, int offset) { - - int start = -1; - int end = -1; - - try { - - int pos = offset; - char c; - - while (pos >= 0) { - c = document.getChar(pos); - // System.out.println("JavaWordFinder.findWord() Test java char - // (--):" + c); - if (!Character.isJavaIdentifierPart(c)) { - break; - } - --pos; - } - - start = pos; - - pos = offset; - int length = document.getLength(); - - while (pos < length) { - c = document.getChar(pos); - // System.out.println("JavaWordFinder.findWord() Test java char - // (++):" + c); - if (!Character.isJavaIdentifierPart(c)) { - break; - } - ++pos; - } - - end = pos; - // System.out.println("Start:" + start + "End:"+end); - // System.out.println("JavaWordFinder.findWord() Retrieved java - // token of:" + document.get(start, end-start) ); - } catch (BadLocationException x) { - } - - if (start > -1 && end > -1) { - - if (start == offset && end == offset) { - return new Region(offset, 0); - } else if (start == offset) { - return new Region(start, end - start); - } else { - return new Region(start + 1, end - start - 1); - } - } - - return null; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/EncodingTemplateVariableResolverJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/EncodingTemplateVariableResolverJSP.java deleted file mode 100644 index 53e968138c..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/EncodingTemplateVariableResolverJSP.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.templates; - -import org.eclipse.jface.text.templates.SimpleTemplateVariableResolver; -import org.eclipse.jface.text.templates.TemplateContext; -import org.eclipse.wst.jsdt.web.core.internal.JSPCorePlugin; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; - -public class EncodingTemplateVariableResolverJSP extends - SimpleTemplateVariableResolver { - private static final String ENCODING_TYPE = getEncodingType(); - - private static String getEncodingType() { - return "encoding"; //$NON-NLS-1$ - } - - /** - * Creates a new encoding variable - */ - public EncodingTemplateVariableResolverJSP() { - super(ENCODING_TYPE, JSPUIMessages.Creating_files_encoding); - } - - @Override - protected String resolve(TemplateContext context) { - return JSPCorePlugin.getDefault().getPluginPreferences().getString( - CommonEncodingPreferenceNames.OUTPUT_CODESET); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeIdsJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeIdsJSP.java deleted file mode 100644 index 3f2bfbe3f2..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeIdsJSP.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 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.jsdt.web.ui.internal.templates; - -public class TemplateContextTypeIdsJSP { - - public static final String ALL = getAll(); - - public static final String ATTRIBUTE = getAttribute(); - - public static final String ATTRIBUTE_VALUE = getAttributeValue(); - - public static final String NEW = getNew(); - - public static final String TAG = getTag(); - - private static String getAll() { - return getPrefix() + "_all"; //$NON-NLS-1$ - } - - private static String getAttribute() { - return getPrefix() + "_attribute"; //$NON-NLS-1$ - } - - private static String getAttributeValue() { - return getPrefix() + "_attribute_value"; //$NON-NLS-1$ - } - - private static String getNew() { - return getPrefix() + "_new"; //$NON-NLS-1$ - } - - private static String getPrefix() { - return "jsp"; //$NON-NLS-1$ - } - - private static String getTag() { - return getPrefix() + "_tag"; //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeJSP.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeJSP.java deleted file mode 100644 index 0d09cbf3a1..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/templates/TemplateContextTypeJSP.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.templates; - -import org.eclipse.jface.text.templates.GlobalTemplateVariables; -import org.eclipse.jface.text.templates.TemplateContextType; - -/** - * Base class for JSP template context types. Templates of this context type - * apply to any place within JSP content type. - */ -public class TemplateContextTypeJSP extends TemplateContextType { - public TemplateContextTypeJSP() { - super(); - addResolver(new GlobalTemplateVariables.Cursor()); - addResolver(new GlobalTemplateVariables.Date()); - addResolver(new GlobalTemplateVariables.Dollar()); - addResolver(new GlobalTemplateVariables.LineSelection()); - addResolver(new GlobalTemplateVariables.Time()); - addResolver(new GlobalTemplateVariables.User()); - addResolver(new GlobalTemplateVariables.WordSelection()); - addResolver(new GlobalTemplateVariables.Year()); - addResolver(new EncodingTemplateVariableResolverJSP()); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsCodeReader.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsCodeReader.java deleted file mode 100644 index e47ebfa863..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsCodeReader.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -/* - * Created on Sep 2, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -package org.eclipse.wst.jsdt.web.ui.internal.text; - -import java.io.IOException; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.jsdt.web.ui.internal.derived.SingleCharReader; - -/** - * Reads from a document either forwards or backwards. May be configured to skip - * comments and strings. - * - * Copied from org.eclipse.wst.jsdt.internal.ui.text so we don't have to depend on - * the org.eclipse.wst.jsdt.ui plugin. - * - * No modifications were made. - */ -class JsCodeReader extends SingleCharReader { - - /** The EOF character */ - public static final int EOF = -1; - - private boolean fSkipComments = false; - private boolean fSkipStrings = false; - private boolean fForward = false; - - private IDocument fDocument; - private int fOffset; - - private int fEnd = -1; - private int fCachedLineNumber = -1; - private int fCachedLineOffset = -1; - - public JsCodeReader() { - } - - /** - * Returns the offset of the last read character. Should only be called - * after read has been called. - */ - public int getOffset() { - return fForward ? fOffset - 1 : fOffset; - } - - public void configureForwardReader(IDocument document, int offset, - int length, boolean skipComments, boolean skipStrings) - throws IOException { - fDocument = document; - fOffset = offset; - fSkipComments = skipComments; - fSkipStrings = skipStrings; - - fForward = true; - fEnd = Math.min(fDocument.getLength(), fOffset + length); - } - - public void configureBackwardReader(IDocument document, int offset, - boolean skipComments, boolean skipStrings) throws IOException { - fDocument = document; - fOffset = offset; - fSkipComments = skipComments; - fSkipStrings = skipStrings; - - fForward = false; - try { - fCachedLineNumber = fDocument.getLineOfOffset(fOffset); - } catch (BadLocationException x) { - throw new IOException(x.getMessage()); - } - } - - /* - * @see Reader#close() - */ - @Override - public void close() throws IOException { - fDocument = null; - } - - /* - * @see SingleCharReader#read() - */ - @Override - public int read() throws IOException { - try { - return fForward ? readForwards() : readBackwards(); - } catch (BadLocationException x) { - throw new IOException(x.getMessage()); - } - } - - private void gotoCommentEnd() throws BadLocationException { - while (fOffset < fEnd) { - char current = fDocument.getChar(fOffset++); - if (current == '*') { - if (fOffset < fEnd && fDocument.getChar(fOffset) == '/') { - ++fOffset; - return; - } - } - } - } - - private void gotoStringEnd(char delimiter) throws BadLocationException { - while (fOffset < fEnd) { - char current = fDocument.getChar(fOffset++); - if (current == '\\') { - // ignore escaped characters - ++fOffset; - } else if (current == delimiter) { - return; - } - } - } - - private void gotoLineEnd() throws BadLocationException { - int line = fDocument.getLineOfOffset(fOffset); - fOffset = fDocument.getLineOffset(line + 1); - } - - private int readForwards() throws BadLocationException { - while (fOffset < fEnd) { - char current = fDocument.getChar(fOffset++); - - switch (current) { - case '/': - - if (fSkipComments && fOffset < fEnd) { - char next = fDocument.getChar(fOffset); - if (next == '*') { - // a comment starts, advance to the comment end - ++fOffset; - gotoCommentEnd(); - continue; - } else if (next == '/') { - // '//'-comment starts, advance to the line end - gotoLineEnd(); - continue; - } - } - - return current; - - case '"': - case '\'': - - if (fSkipStrings) { - gotoStringEnd(current); - continue; - } - - return current; - } - - return current; - } - - return EOF; - } - - private void handleSingleLineComment() throws BadLocationException { - int line = fDocument.getLineOfOffset(fOffset); - if (line < fCachedLineNumber) { - fCachedLineNumber = line; - fCachedLineOffset = fDocument.getLineOffset(line); - int offset = fOffset; - while (fCachedLineOffset < offset) { - char current = fDocument.getChar(offset--); - if (current == '/' && fCachedLineOffset <= offset - && fDocument.getChar(offset) == '/') { - fOffset = offset; - return; - } - } - } - } - - private void gotoCommentStart() throws BadLocationException { - while (0 < fOffset) { - char current = fDocument.getChar(fOffset--); - if (current == '*' && 0 <= fOffset - && fDocument.getChar(fOffset) == '/') { - return; - } - } - } - - private void gotoStringStart(char delimiter) throws BadLocationException { - while (0 < fOffset) { - char current = fDocument.getChar(fOffset); - if (current == delimiter) { - if (!(0 <= fOffset && fDocument.getChar(fOffset - 1) == '\\')) { - return; - } - } - --fOffset; - } - } - - private int readBackwards() throws BadLocationException { - - while (0 < fOffset) { - --fOffset; - - handleSingleLineComment(); - - char current = fDocument.getChar(fOffset); - switch (current) { - case '/': - - if (fSkipComments && fOffset > 1) { - char next = fDocument.getChar(fOffset - 1); - if (next == '*') { - // a comment ends, advance to the comment start - fOffset -= 2; - gotoCommentStart(); - continue; - } - } - - return current; - - case '"': - case '\'': - - if (fSkipStrings) { - --fOffset; - gotoStringStart(current); - continue; - } - - return current; - } - - return current; - } - - return EOF; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsDocumentRegionEdgeMatcher.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsDocumentRegionEdgeMatcher.java deleted file mode 100644 index 519997de51..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsDocumentRegionEdgeMatcher.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.text; - -import org.eclipse.wst.jsdt.web.core.internal.regions.DOMJSPRegionContexts; -import org.eclipse.wst.sse.ui.internal.text.DocumentRegionEdgeMatcher; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -public class JsDocumentRegionEdgeMatcher extends DocumentRegionEdgeMatcher { - - protected final static char[] BRACKETS = { '{', '}', '(', ')', '[', ']'}; - - /** - * @param validContexts - * @param nextMatcher - */ - public JsDocumentRegionEdgeMatcher() { - super(new String[] { DOMRegionContext.XML_TAG_NAME, - DOMRegionContext.XML_COMMENT_TEXT, - - DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_PI_OPEN, - DOMRegionContext.XML_PI_CONTENT }, - new JsPairMatcher(BRACKETS)); - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsPairMatcher.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsPairMatcher.java deleted file mode 100644 index 822e96ccb4..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/text/JsPairMatcher.java +++ /dev/null @@ -1,217 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.internal.text; - -import java.io.IOException; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.Region; -import org.eclipse.jface.text.source.ICharacterPairMatcher; - -/** - * Helper class for match pairs of characters. - * - * Copied from org.eclipse.wst.jsdt.internal.ui.text so we don't have to depend on - * the org.eclipse.wst.jsdt.ui plugin. - * - * No modifications were made. - */ -class JsPairMatcher implements ICharacterPairMatcher { - - protected char[] fPairs; - protected IDocument fDocument; - protected int fOffset; - - protected int fStartPos; - protected int fEndPos; - protected int fAnchor; - - protected JsCodeReader fReader = new JsCodeReader(); - - public JsPairMatcher(char[] pairs) { - fPairs = pairs; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.source.ICharacterPairMatcher#match(org.eclipse.jface.text.IDocument, - * int) - */ - public IRegion match(IDocument document, int offset) { - - fOffset = offset; - - if (fOffset < 0) { - return null; - } - - fDocument = document; - - if (fDocument != null && matchPairsAt() && fStartPos != fEndPos) { - return new Region(fStartPos, fEndPos - fStartPos + 1); - } - - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.source.ICharacterPairMatcher#getAnchor() - */ - public int getAnchor() { - return fAnchor; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.text.source.ICharacterPairMatcher#dispose() - */ - public void dispose() { - clear(); - fDocument = null; - fReader = null; - } - - /* - * @see org.eclipse.jface.text.source.ICharacterPairMatcher#clear() - */ - public void clear() { - if (fReader != null) { - try { - fReader.close(); - } catch (IOException x) { - // ignore - } - } - } - - protected boolean matchPairsAt() { - - int i; - int pairIndex1 = fPairs.length; - int pairIndex2 = fPairs.length; - - fStartPos = -1; - fEndPos = -1; - - // get the chars preceding and following the start position - try { - - char prevChar = fDocument.getChar(Math.max(fOffset - 1, 0)); - // modified behavior for - // http://dev.eclipse.org/bugs/show_bug.cgi?id=16879 - // char nextChar= fDocument.getChar(fOffset); - - // search for opening peer character next to the activation point - for (i = 0; i < fPairs.length; i = i + 2) { - // if (nextChar == fPairs[i]) { - // fStartPos= fOffset; - // pairIndex1= i; - // } else - if (prevChar == fPairs[i]) { - fStartPos = fOffset - 1; - pairIndex1 = i; - } - } - - // search for closing peer character next to the activation point - for (i = 1; i < fPairs.length; i = i + 2) { - if (prevChar == fPairs[i]) { - fEndPos = fOffset - 1; - pairIndex2 = i; - } - // else if (nextChar == fPairs[i]) { - // fEndPos= fOffset; - // pairIndex2= i; - // } - } - - if (fEndPos > -1) { - fAnchor = RIGHT; - fStartPos = searchForOpeningPeer(fEndPos, - fPairs[pairIndex2 - 1], fPairs[pairIndex2], fDocument); - if (fStartPos > -1) { - return true; - } else { - fEndPos = -1; - } - } else if (fStartPos > -1) { - fAnchor = LEFT; - fEndPos = searchForClosingPeer(fStartPos, fPairs[pairIndex1], - fPairs[pairIndex1 + 1], fDocument); - if (fEndPos > -1) { - return true; - } else { - fStartPos = -1; - } - } - - } catch (BadLocationException x) { - } catch (IOException x) { - } - - return false; - } - - protected int searchForClosingPeer(int offset, int openingPeer, - int closingPeer, IDocument document) throws IOException { - - fReader.configureForwardReader(document, offset + 1, document - .getLength(), true, true); - - int stack = 1; - int c = fReader.read(); - while (c != JsCodeReader.EOF) { - if (c == openingPeer && c != closingPeer) { - stack++; - } else if (c == closingPeer) { - stack--; - } - - if (stack == 0) { - return fReader.getOffset(); - } - - c = fReader.read(); - } - - return -1; - } - - protected int searchForOpeningPeer(int offset, int openingPeer, - int closingPeer, IDocument document) throws IOException { - - fReader.configureBackwardReader(document, offset, true, true); - - int stack = 1; - int c = fReader.read(); - while (c != JsCodeReader.EOF) { - if (c == closingPeer && c != openingPeer) { - stack++; - } else if (c == openingPeer) { - stack--; - } - - if (stack == 0) { - return fReader.getOffset(); - } - - c = fReader.read(); - } - - return -1; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPFileWizardPage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPFileWizardPage.java deleted file mode 100644 index 45129ab9e5..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPFileWizardPage.java +++ /dev/null @@ -1,296 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.jsdt.web.ui.internal.wizard; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.wst.jsdt.core.JavaCore; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.wst.jsdt.web.core.internal.JSPCorePlugin; -import org.eclipse.wst.jsdt.web.core.internal.preferences.JSPCorePreferenceNames; -import org.eclipse.wst.jsdt.web.core.internal.provisional.contenttype.ContentTypeIdForJSP; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.osgi.util.NLS; -import org.eclipse.ui.dialogs.WizardNewFileCreationPage; -import org.eclipse.wst.common.componentcore.ComponentCore; -import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; -import org.eclipse.wst.common.project.facet.core.IFacetedProject; -import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; - -class NewJSPFileWizardPage extends WizardNewFileCreationPage { - - private IContentType fContentType; - private List fValidExtensions = null; - - public NewJSPFileWizardPage(String pageName, IStructuredSelection selection) { - super(pageName, selection); - } - - /** - * This method is overriden to set the selected folder to web contents - * folder if the current selection is outside the web contents folder. - */ - @Override - protected void initialPopulateContainerNameField() { - super.initialPopulateContainerNameField(); - - IPath fullPath = getContainerFullPath(); - IProject project = getProjectFromPath(fullPath); - IPath webContentPath = getWebContentPath(project); - - if (webContentPath != null && !webContentPath.isPrefixOf(fullPath)) { - setContainerFullPath(webContentPath); - } - } - - /** - * This method is overriden to set additional validation specific to jsp - * files. - */ - @Override - protected boolean validatePage() { - setMessage(null); - setErrorMessage(null); - - if (!super.validatePage()) { - return false; - } - - String fileName = getFileName(); - IPath fullPath = getContainerFullPath(); - if ((fullPath != null) && (fullPath.isEmpty() == false) - && (fileName != null)) { - // check that filename does not contain invalid extension - if (!extensionValidForContentType(fileName)) { - setErrorMessage(NLS.bind( - JSPUIMessages._ERROR_FILENAME_MUST_END_JSP, - getValidExtensions().toString())); - return false; - } - // no file extension specified so check adding default - // extension doesn't equal a file that already exists - if (fileName.lastIndexOf('.') == -1) { - String newFileName = addDefaultExtension(fileName); - IPath resourcePath = fullPath.append(newFileName); - - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IStatus result = workspace.validatePath( - resourcePath.toString(), IResource.FOLDER); - if (!result.isOK()) { - // path invalid - setErrorMessage(result.getMessage()); - return false; - } - - if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace - .getRoot().getFile(resourcePath).exists())) { - setErrorMessage(JSPUIMessages.ResourceGroup_nameExists); - return false; - } - } - - // get the IProject for the selection path - IProject project = getProjectFromPath(fullPath); - if (project != null) { - if (!isJavaProject(project)) { - setMessage( - JSPUIMessages._WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT, - WARNING); - } - // if inside web project, check if inside webContent folder - if (isDynamicWebProject(project)) { - // check that the path is inside the webContent folder - IPath webContentPath = getWebContentPath(project); - if (!webContentPath.isPrefixOf(fullPath)) { - setMessage( - JSPUIMessages._WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT, - WARNING); - } - } - } - } - - return true; - } - - /** - * Adds default extension to the filename - * - * @param filename - * @return - */ - String addDefaultExtension(String filename) { - StringBuffer newFileName = new StringBuffer(filename); - - Preferences preference = JSPCorePlugin.getDefault() - .getPluginPreferences(); - String ext = preference - .getString(JSPCorePreferenceNames.DEFAULT_EXTENSION); - - newFileName.append("."); //$NON-NLS-1$ - newFileName.append(ext); - - return newFileName.toString(); - } - - /** - * Get content type associated with this new file wizard - * - * @return IContentType - */ - private IContentType getContentType() { - if (fContentType == null) { - fContentType = Platform.getContentTypeManager().getContentType( - ContentTypeIdForJSP.ContentTypeID_JSP); - } - return fContentType; - } - - /** - * Get list of valid extensions for JSP Content type - * - * @return - */ - private List getValidExtensions() { - if (fValidExtensions == null) { - IContentType type = getContentType(); - fValidExtensions = new ArrayList(Arrays.asList(type - .getFileSpecs(IContentType.FILE_EXTENSION_SPEC))); - } - return fValidExtensions; - } - - /** - * Verifies if fileName is valid name for content type. Takes base content - * type into consideration. - * - * @param fileName - * @return true if extension is valid for this content type - */ - private boolean extensionValidForContentType(String fileName) { - boolean valid = false; - - IContentType type = getContentType(); - // there is currently an extension - if (fileName.lastIndexOf('.') != -1) { - // check what content types are associated with current extension - IContentType[] types = Platform.getContentTypeManager() - .findContentTypesFor(fileName); - int i = 0; - while (i < types.length && !valid) { - valid = types[i].isKindOf(type); - ++i; - } - } else { - valid = true; // no extension so valid - } - return valid; - } - - /** - * Returns the project that contains the specified path - * - * @param path - * the path which project is needed - * @return IProject object. If path is <code>null</code> the return value - * is also <code>null</code>. - */ - private IProject getProjectFromPath(IPath path) { - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IProject project = null; - - if (path != null) { - if (workspace.validatePath(path.toString(), IResource.PROJECT) - .isOK()) { - project = workspace.getRoot().getProject(path.toString()); - } else { - project = workspace.getRoot().getFile(path).getProject(); - } - } - - return project; - } - - /** - * Checks if the specified project is a web project. - * - * @param project - * project to be checked - * @return true if the project is web project, otherwise false - */ - private boolean isDynamicWebProject(IProject project) { - IFacetedProject faceted = null; - try { - faceted = ProjectFacetsManager.create(project); - } catch (CoreException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - - if (faceted != null - && faceted.hasProjectFacet(ProjectFacetsManager - .getProjectFacet(IModuleConstants.JST_WEB_MODULE))) { - return true; - } - - return false; - } - - /** - * Checks if the specified project is a type of java project. - * - * @param project - * project to be checked (cannot be null) - * @return true if the project is a type of java project, otherwise false - */ - private boolean isJavaProject(IProject project) { - boolean isJava = false; - try { - isJava = project.hasNature(JavaCore.NATURE_ID); - } catch (CoreException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - - return isJava; - } - - /** - * Returns the web contents folder of the specified project - * - * @param project - * the project which web contents path is needed - * @return IPath of the web contents folder - */ - private IPath getWebContentPath(IProject project) { - IPath path = null; - - if (project != null && isDynamicWebProject(project)) { - IVirtualComponent component = ComponentCore - .createComponent(project); - path = component.getRootFolder().getWorkspaceRelativePath(); - } - - return path; - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPTemplatesWizardPage.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPTemplatesWizardPage.java deleted file mode 100644 index e18a24be4b..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPTemplatesWizardPage.java +++ /dev/null @@ -1,525 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.internal.wizard; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.preference.PreferenceDialog; -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.jface.text.source.SourceViewer; -import org.eclipse.jface.text.source.SourceViewerConfiguration; -import org.eclipse.jface.text.templates.DocumentTemplateContext; -import org.eclipse.jface.text.templates.Template; -import org.eclipse.jface.text.templates.TemplateBuffer; -import org.eclipse.jface.text.templates.TemplateContext; -import org.eclipse.jface.text.templates.TemplateContextType; -import org.eclipse.jface.text.templates.persistence.TemplateStore; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerSorter; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.wst.jsdt.web.core.internal.provisional.contenttype.ContentTypeIdForJSP; -import org.eclipse.wst.jsdt.web.ui.StructuredTextViewerConfigurationJSP; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIPlugin; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.wst.jsdt.web.ui.internal.editor.IHelpContextIds; -import org.eclipse.wst.jsdt.web.ui.internal.preferences.JSPUIPreferenceNames; -import org.eclipse.wst.jsdt.web.ui.internal.templates.TemplateContextTypeIdsJSP; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ControlAdapter; -import org.eclipse.swt.events.ControlEvent; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Link; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.dialogs.PreferencesUtil; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration; -import org.eclipse.wst.sse.ui.internal.StructuredTextViewer; -import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider; - -/** - * Templates page in new file wizard. Allows users to select a new file template - * to be applied in new file. - * - */ -public class NewJSPTemplatesWizardPage extends WizardPage { - - /** - * Content provider for templates - */ - private class TemplateContentProvider implements IStructuredContentProvider { - /** The template store. */ - private TemplateStore fStore; - - /* - * @see IContentProvider#dispose() - */ - public void dispose() { - fStore = null; - } - - /* - * @see IStructuredContentProvider#getElements(Object) - */ - public Object[] getElements(Object input) { - return fStore.getTemplates(TemplateContextTypeIdsJSP.NEW); - } - - /* - * @see IContentProvider#inputChanged(Viewer, Object, Object) - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - fStore = (TemplateStore) newInput; - } - } - - /** - * Label provider for templates. - */ - private class TemplateLabelProvider extends LabelProvider implements - ITableLabelProvider { - - /* - * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, - * int) - */ - public Image getColumnImage(Object element, int columnIndex) { - return null; - } - - /* - * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, - * int) - */ - public String getColumnText(Object element, int columnIndex) { - Template template = (Template) element; - - switch (columnIndex) { - case 0: - return template.getName(); - case 1: - return template.getDescription(); - default: - return ""; //$NON-NLS-1$ - } - } - } - - /** Last selected template name */ - private String fLastSelectedTemplateName; - /** The viewer displays the pattern of selected template. */ - private SourceViewer fPatternViewer; - /** The table presenting the templates. */ - private TableViewer fTableViewer; - /** Template store used by this wizard page */ - private TemplateStore fTemplateStore; - /** Checkbox for using templates. */ - private Button fUseTemplateButton; - - public NewJSPTemplatesWizardPage() { - super( - "NewJSPTemplatesWizardPage", JSPUIMessages.NewJSPTemplatesWizardPage_0, null); //$NON-NLS-1$ - setDescription(JSPUIMessages.NewJSPTemplatesWizardPage_1); - } - - /** - * Correctly resizes the table so no phantom columns appear - * - * @param parent - * the parent control - * @param buttons - * the buttons - * @param table - * the table - * @param column1 - * the first column - * @param column2 - * the second column - * @param column3 - * the third column - */ - private void configureTableResizing(final Composite parent, - final Table table, final TableColumn column1, - final TableColumn column2) { - parent.addControlListener(new ControlAdapter() { - @Override - public void controlResized(ControlEvent e) { - Rectangle area = parent.getClientArea(); - Point preferredSize = table.computeSize(SWT.DEFAULT, - SWT.DEFAULT); - int width = area.width - 2 * table.getBorderWidth(); - if (preferredSize.y > area.height) { - // Subtract the scrollbar width from the total column - // width - // if a vertical scrollbar will be required - Point vBarSize = table.getVerticalBar().getSize(); - width -= vBarSize.x; - } - - Point oldSize = table.getSize(); - if (oldSize.x > width) { - // table is getting smaller so make the columns - // smaller first and then resize the table to - // match the client area width - column1.setWidth(width / 2); - column2.setWidth(width / 2); - table.setSize(width, area.height); - } else { - // table is getting bigger so make the table - // bigger first and then make the columns wider - // to match the client area width - table.setSize(width, area.height); - column1.setWidth(width / 2); - column2.setWidth(width / 2); - } - } - }); - } - - public void createControl(Composite ancestor) { - Composite parent = new Composite(ancestor, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - parent.setLayout(layout); - - // create checkbox for user to use JSP Template - fUseTemplateButton = new Button(parent, SWT.CHECK); - fUseTemplateButton.setText(JSPUIMessages.NewJSPTemplatesWizardPage_4); - GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1); - fUseTemplateButton.setLayoutData(data); - fUseTemplateButton.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - enableTemplates(); - } - }); - - // create composite for Templates table - Composite innerParent = new Composite(parent, SWT.NONE); - GridLayout innerLayout = new GridLayout(); - innerLayout.numColumns = 2; - innerLayout.marginHeight = 0; - innerLayout.marginWidth = 0; - innerParent.setLayout(innerLayout); - GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); - innerParent.setLayoutData(gd); - - // Create linked text to just to templates preference page - Link link = new Link(innerParent, SWT.NONE); - link.setText(JSPUIMessages.NewJSPTemplatesWizardPage_6); - data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1); - link.setLayoutData(data); - link.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - linkClicked(); - } - }); - - // create table that displays templates - Table table = new Table(innerParent, SWT.BORDER | SWT.FULL_SELECTION); - - data = new GridData(GridData.FILL_BOTH); - data.widthHint = convertWidthInCharsToPixels(2); - data.heightHint = convertHeightInCharsToPixels(10); - data.horizontalSpan = 2; - table.setLayoutData(data); - table.setHeaderVisible(true); - table.setLinesVisible(true); - TableLayout tableLayout = new TableLayout(); - table.setLayout(tableLayout); - - TableColumn column1 = new TableColumn(table, SWT.NONE); - column1.setText(JSPUIMessages.NewJSPTemplatesWizardPage_2); - - TableColumn column2 = new TableColumn(table, SWT.NONE); - column2.setText(JSPUIMessages.NewJSPTemplatesWizardPage_3); - - fTableViewer = new TableViewer(table); - fTableViewer.setLabelProvider(new TemplateLabelProvider()); - fTableViewer.setContentProvider(new TemplateContentProvider()); - - fTableViewer.setSorter(new ViewerSorter() { - @Override - public int compare(Viewer viewer, Object object1, Object object2) { - if ((object1 instanceof Template) - && (object2 instanceof Template)) { - Template left = (Template) object1; - Template right = (Template) object2; - int result = left.getName().compareToIgnoreCase( - right.getName()); - if (result != 0) { - return result; - } - return left.getDescription().compareToIgnoreCase( - right.getDescription()); - } - return super.compare(viewer, object1, object2); - } - - @Override - public boolean isSorterProperty(Object element, String property) { - return true; - } - }); - - fTableViewer - .addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent e) { - updateViewerInput(); - } - }); - - // create viewer that displays currently selected template's contents - fPatternViewer = doCreateViewer(parent); - - fTemplateStore = JSPUIPlugin.getDefault().getTemplateStore(); - fTableViewer.setInput(fTemplateStore); - - configureTableResizing(innerParent, table, column1, column2); - loadLastSavedPreferences(); - - PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, - IHelpContextIds.JSP_NEWWIZARD_TEMPLATE_HELPID); - Dialog.applyDialogFont(parent); - setControl(parent); - } - - /** - * Creates, configures and returns a source viewer to present the template - * pattern on the preference page. Clients may override to provide a custom - * source viewer featuring e.g. syntax coloring. - * - * @param parent - * the parent control - * @return a configured source viewer - */ - private SourceViewer createViewer(Composite parent) { - SourceViewerConfiguration sourceViewerConfiguration = new StructuredTextViewerConfiguration() { - StructuredTextViewerConfiguration baseConfiguration = new StructuredTextViewerConfigurationJSP(); - - @Override - public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { - return baseConfiguration - .getConfiguredContentTypes(sourceViewer); - } - - @Override - public LineStyleProvider[] getLineStyleProviders( - ISourceViewer sourceViewer, String partitionType) { - return baseConfiguration.getLineStyleProviders(sourceViewer, - partitionType); - } - }; - SourceViewer viewer = new StructuredTextViewer(parent, null, null, - false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - ((StructuredTextViewer) viewer).getTextWidget().setFont( - JFaceResources.getFont("org.eclipse.wst.sse.ui.textfont")); //$NON-NLS-1$ - IStructuredModel scratchModel = StructuredModelManager - .getModelManager().createUnManagedStructuredModelFor( - ContentTypeIdForJSP.ContentTypeID_JSP); - IDocument document = scratchModel.getStructuredDocument(); - viewer.configure(sourceViewerConfiguration); - viewer.setDocument(document); - return viewer; - } - - private SourceViewer doCreateViewer(Composite parent) { - Label label = new Label(parent, SWT.NONE); - label.setText(JSPUIMessages.NewJSPTemplatesWizardPage_5); - GridData data = new GridData(); - data.horizontalSpan = 2; - label.setLayoutData(data); - - SourceViewer viewer = createViewer(parent); - viewer.setEditable(false); - - Control control = viewer.getControl(); - data = new GridData(GridData.FILL_BOTH); - data.horizontalSpan = 2; - data.heightHint = convertHeightInCharsToPixels(5); - control.setLayoutData(data); - - return viewer; - } - - /** - * Enable/disable controls in page based on fUseTemplateButton's current - * state. - */ - void enableTemplates() { - boolean enabled = fUseTemplateButton.getSelection(); - - if (!enabled) { - // save last selected template - Template template = getSelectedTemplate(); - if (template != null) { - fLastSelectedTemplateName = template.getName(); - } else { - fLastSelectedTemplateName = ""; //$NON-NLS-1$ - } - - fTableViewer.setSelection(null); - } else { - setSelectedTemplate(fLastSelectedTemplateName); - } - - fTableViewer.getControl().setEnabled(enabled); - fPatternViewer.getControl().setEnabled(enabled); - } - - /** - * Return the template preference page id - * - * @return - */ - private String getPreferencePageId() { - return "org.eclipse.wst.sse.ui.preferences.jsp.templates"; //$NON-NLS-1$ - } - - /** - * Get the currently selected template. - * - * @return - */ - private Template getSelectedTemplate() { - Template template = null; - IStructuredSelection selection = (IStructuredSelection) fTableViewer - .getSelection(); - - if (selection.size() == 1) { - template = (Template) selection.getFirstElement(); - } - return template; - } - - /** - * Returns template string to insert. - * - * @return String to insert or null if none is to be inserted - */ - String getTemplateString() { - String templateString = null; - - Template template = getSelectedTemplate(); - if (template != null) { - TemplateContextType contextType = JSPUIPlugin.getDefault() - .getTemplateContextRegistry().getContextType( - TemplateContextTypeIdsJSP.NEW); - IDocument document = new Document(); - TemplateContext context = new DocumentTemplateContext(contextType, - document, 0, 0); - try { - TemplateBuffer buffer = context.evaluate(template); - templateString = buffer.getString(); - } catch (Exception e) { - Logger.log(Logger.WARNING_DEBUG, - "Could not create template for new jsp", e); //$NON-NLS-1$ - } - } - - return templateString; - } - - void linkClicked() { - String pageId = getPreferencePageId(); - PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn( - getShell(), pageId, new String[] { pageId }, null); - dialog.open(); - fTableViewer.refresh(); - } - - /** - * Load the last template name used in New JSP File wizard. - */ - private void loadLastSavedPreferences() { - String templateName = JSPUIPlugin.getDefault().getPreferenceStore() - .getString(JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME); - if (templateName == null || templateName.length() == 0) { - fLastSelectedTemplateName = ""; //$NON-NLS-1$ - fUseTemplateButton.setSelection(false); - } else { - fLastSelectedTemplateName = templateName; - fUseTemplateButton.setSelection(true); - } - enableTemplates(); - } - - /** - * Save template name used for next call to New JSP File wizard. - */ - void saveLastSavedPreferences() { - String templateName = ""; //$NON-NLS-1$ - - Template template = getSelectedTemplate(); - if (template != null) { - templateName = template.getName(); - } - - JSPUIPlugin.getDefault().getPreferenceStore().setValue( - JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, templateName); - JSPUIPlugin.getDefault().savePluginPreferences(); - } - - /** - * Select a template in the table viewer given the template name. If - * template name cannot be found or templateName is null, just select first - * item in table. If no items in table select nothing. - * - * @param templateName - */ - private void setSelectedTemplate(String templateName) { - Object template = null; - - if (templateName != null && templateName.length() > 0) { - // pick the last used template - template = fTemplateStore.findTemplate(templateName, - TemplateContextTypeIdsJSP.NEW); - } - - // no record of last used template so just pick first element - if (template == null) { - // just pick first element - template = fTableViewer.getElementAt(0); - } - - if (template != null) { - IStructuredSelection selection = new StructuredSelection(template); - fTableViewer.setSelection(selection, true); - } - } - - /** - * Updates the pattern viewer. - */ - void updateViewerInput() { - Template template = getSelectedTemplate(); - if (template != null) { - fPatternViewer.getDocument().set(template.getPattern()); - } else { - fPatternViewer.getDocument().set(""); //$NON-NLS-1$ - } - } -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPWizard.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPWizard.java deleted file mode 100644 index 66c8406004..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/wizard/NewJSPWizard.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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.jsdt.web.ui.internal.wizard; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.OutputStreamWriter; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.wst.jsdt.web.core.internal.JSPCorePlugin; -import org.eclipse.wst.jsdt.web.ui.internal.JSPUIMessages; -import org.eclipse.wst.jsdt.web.ui.internal.Logger; -import org.eclipse.wst.jsdt.web.ui.internal.editor.JSPEditorPluginImageHelper; -import org.eclipse.wst.jsdt.web.ui.internal.editor.JSPEditorPluginImages; -import org.eclipse.ui.INewWizard; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.IDE; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; - -public class NewJSPWizard extends Wizard implements INewWizard { - private NewJSPFileWizardPage fNewFilePage; - private NewJSPTemplatesWizardPage fNewFileTemplatesPage; - private IStructuredSelection fSelection; - - @Override - public void addPages() { - fNewFilePage = new NewJSPFileWizardPage( - "JSPWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))); //$NON-NLS-1$ - fNewFilePage.setTitle(JSPUIMessages._UI_WIZARD_NEW_HEADING); - fNewFilePage.setDescription(JSPUIMessages._UI_WIZARD_NEW_DESCRIPTION); - addPage(fNewFilePage); - - fNewFileTemplatesPage = new NewJSPTemplatesWizardPage(); - addPage(fNewFileTemplatesPage); - } - - public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) { - fSelection = aSelection; - setWindowTitle(JSPUIMessages._UI_WIZARD_NEW_TITLE); - - ImageDescriptor descriptor = JSPEditorPluginImageHelper.getInstance() - .getImageDescriptor( - JSPEditorPluginImages.IMG_OBJ_WIZBAN_NEWJSPFILE); - setDefaultPageImageDescriptor(descriptor); - } - - private void openEditor(final IFile file) { - if (file != null) { - getShell().getDisplay().asyncExec(new Runnable() { - public void run() { - try { - IWorkbenchPage page = PlatformUI.getWorkbench() - .getActiveWorkbenchWindow().getActivePage(); - IDE.openEditor(page, file, true); - } catch (PartInitException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - }); - } - } - - @Override - public boolean performFinish() { - boolean performedOK = false; - - // save user options for next use - fNewFileTemplatesPage.saveLastSavedPreferences(); - - // no file extension specified so add default extension - String fileName = fNewFilePage.getFileName(); - if (fileName.lastIndexOf('.') == -1) { - String newFileName = fNewFilePage.addDefaultExtension(fileName); - fNewFilePage.setFileName(newFileName); - } - - // create a new empty file - IFile file = fNewFilePage.createNewFile(); - - // if there was problem with creating file, it will be null, so make - // sure to check - if (file != null) { - // put template contents into file - String templateString = fNewFileTemplatesPage.getTemplateString(); - if (templateString != null) { - // determine the encoding for the new file - Preferences preference = JSPCorePlugin.getDefault() - .getPluginPreferences(); - String charSet = preference - .getString(CommonEncodingPreferenceNames.OUTPUT_CODESET); - - try { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - OutputStreamWriter outputStreamWriter = null; - if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$ - // just use default encoding - outputStreamWriter = new OutputStreamWriter( - outputStream); - } else { - outputStreamWriter = new OutputStreamWriter( - outputStream, charSet); - } - outputStreamWriter.write(templateString); - outputStreamWriter.flush(); - outputStreamWriter.close(); - ByteArrayInputStream inputStream = new ByteArrayInputStream( - outputStream.toByteArray()); - file.setContents(inputStream, true, false, null); - inputStream.close(); - } catch (Exception e) { - Logger.log(Logger.WARNING_DEBUG, - "Could not create contents for new JSP file", e); //$NON-NLS-1$ - } - } - - // open the file in editor - openEditor(file); - - // everything's fine - performedOK = true; - } - return performedOK; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterFactoryForJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterFactoryForJSDT.java deleted file mode 100644 index 41ff0fe604..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterFactoryForJSDT.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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.jsdt.web.ui.views.contentoutline; - - - -import org.eclipse.wst.html.ui.internal.contentoutline.JFaceNodeAdapterForHTML; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter; -import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapterFactory; - -/** - * An adapter factory to create JFaceNodeAdapters. Use this - * adapter factory with a JFaceAdapterContentProvider to display - * DOM nodes in a tree. - */ -public class JFaceNodeAdapterFactoryForJSDT extends JFaceNodeAdapterFactory { - - - public JFaceNodeAdapterFactoryForJSDT() { - this(IJFaceNodeAdapter.class, true); - } - - public JFaceNodeAdapterFactoryForJSDT(Object adapterKey, boolean registerAdapters) { - super(adapterKey, registerAdapters); - } - - protected INodeAdapter createAdapter(INodeNotifier node) { - if (singletonAdapter == null) { - // create the JFaceNodeAdapter - //singletonAdapter = new JFaceNodeAdapterForJSDT(this); - singletonAdapter = new JFaceNodeAdapterForJs(this); - initAdapter(singletonAdapter, node); - } - return singletonAdapter; - } - - public INodeAdapterFactory copy() { - return new JFaceNodeAdapterFactoryForJSDT(getAdapterKey(), isShouldRegisterAdapter()); - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java deleted file mode 100644 index 715f3eee8c..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java +++ /dev/null @@ -1,262 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.views.contentoutline; - - -import java.util.Enumeration; -import java.util.Hashtable; -import org.eclipse.wst.jsdt.internal.ui.compare.JavaNode; - -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.Position; -import org.eclipse.jface.viewers.IContentProvider; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.swt.graphics.Image; -import org.eclipse.wst.html.ui.internal.contentoutline.JFaceNodeAdapterForHTML; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.core.JavaModelException; -import org.eclipse.wst.jsdt.internal.core.NamedMember; -import org.eclipse.wst.jsdt.internal.core.SourceMethod; -import org.eclipse.wst.jsdt.internal.core.SourceRefElement; -import org.eclipse.wst.jsdt.internal.core.SourceType; -import org.eclipse.wst.jsdt.ui.JavaElementLabelProvider; -import org.eclipse.wst.jsdt.ui.StandardJavaElementContentProvider; -import org.eclipse.wst.jsdt.web.core.internal.Logger; -import org.eclipse.wst.jsdt.web.core.internal.java.IJSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslation; -import org.eclipse.wst.jsdt.web.core.internal.java.JSPTranslationAdapter; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.IModelManager; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter; -import org.eclipse.wst.xml.core.internal.document.NodeImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapterFactory; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class JFaceNodeAdapterForJs extends JFaceNodeAdapterForHTML { - - public JFaceNodeAdapterForJs(JFaceNodeAdapterFactory adapterFactory) { - super(adapterFactory); - } - - private StandardJavaElementContentProvider fJavaElementProvider; - private JavaElementLabelProvider fJavaElementLabelProvider; - //private Hashtable parents = new Hashtable(); - - public Object[] getChildren(Object object) { - if(object instanceof IJavaElement) return getJavaElementProvider().getChildren(object); - Node node = (Node) object; - if (isJSElementParent(node)) { - Object[] results = getJSElementsFromNode(node.getFirstChild()); - return results; - } - return super.getChildren(object); - } - - public Object[] getElements(Object object) { - if(object instanceof IJavaElement) return getJavaElementProvider().getElements(object); -// if(parents.contains(object)){ -// NodeList list= ((Node)parents.get(object)).getChildNodes(); -// Object obj[] = new Object[list.getLength()]; -// for(int i = 0;i<list.getLength();i++){ -// obj[i] = list.item(i); -// } -// return obj; -// } - return super.getElements(object); - } - - - - public String getLabelText(Object node) { - if(node instanceof JsJfaceNode) return getJavaElementLabelProvider().getText(((JsJfaceNode)node).getJsElement()); - if(node instanceof IJavaElement) return getJavaElementLabelProvider().getText((IJavaElement)node); - return super.getLabelText(node); - } - - - - public Image getLabelImage(Object node) { - if(node instanceof JsJfaceNode) return getJavaElementLabelProvider().getImage(((JsJfaceNode)node).getJsElement()); - if(node instanceof IJavaElement) return getJavaElementLabelProvider().getImage((IJavaElement)node); - return super.getLabelImage(node); - } - - public Object getParent(Object element) { - -// if(parents.contains(element)){ -// return ((Node)parents.get(element)); -// } - if(element instanceof IJavaElement) return getJavaElementProvider().getParent(element); - return super.getParent(element); - } - - public boolean hasChildren(Object object) { - if(object instanceof IJavaElement) return getJavaElementProvider().hasChildren(object); - - Node node = (Node) object; - - if ( isJSElementParent(node) ) { - // if(parents.contains(node)) return true; - - Object[] nodes = getJSElementsFromNode(node.getFirstChild()); - - return (nodes != null && nodes.length > 0); - } - - return super.hasChildren(object); - } - - private boolean isJSElementParent(Node node) { - return (node.hasChildNodes() && node.getNodeName().equalsIgnoreCase("script")); - } - - private boolean isJSElement(Object object) { - - if(object instanceof IJavaElement) return true; - - Node node = (Node) object; - Node parent = node.getParentNode(); - if (parent != null && parent.getNodeName().equalsIgnoreCase("script") && node.getNodeType() == Node.TEXT_NODE) { - return true; - } - return false; - } - - private Object[] getJSElementsFromNode(Node node) { - IStructuredModel model = null; - IModelManager modelManager = StructuredModelManager.getModelManager(); - JSPTranslation translation = null; - - IJavaElement[] result = null; - IDocument viewerDoc = null; - - try { - if (modelManager != null) { - IStructuredDocument doc = ((NodeImpl) node).getStructuredDocument(); - // model = modelManager.getExistingModelForRead(doc); - model = modelManager.getExistingModelForRead(doc); - } - IDOMModel domModel = (IDOMModel) model; - IDOMDocument xmlDoc = domModel.getDocument(); - viewerDoc = xmlDoc.getStructuredDocument(); - - JSPTranslationAdapter translationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class); - translation = translationAdapter.getJSPTranslation(); - - - int startOffset = 0; - int endOffset = 0; - int type = node.getNodeType(); - if (node.getNodeType() == Node.TEXT_NODE && (node instanceof NodeImpl) && translation != null) { - startOffset = ((NodeImpl) node).getStartOffset(); - endOffset = ((NodeImpl) node).getEndOffset(); - - result = translation.getElementsFromJspRange(startOffset, endOffset,true); - - } - if (result == null) - return null; - } catch (Exception e) { - Logger.logException(e); - } finally { - if (model != null) { - // model.changedModel(); - model.releaseFromRead(); - } - } - - - Object[] newResults=new Object[result.length]; - - for (int i = 0; i < result.length; i++) { - int htmllength = 0; - int htmloffset = 0; - Position position=null; - try { - htmllength = ((SourceRefElement) (result[i])).getSourceRange().getLength(); - htmloffset = translation.getJspOffset(((SourceRefElement) (result[i])).getSourceRange().getOffset()); - position = new Position(htmloffset, htmllength); - } catch (JavaModelException e) { - e.printStackTrace(); - } - - - newResults[i] = getJsNode(node.getParentNode(), (IJavaElement)result[i], position, model.getFactoryRegistry()); - //newResults[i] = new JavaNode(parent,result[i].getElementType(),result[i].getElementName(),htmloffset,htmllength); - //parents.put(result[i], node); - //parents.put(newResults[i], node); - - - } - return newResults; - } - - private Object getJsNode(Node parent, IJavaElement root, Position position, FactoryRegistry registry){ - //JavaNode node = new JavaNode(parent,root.getElementType(),root.getElementName(),position.getOffset(), position.getLength()); - //if(true) return node; - //if(true) return new JsElement(root); - JsJfaceNode instance = new JsJfaceNode(parent, root, position); - - ((JsJfaceNode)instance).setAdapterRegistry(registry); - - INodeAdapter adapter = ((JsJfaceNode)instance).getAdapterFor(IJFaceNodeAdapter.class); - if(!(adapter instanceof JFaceNodeAdapterForJs)){ - ((JsJfaceNode)instance).removeAdapter(adapter); - ((JsJfaceNode)instance).addAdapter(this); - } - return instance; - } - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { -// // TODO Auto-generated method stub -// System.out.println("Umiplement method inputChanged" ); -// //super.inputChanged(viewer, oldInput, newInput); -// if(oldInput instanceof JSDTJfaceNode){ -// if(newInput instanceof JSDTJfaceNode){ -// super.inputChanged(viewer, oldInput, newInput); -// } -// } - - // if(oldInput!=null && parents.contains(oldInput)) parents.remove(oldInput); - // super.inputChanged(viewer, oldInput, newInput); - - } - - public ISelection getSelection(TreeViewer viewer, ISelection selection) { - - if (selection instanceof StructuredSelection) { - StructuredSelection ss = (StructuredSelection) selection; - if(ss==null) return null; - Object firstElement = ss.getFirstElement(); - if (isJSElement(firstElement)) - return new StructuredSelection(firstElement); - if (isJSElementParent((Node) firstElement)) - return new StructuredSelection(getJSElementsFromNode(((Node) firstElement).getFirstChild())); - } - - return null; - } - private StandardJavaElementContentProvider getJavaElementProvider() { - if (fJavaElementProvider == null) { - fJavaElementProvider = new StandardJavaElementContentProvider(true); - } - return fJavaElementProvider; - - } - - private JavaElementLabelProvider getJavaElementLabelProvider() { - if (fJavaElementLabelProvider == null) { - fJavaElementLabelProvider = new JavaElementLabelProvider(); - } - return fJavaElementLabelProvider; - - } - -} diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JsJfaceNode.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JsJfaceNode.java deleted file mode 100644 index 75c9c13058..0000000000 --- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JsJfaceNode.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.eclipse.wst.jsdt.web.ui.views.contentoutline; - - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.Arrays; -import java.util.Collection; -import java.util.Vector; - -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.jface.text.Position; -import org.eclipse.wst.jsdt.core.IJavaElement; -import org.eclipse.wst.jsdt.internal.core.CompilationUnit; -import org.eclipse.wst.jsdt.internal.core.JavaElement; -import org.eclipse.wst.jsdt.internal.core.NamedMember; -import org.eclipse.wst.jsdt.internal.core.SourceMethod; -import org.eclipse.wst.jsdt.internal.core.SourceRefElement; -import org.eclipse.wst.jsdt.internal.core.SourceType; -import org.eclipse.wst.jsdt.internal.ui.compare.JavaNode; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.document.ElementImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.Node; - -public class JsJfaceNode extends ElementImpl implements IndexedRegion, INodeNotifier,Node{ - - private FactoryRegistry adapterRegistry; - private Position fDocPosition; - private IJavaElement fEnclosedObject; - private Node parent; - - private JsAdaptableNode adaptableDomNode = new JsAdaptableNode(); - - private class JsAdaptableNode extends AbstractNotifier{ - public FactoryRegistry getFactoryRegistry() { - return adapterRegistry; - } - } - - public JsJfaceNode(Node parent, IJavaElement enclosedObject, Position structureDocLocation) { - super(); - //super((ElementImpl)parent); - // super(parentObject, parentObject.getElementName()); - fDocPosition = structureDocLocation; - fEnclosedObject = enclosedObject; - this.parent = parent; - if(parent instanceof SourceMethod){ - SourceMethod method = (SourceMethod)parent; - - - } - - - } - - public Node getParentNode(){ - return this.parent; - - } - - public IJavaElement getJsElement(){ - return fEnclosedObject; - } - - public void setAdapterRegistry(FactoryRegistry registry){ - this.adapterRegistry = registry; - } - -// public static Object getInstance(Object parent, Position structureDocLocation ){ -// //return new JsJfaceNode((JavaElement)parent.getParent(), parent.getElementName(),structureDocLocation); -// Vector interfaces = new Vector(); -// interfaces.addAll(Arrays.asList(parent.getClass().getInterfaces())); -// JsJfaceNode me = new JsJfaceNode(parent,structureDocLocation); -// interfaces.addAll(Arrays.asList(me.getClass().getInterfaces())); -// Object proxy = null; -// try { -// proxy= Proxy.newProxyInstance( -// parent.getClass().getClassLoader(), -// (Class[])interfaces.toArray(new Class[]{}),me); -// } catch (Exception e) { -// // TODO Auto-generated catch block -// System.out.println(e); -// } -// return proxy; -// } -// - - public void addAdapter(INodeAdapter adapter) { - adaptableDomNode.addAdapter(adapter); - - } - - - public INodeAdapter getAdapterFor(Object type) { - return adaptableDomNode.getAdapterFor(type); - } - - - public Collection getAdapters() { - return adaptableDomNode.getAdapters(); - } - - - public INodeAdapter getExistingAdapter(Object type) { - // TODO Auto-generated method stub - return adaptableDomNode.getExistingAdapter(type); - } - - - public void notify(int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - adaptableDomNode.notify(eventType, changedFeature, oldValue, newValue, pos); - - } - - - public void removeAdapter(INodeAdapter adapter) { - adaptableDomNode.removeAdapter(adapter); - } - - public boolean contains(int testPosition) { - // TODO Auto-generated method stub - System.out.println("Umiplement method contains" ); - return false; - } - - public int getEndOffset() { - return fDocPosition.getOffset() + fDocPosition.getLength(); - } - - public int getLength() { - return fDocPosition.getLength(); - } - - public int getStartOffset() { - return fDocPosition.getOffset(); - } - -// private Method[] getMethods(){ -// // returns the methods this class supports (as declared in interfaces) -// Class[] interfaces = getClass().getInterfaces(); -// Vector vMethods = new Vector(); -// for(int i = 0;i<interfaces.length;i++){ -// Method methods[] = interfaces[i].getDeclaredMethods(); -// vMethods.addAll(Arrays.asList(methods)); -// } -// -// return (Method[])vMethods.toArray(); -// } - -// public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { -// Object result; -// Method[] myMethods = getMethods(); -// -// try { -// for(int i = 0;i<myMethods.length;i++){ -// if(myMethods[i]==method){ -// return method.invoke(this, args); -// } -// } -// result = method.invoke(parentType, args); -// } catch (InvocationTargetException e) { -// throw e.getTargetException(); -// } catch (Exception e) { -// throw new RuntimeException("unexpected invocation exception: " + -// e.getMessage()); -// } -// -// return result; -// } - - -} |