X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/phpeditor/EditorUtility.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/phpeditor/EditorUtility.java deleted file mode 100644 index 0e1ed18..0000000 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/phpeditor/EditorUtility.java +++ /dev/null @@ -1,437 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package net.sourceforge.phpeclipse.phpeditor; - -import net.sourceforge.phpdt.core.ICompilationUnit; -import net.sourceforge.phpdt.core.IJavaElement; -import net.sourceforge.phpdt.core.IJavaProject; -import net.sourceforge.phpdt.core.IMember; -import net.sourceforge.phpdt.core.IWorkingCopy; -import net.sourceforge.phpdt.core.JavaCore; -import net.sourceforge.phpdt.core.JavaModelException; -import net.sourceforge.phpdt.internal.corext.util.JavaModelUtil; -import net.sourceforge.phpdt.ui.JavaUI; -//import net.sourceforge.phpeclipse.PHPeclipsePlugin; -import net.sourceforge.phpeclipse.ui.WebUI; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.jface.action.Action; -import org.eclipse.swt.SWT; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IEditorRegistry; -import org.eclipse.ui.IFileEditorInput; -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.part.FileEditorInput; -import org.eclipse.ui.texteditor.ITextEditor; - -/** - * A number of routines for working with JavaElements in editors - * - * Use 'isOpenInEditor' to test if an element is already open in a editor Use - * 'openInEditor' to force opening an element in a editor With 'getWorkingCopy' - * you get the working copy (element in the editor) of an element - */ -public class EditorUtility { - -// public static boolean isEditorInput(Object element, IEditorPart editor) { -// if (editor != null) { -// try { -// return editor.getEditorInput().equals(getEditorInput(element)); -// } catch (JavaModelException x) { -// PHPeclipsePlugin.log(x.getStatus()); -// } -// } -// return false; -// } - - /** - * Tests if a cu is currently shown in an editor - * - * @return the IEditorPart if shown, null if element is not open in an - * editor - */ -// public static IEditorPart isOpenInEditor(Object inputElement) { -// IEditorInput input = null; -// -// try { -// input = getEditorInput(inputElement); -// } catch (JavaModelException x) { -// PHPeclipsePlugin.log(x.getStatus()); -// } -// -// if (input != null) { -// IWorkbenchPage p = WebUI.getActivePage(); -// if (p != null) { -// return p.findEditor(input); -// } -// } -// -// return null; -// } - - /** - * Opens a Java editor for an element such as IJavaElement, - * IFile, or IStorage. The editor is - * activated by default. - * - * @return the IEditorPart or null if wrong element type or opening failed - */ - public static IEditorPart openInEditor(Object inputElement) - throws JavaModelException, PartInitException { - return openInEditor(inputElement, true); - } - - /** - * Opens a Java editor for an element (IJavaElement, IFile, IStorage...) - * - * @return the IEditorPart or null if wrong element type or opening failed - */ - public static IEditorPart openInEditor(Object inputElement, boolean activate) - throws JavaModelException, PartInitException { - - if (inputElement instanceof IFile) - return openInEditor((IFile) inputElement, activate); - - IEditorInput input = getEditorInput(inputElement); - if (input instanceof IFileEditorInput) { - IFileEditorInput fileInput = (IFileEditorInput) input; - return openInEditor(fileInput.getFile(), activate); - } - - if (input != null) - return openInEditor(input, getEditorID(input, inputElement), - activate); - - return null; - } - - /** - * Selects a Java Element in an editor - */ - public static void revealInEditor(IEditorPart part, IJavaElement element) { - if (element != null && part instanceof PHPEditor) { - ((PHPEditor) part).setSelection(element); - } - } - - private static IEditorPart openInEditor(IFile file, boolean activate) - throws PartInitException { - if (file != null) { - IWorkbenchPage p = WebUI.getActivePage(); - if (p != null) { - IEditorPart editorPart = IDE.openEditor(p, file, activate); - initializeHighlightRange(editorPart); - return editorPart; - } - } - return null; - } - - private static IEditorPart openInEditor(IEditorInput input, - String editorID, boolean activate) throws PartInitException { - if (input != null) { - IWorkbenchPage p = WebUI.getActivePage(); - if (p != null) { - IEditorPart editorPart = p - .openEditor(input, editorID, activate); - initializeHighlightRange(editorPart); - return editorPart; - } - } - return null; - } - - private static void initializeHighlightRange(IEditorPart editorPart) { - if (editorPart instanceof ITextEditor) { - TogglePresentationAction toggleAction = new TogglePresentationAction(); - // Initialize editor - toggleAction.setEditor((ITextEditor) editorPart); - // Reset action - toggleAction.setEditor(null); - } - } - - /** - * @deprecated Made it public again for java debugger UI. - */ - public static String getEditorID(IEditorInput input, Object inputObject) { - IEditorRegistry registry = PlatformUI.getWorkbench() - .getEditorRegistry(); - IEditorDescriptor descriptor = registry.getDefaultEditor(input - .getName()); - if (descriptor != null) - return descriptor.getId(); - return null; - } - - private static IEditorInput getEditorInput(IJavaElement element) - throws JavaModelException { - while (element != null) { - if (element instanceof IWorkingCopy - && ((IWorkingCopy) element).isWorkingCopy()) - element = ((IWorkingCopy) element).getOriginalElement(); - - if (element instanceof ICompilationUnit) { - ICompilationUnit unit = (ICompilationUnit) element; - IResource resource = unit.getResource(); - if (resource instanceof IFile) - return new FileEditorInput((IFile) resource); - } - - // if (element instanceof IClassFile) - // return new InternalClassFileEditorInput((IClassFile) element); - // - element = element.getParent(); - } - - return null; - } - - public static IEditorInput getEditorInput(Object input) - throws JavaModelException { - - if (input instanceof IJavaElement) - return getEditorInput((IJavaElement) input); - - if (input instanceof IFile) - return new FileEditorInput((IFile) input); - - // if (input instanceof IStorage) - // return new JarEntryEditorInput((IStorage)input); - - return null; - } - - /** - * If the current active editor edits a java element return it, else return - * null - */ -// public static IJavaElement getActiveEditorJavaInput() { -// IWorkbenchPage page = WebUI.getActivePage(); -// if (page != null) { -// IEditorPart part = page.getActiveEditor(); -// if (part != null) { -// IEditorInput editorInput = part.getEditorInput(); -// if (editorInput != null) { -// return (IJavaElement) editorInput -// .getAdapter(IJavaElement.class); -// } -// } -// } -// return null; -// } - - /** - * Gets the working copy of an compilation unit opened in an editor - * - * @param part - * the editor part - * @param cu - * the original compilation unit (or another working copy) - * @return the working copy of the compilation unit, or null if not found - */ - public static ICompilationUnit getWorkingCopy(ICompilationUnit cu) { - if (cu == null) - return null; - if (cu.isWorkingCopy()) - return cu; - - return (ICompilationUnit) cu.findSharedWorkingCopy(JavaUI - .getBufferFactory()); - } - - /** - * Gets the working copy of an member opened in an editor - * - * @param member - * the original member or a member in a working copy - * @return the corresponding member in the shared working copy or - * null if not found - */ -// public static IMember getWorkingCopy(IMember member) -// throws JavaModelException { -// ICompilationUnit cu = member.getCompilationUnit(); -// if (cu != null) { -// ICompilationUnit workingCopy = getWorkingCopy(cu); -// if (workingCopy != null) { -// return JavaModelUtil.findMemberInCompilationUnit(workingCopy, -// member); -// } -// } -// return null; -// } - - /** - * Returns the compilation unit for the given java element. - * - * @param element - * the java element whose compilation unit is searched for - * @return the compilation unit of the given java element - */ - private static ICompilationUnit getCompilationUnit(IJavaElement element) { - - if (element == null) - return null; - - if (element instanceof IMember) - return ((IMember) element).getCompilationUnit(); - - int type = element.getElementType(); - if (IJavaElement.COMPILATION_UNIT == type) - return (ICompilationUnit) element; - if (IJavaElement.CLASS_FILE == type) - return null; - - return getCompilationUnit(element.getParent()); - } - - /** - * Returns the working copy of the given java element. - * - * @param javaElement - * the javaElement for which the working copyshould be found - * @param reconcile - * indicates whether the working copy must be reconcile prior to - * searching it - * @return the working copy of the given element or null if - * none - */ - public static IJavaElement getWorkingCopy(IJavaElement element, - boolean reconcile) throws JavaModelException { - ICompilationUnit unit = getCompilationUnit(element); - if (unit == null) - return null; - - if (unit.isWorkingCopy()) - return element; - - ICompilationUnit workingCopy = getWorkingCopy(unit); - if (workingCopy != null) { - if (reconcile) { - synchronized (workingCopy) { - workingCopy.reconcile(); - return JavaModelUtil.findInCompilationUnit(workingCopy, - element); - } - } else { - return JavaModelUtil - .findInCompilationUnit(workingCopy, element); - } - } - - return null; - } - - /** - * Maps the localized modifier name to a code in the same manner as - * #findModifier. - * - * @return the SWT modifier bit, or 0 if no match was found - * @see findModifier - * @since 2.1.1 - */ - public static int findLocalizedModifier(String token) { - if (token == null) - return 0; - - if (token.equalsIgnoreCase(Action.findModifierString(SWT.CTRL))) - return SWT.CTRL; - if (token.equalsIgnoreCase(Action.findModifierString(SWT.SHIFT))) - return SWT.SHIFT; - if (token.equalsIgnoreCase(Action.findModifierString(SWT.ALT))) - return SWT.ALT; - if (token.equalsIgnoreCase(Action.findModifierString(SWT.COMMAND))) - return SWT.COMMAND; - - return 0; - } - - /** - * Returns the modifier string for the given SWT modifier modifier bits. - * - * @param stateMask - * the SWT modifier bits - * @return the modifier string - * @since 2.1.1 - */ - public static String getModifierString(int stateMask) { - String modifierString = ""; //$NON-NLS-1$ - if ((stateMask & SWT.CTRL) == SWT.CTRL) - modifierString = appendModifierString(modifierString, SWT.CTRL); - if ((stateMask & SWT.ALT) == SWT.ALT) - modifierString = appendModifierString(modifierString, SWT.ALT); - if ((stateMask & SWT.SHIFT) == SWT.SHIFT) - modifierString = appendModifierString(modifierString, SWT.SHIFT); - if ((stateMask & SWT.COMMAND) == SWT.COMMAND) - modifierString = appendModifierString(modifierString, SWT.COMMAND); - - return modifierString; - } - - /** - * Appends to modifier string of the given SWT modifier bit to the given - * modifierString. - * - * @param modifierString - * the modifier string - * @param modifier - * an int with SWT modifier bit - * @return the concatenated modifier string - * @since 2.1.1 - */ - private static String appendModifierString(String modifierString, - int modifier) { - if (modifierString == null) - modifierString = ""; //$NON-NLS-1$ - String newModifierString = Action.findModifierString(modifier); - if (modifierString.length() == 0) - return newModifierString; - return PHPEditorMessages - .getFormattedString( - "EditorUtility.concatModifierStrings", new String[] { modifierString, newModifierString }); //$NON-NLS-1$ - } - - /** - * Returns the Java project for a given editor input or null - * if no corresponding Java project exists. - * - * @param input - * the editor input - * @return the corresponding Java project - * - * @since 3.0 - */ - public static IJavaProject getJavaProject(IEditorInput input) { - IJavaProject jProject = null; - if (input instanceof IFileEditorInput) { - IProject project = ((IFileEditorInput) input).getFile() - .getProject(); - if (project != null) { - jProject = JavaCore.create(project); - if (!jProject.exists()) - jProject = null; - } - } - // else if (input instanceof IClassFileEditorInput) { - // jProject= - // ((IClassFileEditorInput)input).getClassFile().getJavaProject(); - // } - return jProject; - } -}