/** * */ package de.ovgu.cide.mining.actions; import java.util.Iterator; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; import de.ovgu.cide.mining.database.ApplicationController; import de.ovgu.cide.mining.database.ApplicationControllerException; /** * @author Alex * */ public class LoadPDG implements IObjectActionDelegate { /** * */ public LoadPDG() { // TODO Auto-generated constructor stub } private IStructuredSelection aSelection; // public void run(IAction action) { // // try { // // get instance and init the database // ApplicationController lDB = ApplicationController.getInstance(); // IProgressMonitor lMonitor = PlatformUI.getWorkbench() // .getActiveWorkbenchWindow().getActivePage() // .getViewReferences()[0].getView(true).getViewSite() // .getActionBars().getStatusLineManager() // .getProgressMonitor(); // NullProgressMonitor monitor = new NullProgressMonitor(); // lDB.initialize(getSelectedProject(), monitor); // // } catch (ApplicationControllerException lException) { // lException.printStackTrace(); // } // // } public void run(IAction action) { WorkspaceJob op = new WorkspaceJob("LoadPDG") { @Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { try { // get instance and init the database ApplicationController lDB = ApplicationController .getInstance(); lDB.initialize(getSelectedProject(), monitor); } catch (ApplicationControllerException lException) { lException.printStackTrace(); } return Status.OK_STATUS; } }; op.setUser(true); op.schedule(); } public void selectionChanged(IAction action, ISelection selection) { if (selection instanceof IStructuredSelection) aSelection = (IStructuredSelection) selection; } private IProject getSelectedProject() { IProject lReturn = null; Iterator i = aSelection.iterator(); if (i.hasNext()) { Object lNext = i.next(); if (lNext instanceof IResource) { lReturn = ((IResource) lNext).getProject(); } else if (lNext instanceof IJavaElement) { IJavaProject lProject = ((IJavaElement) lNext).getJavaProject(); lReturn = lProject.getProject(); } } return lReturn; } public void setActivePart(IAction action, IWorkbenchPart targetPart) { // TODO Auto-generated method stub } }