Java tutorial
/******************************************************************************* * Copyright (c) 2008 SpringSourceand 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: * Andrew Eisenberg - initial version *******************************************************************************/ package org.eclipse.ajdt.ui.tests.refactoring; import org.eclipse.ajdt.core.AspectJCore; import org.eclipse.ajdt.core.AspectJPlugin; import org.eclipse.ajdt.core.javaelements.AJCompilationUnit; import org.eclipse.ajdt.ui.tests.UITestCase; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageDeclaration; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaElementTransfer; import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility; import org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.widgets.Display; /** * * @author andrew * @created Dec 11, 2008 * * Copy and pasting of AJ compilation units * * Bug 78341 * */ public class CopyPasteAJTest extends UITestCase { protected void setUp() throws Exception { super.setUp(); if (!AspectJPlugin.USING_CU_PROVIDER) { fail("Must be using JDT Weaving"); } } public void testCopyPasteAJ() throws Exception { IProject proj = createPredefinedProject("Bug 254431"); //$NON-NLS-1$ IFile file = proj.getFile("src/ajdt/renamepackagebug1/A.aj"); //$NON-NLS-1$ IJavaProject jProj = JavaCore.create(proj); IJavaElement elt = AspectJCore.create(file); Clipboard clipboard = new Clipboard(Display.getDefault()); clipboard.setContents(new Object[] { new IJavaElement[] { elt } }, new Transfer[] { JavaElementTransfer.getInstance() }); PasteAction paste = new PasteAction(EditorUtility.openInEditor(elt).getEditorSite(), clipboard); // can't paste to the same location because a dialog appears and there is no way to OK it // instead paste to "ajdt" package paste.run(new StructuredSelection( jProj.getPackageFragmentRoot(proj.getFolder("src")).getPackageFragment("ajdt"))); //$NON-NLS-1$ //$NON-NLS-2$ IFile newFile = proj.getFile("src/ajdt/A.aj"); //$NON-NLS-1$ assertTrue("Paste operation should have created a new AJ compilation unit", newFile.exists()); //$NON-NLS-1$ AJCompilationUnit newUnit = (AJCompilationUnit) AspectJCore.create(newFile); IPackageDeclaration[] packDecls = newUnit.getPackageDeclarations(); assertEquals("New compilation unit should have only one package declaration", 1, packDecls.length); //$NON-NLS-1$ assertEquals("wrong name for package declaration", "ajdt", packDecls[0].getElementName()); //$NON-NLS-1$ //$NON-NLS-2$ } }