package org.panlab.software.fstoolkit.commands; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IPageLayout; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.HandlerUtil; import org.panlab.software.fstoolkit.views.ControlResourceView; import FederationOffice.federationscenarios.ResourceGroup; import FederationOffice.federationscenarios.ResourceRequest; import FederationOffice.uiObjects.ui_TaxonomyTreeItem; public class ControlScenarioResourcesCommand extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection(); if (selection != null & selection instanceof IStructuredSelection) { IStructuredSelection strucSelection = (IStructuredSelection) selection; for (Object obj : strucSelection.toArray()) { System.out.println("Control Resource =" + obj.toString() ); if (obj instanceof ui_TaxonomyTreeItem){ if ( (((ui_TaxonomyTreeItem)obj).getOfficeElement() instanceof ResourceRequest) || ((ui_TaxonomyTreeItem)obj).getOfficeElement() instanceof ResourceGroup ){ //System.out.println("tearDownScenarioAction =" + viewer.getSelection().toString() ); //ResourceRequest resourceRequest = (ResourceRequest)((ui_TaxonomyTreeItem)obj).getOfficeElement(); try { IViewPart prosheet = PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage() .findView(IPageLayout.ID_PROP_SHEET); //try to position it near Properties View IWorkbenchPage activepage; if (prosheet!=null) activepage = prosheet.getSite().getWorkbenchWindow().getActivePage(); else activepage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (((ui_TaxonomyTreeItem)obj).getOfficeElement() instanceof ResourceRequest){ ResourceRequest resourceRequest = (ResourceRequest)((ui_TaxonomyTreeItem)obj).getOfficeElement(); ControlResourceView view_part = (ControlResourceView) activepage. showView("org.panlab.software.fstoolkit.views.ControlResourceView", "fscontrol."+resourceRequest.getName()+ "."+resourceRequest.getRuntimeInfo().getGUID(), org.eclipse.ui.IWorkbenchPage.VIEW_VISIBLE ); view_part.setResourceRequest(resourceRequest); }else if (((ui_TaxonomyTreeItem)obj).getOfficeElement() instanceof ResourceGroup){ ResourceGroup resourceGroup = (ResourceGroup)((ui_TaxonomyTreeItem)obj).getOfficeElement(); ControlResourceView view_part = (ControlResourceView) activepage. showView("org.panlab.software.fstoolkit.views.ControlResourceView", "fscontrol."+resourceGroup.getName() , org.eclipse.ui.IWorkbenchPage.VIEW_VISIBLE ); view_part.setResourceGroup(resourceGroup) ; } } catch (PartInitException e) { // TODO Auto-geeninerated catch block e.printStackTrace(); } } } } } return null; } }