/** * Casts current resource to the {@link Project} if the last one's represents a project. * * <p>Example of usage: * * <pre> * public void doSome() { * Resource resource = ...; * if (resource.isProject()) { * Project project = resource.asProject(); * } * } * </pre> * * @return instance of {@link Project} * @throws IllegalStateException in case if current resource is not a project * @see Resource#getResourceType() * @see Resource#PROJECT * @since 5.1.0 */ default Project asProject() { checkState(isProject(), "Current resource is not a project"); return (Project) this; }
@Override public void onResourceChanged(ResourceChangedEvent event) { final ResourceDelta delta = event.getDelta(); final Resource resource = delta.getResource(); if (resource.isProject()) { // defer refreshing the projects section since appContext#getProjects may return old data Scheduler.get().scheduleDeferred(this::refreshProjects); } } }
/** {@inheritDoc} */ @Override public void intercept(Resource resource) { if (!Boolean.valueOf(preferencesManager.getValue(PREF_SHOW_ARTIFACT_ID))) { return; } if (resource.isProject() && ((Project) resource).isTypeOf(MAVEN_ID)) { final String artifact = ((Project) resource).getAttribute(ARTIFACT_ID); if (!isNullOrEmpty(artifact) && !artifact.equals(resource.getName())) { resource.addMarker(new PresentableTextMarker(resource.getName() + " [" + artifact + "]")); } } } }
if (rootProject.getLocation().equals(delta.getFromPath()) && resource.isProject()) { rootProjects.set(rootProjects.indexOf(rootProject), resource.asProject()); break; } else if (resource.getLocation().segmentCount() == 1 && resource.isProject()) { boolean exists = rootProjects.stream().anyMatch(it -> it.getLocation().equals(resource.getLocation())); if (rootProject.getLocation().equals(resource.getLocation()) && resource.isProject()) { rootProjects.remove(rootProjects.indexOf(rootProject)); break; if (rootProject.getLocation().equals(resource.getLocation()) && resource.isProject()) { rootProjects.set(rootProjects.indexOf(rootProject), resource.asProject()); break;
@Inject public ProjectConfigSynchronized( AppContext appContext, ProjectExplorerPresenter projectExplorerPresenter, DialogFactory dialogFactory, CoreLocalizationConstant locale, NotificationManager notificationManager, ChangeLocationWidget changeLocationWidget) { this.appContext = appContext; this.dialogFactory = dialogFactory; this.locale = locale; this.notificationManager = notificationManager; this.changeLocationWidget = changeLocationWidget; projectExplorerPresenter .getTree() .getNodeLoader() .addBeforeLoadHandler( event -> { final Node requestedNode = event.getRequestedNode(); if (requestedNode == null || !(requestedNode instanceof ResourceNode)) { return; } final ResourceNode resourceNode = (ResourceNode) requestedNode; final Resource data = resourceNode.getData(); if (!data.isProject()) { return; } checkProjectProblems((Project) data); }); }
private void closeRelatedEditors(Resource resource) { if (!resource.isProject()) { return; } final List<EditorPartPresenter> openedEditors = editorAgent.getOpenedEditors(); for (EditorPartPresenter editor : openedEditors) { if (resource.getLocation().isPrefixOf(editor.getEditorInput().getFile().getLocation())) { editorAgent.closeEditor(editor); } } }
private Promise<Void> loadAndRegisterResources(Path absolutePath) { return ps.getTree(absolutePath, 1, true) .thenPromise( treeElement -> { final Optional<Resource[]> optionalChildren = store.get(absolutePath); if (optionalChildren.isPresent()) { for (Resource child : optionalChildren.get()) { store.dispose(child.getLocation(), false); } } for (TreeElement element : treeElement.getChildren()) { final Resource resource = newResourceFrom(element.getNode()); if (resource.isProject()) { inspectProject(resource.asProject()); } store.register(resource); } return promises.resolve(null); }); }
event -> { if (ResourceDelta.REMOVED == event.getDelta().getKind() && event.getDelta().getResource().isProject()) { commands.clear(); fetchCommands();
store.register(tempResource); if (tempResource.isProject()) { inspectProject(tempResource.asProject());
resource -> { if (resource.isPresent()) { if (resource.get().isProject()) { return promises.reject(new IllegalStateException("Project already exists")); } else if (resource.get().isFile()) {
private Promise<Optional<Resource>> doFindResource(Path path) { return ps.getTree(path.parent(), 1, true) .thenPromise( treeElement -> { Resource resource = null; for (TreeElement nodeElement : treeElement.getChildren()) { ItemReference reference = nodeElement.getNode(); Resource tempResource = newResourceFrom(reference); store.register(tempResource); if (tempResource.isProject()) { inspectProject(tempResource.asProject()); } if (tempResource.getLocation().equals(path)) { resource = tempResource; eventBus.fireEvent( new ResourceChangedEvent(new ResourceDeltaImpl(resource, UPDATED))); } } return promises.resolve(Optional.fromNullable(resource)); }) .catchErrorPromise(error -> promises.resolve(absent())); }
@Override public void update(ActionEvent e) { e.getPresentation().setEnabledAndVisible(false); // action group should be visible when current selection is machine or project final Selection<?> selection = selectionAgent.getSelection(); if (selection != null && !selection.isEmpty() && selection.isSingleSelection()) { final Object possibleNode = selection.getHeadElement(); if (possibleNode instanceof Machine) { e.getPresentation().setEnabledAndVisible(true); } else if (possibleNode instanceof ResourceNode) { final Resource selectedResource = ((ResourceNode) possibleNode).getData(); e.getPresentation().setEnabledAndVisible(selectedResource.isProject()); } } } }
ResourceDelta delta = event.getDelta(); Resource resource = delta.getResource(); if (resource.isProject() && resource.getLocation().segmentCount() == 1) {
private void analyzeProjectTreeSelection(Presentation presentation) { Resource[] resources = appContext.getResources(); if (resources == null || resources.length > 1) { presentation.setEnabled(false); return; } Resource resource = resources[0]; if (resource.isProject() && isJavaProject((Project) resource)) { testDetector.setContextType(PROJECT); presentation.setEnabled(true); return; } Project project = resource.getProject(); if (!isJavaProject(project)) { presentation.setEnabled(false); return; } if (isJavaTestFile(resource)) { testDetector.setContextType(TestExecutionContext.ContextType.FILE); } else if (resource instanceof Container) { Optional<Resource> srcFolder = resource.getParentWithMarker(SourceFolderMarker.ID); if (!srcFolder.isPresent() || resource.getLocation().equals(srcFolder.get().getLocation())) { presentation.setEnabled(false); return; } testDetector.setContextType(TestExecutionContext.ContextType.FOLDER); } presentation.setEnabled(true); selectedNodePath = resource.getLocation().toString(); }
if (resource.isProject()) { notificationManager.notify( locale.projectRemoved(node.getName()), SUCCESS, NOT_EMERGE_MODE);