/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Eclipse Public License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.eclipse.org/org/documents/epl-v10.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.ide.eclipse.ndk.internal.actions; import com.android.ide.eclipse.ndk.internal.wizards.AddNativeWizard; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; public class AddNativeAction implements IObjectActionDelegate { private IWorkbenchPart mPart; private ISelection mSelection; @Override public void run(IAction action) { IProject project = null; if (mSelection instanceof IStructuredSelection) { IStructuredSelection ss = (IStructuredSelection) mSelection; if (ss.size() == 1) { Object obj = ss.getFirstElement(); if (obj instanceof IProject) { project = (IProject) obj; } else if (obj instanceof PlatformObject) { project = (IProject) ((PlatformObject) obj).getAdapter(IProject.class); } } } if (project != null) { AddNativeWizard wizard = new AddNativeWizard(project, mPart.getSite() .getWorkbenchWindow()); WizardDialog dialog = new WizardDialog(mPart.getSite().getShell(), wizard); dialog.open(); } } @Override public void selectionChanged(IAction action, ISelection selection) { mSelection = selection; } @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { mPart = targetPart; } }