@Override public Collection<? extends ProjectProblem> getProblems() { final Collection<ProjectProblem> problems = new LinkedHashSet<ProjectProblem>(); for (Reference<ProjectProblemsProvider> providerRef : getProviders()) { final ProjectProblemsProvider provider = providerRef.get(); if (provider != null) { problems.addAll(provider.getProblems()); } } return Collections.unmodifiableCollection(problems); }
private synchronized Iterable<? extends Reference<ProjectProblemsProvider>> getProviders() { if (providers == null) { final Collection<Reference<ProjectProblemsProvider>> newProviders = new LinkedHashSet<Reference<ProjectProblemsProvider>>(); for (ProjectProblemsProvider provider : lkp.lookupAll(ProjectProblemsProvider.class)) { provider.addPropertyChangeListener(WeakListeners.propertyChange(this, provider)); newProviders.add(new WeakReference<ProjectProblemsProvider>(provider)); } providers = newProviders; } return providers; } }
/** * Is the given project broken? * * Currently, it means that the given project has any {@link ProjectProblemsProvider#getProblems() problem}. * @param project project to be checked * @return {@code true} if the project is broken */ public static boolean isBroken(PhpProject project) { return !project.getLookup().lookup(ProjectProblemsProvider.class).getProblems().isEmpty(); }
private void addListeners() { ProjectPropertiesSupport.addWeakProjectPropertyChangeListener(project, this); projectInfo.addPropertyChangeListener(WeakListeners.propertyChange(this, projectInfo)); projectProblemsProvider.addPropertyChangeListener(WeakListeners.propertyChange(this, projectProblemsProvider)); }
public static boolean isBroken(ClientSideProject project) { return !project.getLookup().lookup(ProjectProblemsProvider.class).getProblems().isEmpty(); }
private void addListeners() { evaluator.addPropertyChangeListener(WeakListeners.propertyChange(this, evaluator)); projectInfo.addPropertyChangeListener(WeakListeners.propertyChange(this, projectInfo)); problemsProvider.addPropertyChangeListener(WeakListeners.propertyChange(this, problemsProvider)); }
@Override public String getHtmlDisplayName() { if (projectProblemsProvider.getProblems().isEmpty()) { return null; } String dispName = super.getDisplayName(); try { dispName = XMLUtil.toElementContent(dispName); } catch (CharConversionException ex) { return dispName; } return "<font color=\"#" + Integer.toHexString(Utils.getErrorForeground().getRGB() & 0xffffff) + "\">" + dispName + "</font>"; // NOI18N }
private Image mergeBadge(Image original) { ProjectProblemsProvider pp = getProject().getLookup().lookup(ProjectProblemsProvider.class); if (brokenProject) { return ImageUtilities.mergeImages(original, MakeLogicalViewProvider.brokenProjectBadge, 8, 0); } if (pp.getProblems().size()>0) { return ImageUtilities.mergeImages(original, MakeLogicalViewProvider.brokenProjectBadge, 8, 0); } if (brokenIncludes) { return ImageUtilities.mergeImages(original, MakeLogicalViewProvider.brokenIncludeBadge, 8, 0); } return original; }