Newer
Older
org.ntlab.pushPullRefactoring / src / org / ntlab / pushPullRefactoring / PushPullRefactoringHandler.java
package org.ntlab.pushPullRefactoring;

import java.lang.reflect.InvocationTargetException;

import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper;
import org.eclipse.ltk.core.refactoring.RefactoringCore;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ui.handlers.HandlerUtil;

public class PushPullRefactoringHandler implements IHandler {

	@Override
	public void addHandlerListener(IHandlerListener handlerListener) {
		// TODO Auto-generated method stub

	}

	@Override
	public void dispose() {
		// TODO Auto-generated method stub

	}
	
	/**
	 * メニューで「PushPullRefactoring...」が押下されたときに実行
	 */
	@Override
	public Object execute(ExecutionEvent event) throws ExecutionException {
		// TODO Auto-generated method stub
		System.out.println("Hello Push-Pull Refactoring!!");
		PushPullRefactoringContribution contribution = (PushPullRefactoringContribution)RefactoringCore.getRefactoringContribution(PushPullRefactoring.ID);
		PushPullDescriptor descriptor = (PushPullDescriptor) contribution.createDescriptor();
		try {
			PushPullRefactoring refactoring = (PushPullRefactoring) contribution.createRefactoring(descriptor, null);
			
			RefactoringExecutionHelper helper= new RefactoringExecutionHelper(refactoring,
					RefactoringCore.getConditionCheckingFailedSeverity(),
					RefactoringStatus.FATAL,
					HandlerUtil.getActiveShell(event),
					HandlerUtil.getActiveWorkbenchWindow(event));
				helper.perform(true, true);
		} catch (CoreException | InvocationTargetException | InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public boolean isEnabled() {
		System.out.println(this.getClass().getSimpleName() + "#" + "isEnabled()");
		return true;
	}

	@Override
	public boolean isHandled() {
		System.out.println(this.getClass().getSimpleName() + "#" + "isHandled()");
		return true;
	}

	@Override
	public void removeHandlerListener(IHandlerListener handlerListener) {
		// TODO Auto-generated method stub

	}

}