Java tutorial
/****************************************************************************** * Copyright (c) 2007 g-Eclipse consortium * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Initial development of the original code was made for * project g-Eclipse founded by European Union * project number: FP6-IST-034327 http://www.geclipse.eu/ * * Contributor(s): * UCY (http://www.cs.ucy.ac.cy) * - Harald Gjermundrod (harald@cs.ucy.ac.cy) * *****************************************************************************/ package eu.geclipse.ui.internal.actions; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IWorkbenchSite; import org.eclipse.ui.actions.SelectionListenerAction; import eu.geclipse.core.model.IGridComputing; import eu.geclipse.core.model.IGridResource; import eu.geclipse.core.model.IGridService; import eu.geclipse.core.model.IGridStorage; import eu.geclipse.core.simpleTest.ISimpleTest; import eu.geclipse.core.simpleTest.ISimpleTestDescription; import eu.geclipse.ui.ISimpleTestUIFactory; import eu.geclipse.ui.dialogs.AbstractSimpleTestDialog; /** * @author harald * */ public class SimpleTestAction extends SelectionListenerAction { private List<IGridResource> resources; private ISimpleTestUIFactory factory; /** * The workbench site this action belongs to. */ private IWorkbenchSite site; protected SimpleTestAction(final IWorkbenchSite site, final ISimpleTestUIFactory factory) { super(factory.getSupportedDescription().getSimpleTestTypeName()); this.site = site; this.factory = factory; } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { if (this.factory != null) { ISimpleTestDescription description = this.factory.getSupportedDescription(); ISimpleTest test = description.createSimpleTest(); AbstractSimpleTestDialog infoDialog = this.factory.getSimpleTestDialog(test, this.resources, this.site.getShell()); infoDialog.open(); } } /* (non-Javadoc) * @see org.eclipse.ui.actions.BaseSelectionListenerAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection) */ @Override protected boolean updateSelection(final IStructuredSelection selection) { this.resources = new ArrayList<IGridResource>(); boolean enabled = super.updateSelection(selection); Iterator<?> iter = selection.iterator(); while (iter.hasNext() && enabled) { Object element = iter.next(); boolean isResource = isResourcePhysical(element); enabled &= isResource; if (isResource) { this.resources.add((IGridResource) element); } } return enabled && !this.resources.isEmpty(); } protected boolean isResourcePhysical(final Object element) { boolean ret = false; if (element instanceof IGridService || element instanceof IGridComputing || element instanceof IGridStorage) { ret = ((eu.geclipse.core.model.IGridResource) element).isVirtual(); } return ret; } }