Java tutorial
/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.propertytester; import java.util.Iterator; import net.rim.ejde.internal.util.NatureUtils; import org.eclipse.core.expressions.PropertyTester; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.ui.IPackagesViewPart; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; /** * Test if selection contains only IProject and all the projects are BB project. * * @author dmeng * */ public class ProjectPropertyTester extends PropertyTester { public static final String PROPERTY_NAME = "net.rim.ejde.isBBProject"; @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page != null) { IViewPart viewPart = page.findView("org.eclipse.jdt.ui.PackageExplorer"); if (viewPart != null) { IPackagesViewPart packageView = (IPackagesViewPart) viewPart; ISelection selection = packageView.getSite().getSelectionProvider().getSelection(); if (selection instanceof StructuredSelection) { StructuredSelection ssel = (StructuredSelection) selection; if (ssel.isEmpty()) { return false; } else { Iterator<Object> iter = ssel.iterator(); while (iter.hasNext()) { Object item = iter.next(); if (!(item instanceof IJavaProject)) { return false; } if (!NatureUtils.hasBBNature(((IJavaProject) item).getProject())) { return false; } } return true; } } } } return false; } }