Search in sources :

Example 1 with Marker

use of org.eclipse.che.ide.api.resources.marker.Marker in project che by eclipse.

the class ResourceNode method updatePresentation.

@Override
public void updatePresentation(@NotNull NodePresentation presentation) {
    final StringBuilder cssBuilder = new StringBuilder();
    final Optional<Marker> presentableTextMarker = getData().getMarker(PresentableTextMarker.ID);
    if (presentableTextMarker.isPresent() && getData() instanceof Container) {
        presentation.setPresentableText(((PresentableTextMarker) presentableTextMarker.get()).getPresentableText());
    } else {
        presentation.setPresentableText(getData().getName());
    }
    if (resourceIsCut) {
        cssBuilder.append("opacity:0.5;");
    } else {
        cssBuilder.append("opacity:1;");
    }
    SVGResource icon = null;
    for (NodeIconProvider iconProvider : nodeIconProviders) {
        icon = iconProvider.getIcon(getData());
        if (icon != null) {
            break;
        }
    }
    if (icon != null) {
        presentation.setPresentableIcon(icon);
    } else {
        if (getData().getResourceType() == FOLDER) {
            presentation.setPresentableIcon(getData().getName().startsWith(".") ? nodesResources.hiddenSimpleFolder() : nodesResources.simpleFolder());
        } else if (getData().getResourceType() == PROJECT) {
            presentation.setPresentableIcon(((Project) getData()).isProblem() ? nodesResources.notValidProjectFolder() : nodesResources.projectFolder());
            cssBuilder.append("font-weight:bold;");
        } else if (getData().getResourceType() == FILE) {
            presentation.setPresentableIcon(nodesResources.file());
        }
    }
    presentation.setPresentableTextCss(cssBuilder.toString());
}
Also used : SVGResource(org.vectomatic.dom.svg.ui.SVGResource) Container(org.eclipse.che.ide.api.resources.Container) CutResourceMarker(org.eclipse.che.ide.api.resources.modification.CutResourceMarker) PresentableTextMarker(org.eclipse.che.ide.api.resources.marker.PresentableTextMarker) Marker(org.eclipse.che.ide.api.resources.marker.Marker) NodeIconProvider(org.eclipse.che.ide.project.node.icon.NodeIconProvider)

Example 2 with Marker

use of org.eclipse.che.ide.api.resources.marker.Marker in project che by eclipse.

the class ProjectConfigSynchronized method onSelectionChanged.

@Override
public void onSelectionChanged(SelectionChangedEvent event) {
    final Project project = appContext.getRootProject();
    if (project == null) {
        return;
    }
    final Optional<Marker> marker = project.getMarker(PROBLEM_PROJECT);
    if (!marker.isPresent()) {
        return;
    }
    final Project.ProblemProjectMarker problemProjectMarker = (Project.ProblemProjectMarker) marker.get();
    final Map<Integer, String> problems = problemProjectMarker.getProblems();
    //If no project folder on file system
    final String noProjectFolderProblem = problems.get(NO_PROJECT_ON_FILE_SYSTEM);
    if (!isNullOrEmpty(noProjectFolderProblem)) {
        showImportDialog(project);
    }
}
Also used : Project(org.eclipse.che.ide.api.resources.Project) Marker(org.eclipse.che.ide.api.resources.marker.Marker)

Example 3 with Marker

use of org.eclipse.che.ide.api.resources.marker.Marker in project che by eclipse.

the class ResourceImpl method getParentWithMarker.

/** {@inheritDoc} */
@Override
public Optional<Resource> getParentWithMarker(String type) {
    checkArgument(!isNullOrEmpty(type), "Invalid marker type occurred");
    if (getMarker(type).isPresent()) {
        return Optional.<Resource>of(this);
    }
    Container optParent = getParent();
    while (optParent != null) {
        Container parent = optParent;
        final Optional<Marker> marker = parent.getMarker(type);
        if (marker.isPresent()) {
            return Optional.<Resource>of(parent);
        }
        optParent = parent.getParent();
    }
    return absent();
}
Also used : Container(org.eclipse.che.ide.api.resources.Container) Resource(org.eclipse.che.ide.api.resources.Resource) Marker(org.eclipse.che.ide.api.resources.marker.Marker)

Example 4 with Marker

use of org.eclipse.che.ide.api.resources.marker.Marker in project che by eclipse.

the class TestFolderDecorator method transform.

protected Node transform(ResourceNode resourceNode) {
    final Optional<Resource> srcFolder = resourceNode.getData().getParentWithMarker(SourceFolderMarker.ID);
    if (!srcFolder.isPresent()) {
        return resourceNode;
    }
    final Optional<Marker> marker = srcFolder.get().getMarker(SourceFolderMarker.ID);
    final ContentRoot contentRoot = ((SourceFolderMarker) marker.get()).getContentRoot();
    if (contentRoot == ContentRoot.TEST_SOURCE && !resourceNode.getData().getLocation().equals(srcFolder.get().getLocation())) {
        resourceNode.getAttributes().put(CUSTOM_BACKGROUND_FILL, singletonList(Style.theme.projectExplorerTestItemBackground()));
    }
    return resourceNode;
}
Also used : Resource(org.eclipse.che.ide.api.resources.Resource) Marker(org.eclipse.che.ide.api.resources.marker.Marker) SourceFolderMarker(org.eclipse.che.ide.ext.java.client.resource.SourceFolderMarker) ContentRoot(org.eclipse.che.ide.ext.java.shared.ContentRoot) SourceFolderMarker(org.eclipse.che.ide.ext.java.client.resource.SourceFolderMarker)

Aggregations

Marker (org.eclipse.che.ide.api.resources.marker.Marker)4 Container (org.eclipse.che.ide.api.resources.Container)2 Resource (org.eclipse.che.ide.api.resources.Resource)2 Project (org.eclipse.che.ide.api.resources.Project)1 PresentableTextMarker (org.eclipse.che.ide.api.resources.marker.PresentableTextMarker)1 CutResourceMarker (org.eclipse.che.ide.api.resources.modification.CutResourceMarker)1 SourceFolderMarker (org.eclipse.che.ide.ext.java.client.resource.SourceFolderMarker)1 ContentRoot (org.eclipse.che.ide.ext.java.shared.ContentRoot)1 NodeIconProvider (org.eclipse.che.ide.project.node.icon.NodeIconProvider)1 SVGResource (org.vectomatic.dom.svg.ui.SVGResource)1