/******************************************************************************* * Copyright (c) 2012 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.refactoring; import org.eclipse.core.resources.IFile; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility; import org.eclipse.ltk.core.refactoring.TextFileChange; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.jboss.tools.common.EclipseUtil; public class FileChangeFactory { public static TextFileChange getFileChange(IFile file){ ICompilationUnit compilationUnit = EclipseUtil.getCompilationUnit(file); if(compilationUnit != null){ return new BaseJavaFileChange("", compilationUnit); }else{ return new BaseFileChange(file); } } public static boolean isOpenInEditor(IFile file) throws PartInitException{ IEditorInput input = EditorUtility.getEditorInput(file); for(IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()){ for(IWorkbenchPage page : window.getPages()){ for(IEditorReference editorReference : page.getEditorReferences()){ IEditorPart editor = editorReference.getEditor(true); if(editor != null && editor.getEditorInput().equals(input)){ return true; } } } } return false; } }