public boolean checkInfrastructureReq() { IWorkbench workbench = PlatformUI.getWorkbench(); IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); IEditorPart editor = page.getActiveEditor(); IFile modelFile = (IFile) editor.getEditorInput().getAdapter(IFile.class); if (modelFile != null) { System.out.println("checkInfrastructureReq()" + modelFile.getLocation().toString()); } ResourceSet resourceSet = new ResourceSetImpl(); URI uri = URI.createFileURI(modelFile.getLocation().toString()); System.out.println("uri" + uri.toString()); org.eclipse.emf.ecore.resource.Resource resource = resourceSet.getResource(uri, true); RequestedFederationScenario sourceFedScenario = (RequestedFederationScenario) resource.getContents().get(0); return (sourceFedScenario.getInfrastructureRequest() != null) && (sourceFedScenario.getInfrastructureRequest().getReqOfferedResources().size() > 0); }
/** * It will create a new scenario based on the given one, if the given one is not already saved. * The returned scenario will have some (or all if possible) assignments on resource settings * resolved. The method calls internally {@link #resolveAssignments(RequestedFederationScenario)} * * @param The requested scenario * @return a new scenario based on the requested, with resolved dependencies (if possible at first * pass) */ public RequestedFederationScenario prepareScenarioRequest(RequestedFederationScenario scenario) { RequestedFederationScenario newScenario; if (scenario.getRuntimeInfo() == null) { newScenario = FederationscenariosFactory.eINSTANCE.createRequestedFederationScenario(); newScenario = (RequestedFederationScenario) EcoreUtil.copy(scenario); RuntimeElement rtinfo = ExperimentRuntimeFactory.eINSTANCE.createRuntimeElement(); rtinfo.setDescription( "Scenario is based on request by:" + scenario.eResource().getURI().path()); newScenario.setRuntimeInfo(rtinfo); for (ResourceRequest resReq : newScenario.getInfrastructureRequest().getReqOfferedResources()) { RuntimeElement rtInfo = ExperimentRuntimeFactory.eINSTANCE.createRuntimeElement(); resReq.setRuntimeInfo(rtInfo); rtInfo.setStatus(RuntimeElementStatus.NOT_EXISTS); } } else { newScenario = scenario; } resolveAssignments(newScenario); return newScenario; }
@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("Object =" + obj.toString()); if (obj instanceof ui_TaxonomyTreeItem) { if ((((ui_TaxonomyTreeItem) obj).getOfficeElement() instanceof RequestedFederationScenario)) { // http://nam.ece.upatras.gr/fstoolkit/utils/resourcesmap.php?x[0]=38.288291,21.788884 String req = ""; RequestedFederationScenario scenario = (RequestedFederationScenario) ((ui_TaxonomyTreeItem) obj).getOfficeElement(); ArrayList<myMarker> sitelist = new ArrayList<myMarker>(); for (ResourceRequest resReq : scenario.getInfrastructureRequest().getReqOfferedResources()) { if (resReq.getRefOfferedResource() != null) { System.out.println( "resReq.getRefOfferedResource() = " + resReq.getRefOfferedResource().getName()); Site site = (Site) resReq.getRefOfferedResource().eContainer(); if ((site != null) && (!sitelist.contains(site))) { myMarker mymarker = null; for (myMarker m : sitelist) { if (m.site.equals(site)) mymarker = m; } if (mymarker == null) { mymarker = new myMarker(); mymarker.site = site; mymarker.descriptions = ""; sitelist.add(mymarker); } mymarker.descriptions += resReq.getName() + " : <i>" + resReq.getRefOfferedResource().getName() + "</i></br>"; } } } int i = 0; for (myMarker mymarker : sitelist) { if (mymarker.site.getLocatedAt() != null) { ResourcesProvider r = (ResourcesProvider) mymarker.site.eContainer(); req = req + "x[" + i + "]=" + mymarker.site.getLocatedAt().getGeocoords() + "&"; req = req + "c[" + i + "]=<b>" + r.getName() + "</b><br>" + "<small>" + mymarker.descriptions + "</small>" + "&"; } i++; } req = req.substring(0, req.length() - 1); req = "http://nam.ece.upatras.gr/fstoolkit/utils/resourcesmap.php?" + req; System.out.println("req = " + req); IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport(); IWebBrowser browser; try { browser = support.createBrowser( IWorkbenchBrowserSupport.AS_VIEW, ((ui_TaxonomyTreeItem) obj).getOfficeElement().getName() + ".webbrowser.fstoolkit", "Map for " + ((ui_TaxonomyTreeItem) obj).getOfficeElement().getName(), "A world map for " + ((ui_TaxonomyTreeItem) obj).getOfficeElement().getName()); browser.openURL(new URL(req)); } catch (PartInitException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } } } } } return null; }