package com.robotoworks.mechanoid.ui.wizard; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITreeSelection; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.wizard.Wizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchWizard; public abstract class MechanoidWizard extends Wizard implements IWorkbenchWizard { private IWorkbench mWorkbench; private IStructuredSelection mSelection; private IJavaProject mSelectedJavaProject; private IFolder mSelectedFolder; private IProject mSelectedProject; public IWorkbench getWorkbench() { return mWorkbench; } public IJavaProject getSelectedJavaProject() { return mSelectedJavaProject; } public IProject getSelectedProject() { return mSelectedProject; } public IFolder getSelectedFolder() { return mSelectedFolder; } public IStructuredSelection getSelection() { return mSelection; } @Override public boolean performFinish() { return false; } @Override public void init(IWorkbench workbench, IStructuredSelection selection) { mWorkbench = workbench; mSelection = selection; extractSelectionInfo(); } private void extractSelectionInfo() { if(mSelection.isEmpty()) { return; } if(mSelection instanceof ITreeSelection) { ITreeSelection treeSelection = (ITreeSelection) mSelection; TreePath[] paths = treeSelection.getPaths(); if(paths.length > 0) { for(int i=0; i < paths[0].getSegmentCount(); i++) { Object segment = paths[0].getSegment(i); if(segment instanceof IJavaProject) { mSelectedJavaProject = (IJavaProject) segment; mSelectedProject = mSelectedJavaProject.getProject(); } if(segment instanceof IFolder) { mSelectedFolder = (IFolder) segment; } if(segment instanceof IProject) { mSelectedProject = (IProject) segment; } } } } } }