public ProjectConfigurationProblem( ProjectStructureProblemDescription description, Project project) { super( StringUtil.unescapeXml(description.getMessage(true)), computeDescription(description), getSettings(project, description.getProblemLevel()).isIgnored(description)); myDescription = description; myProject = project; }
@Override public void fix(final JComponent contextComponent, RelativePoint relativePoint) { JBPopupFactory.getInstance() .createListPopup( new BaseListPopupStep<ConfigurationErrorQuickFix>(null, myDescription.getFixes()) { @NotNull @Override public String getTextFor(ConfigurationErrorQuickFix value) { return value.getActionName(); } @Override public PopupStep onChosen( final ConfigurationErrorQuickFix selectedValue, boolean finalChoice) { return doFinalStep( new Runnable() { @Override public void run() { selectedValue.performFix(); } }); } }) .show(relativePoint); }
@Override public void setIgnored(@NotNull ProjectStructureProblemDescription description, boolean ignored) { final String id = description.getId(); if (ignored) { myIgnoredProblems.add(id); } else { myIgnoredProblems.remove(id); } }
@Override public boolean canBeFixed() { return !myDescription.getFixes().isEmpty(); }
@Override public void navigate() { myDescription.getPlace().navigate(); }
@Override public void ignore(boolean ignored) { super.ignore(ignored); getSettings(myProject, myDescription.getProblemLevel()).setIgnored(myDescription, ignored); }
private static String computeDescription(ProjectStructureProblemDescription description) { final String descriptionString = description.getDescription(); return descriptionString != null ? descriptionString : description.getMessage(true); }
@Override public boolean isIgnored(@NotNull ProjectStructureProblemDescription description) { return myIgnoredProblems.contains(description.getId()); }