public Component getTreeCellRendererComponent()

in src/main/java/org/jetbrains/plugins/spotbugs/gui/settings/DetectorTable.java [62:98]


			public Component getTreeCellRendererComponent(
					final JTree tree,
					final Object value,
					final boolean selected,
					final boolean expanded,
					final boolean leaf,
					final int row,
					final boolean hasFocus
			) {

				final AbstractDetectorNode node = (AbstractDetectorNode) value;
				label.clear();
				final boolean reallyHasFocus = ((TreeTableTree) tree).getTreeTable().hasFocus();
				final Color background = selected ? (reallyHasFocus ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeUnfocusedSelectionBackground())
						: UIUtil.getTreeTextBackground();
				UIUtil.changeBackGround(label, background);

				boolean gray = false;
				if (!selected) {
					if (bugCategory != null && !node.isGroup()) {
						gray = true;
						final DetectorNode detectorNode = (DetectorNode) node;
						for (final BugPattern pattern : detectorNode.getDetector().getReportedBugPatterns()) {
							if (bugCategory.isEnabled(pattern.getCategory())) {
								gray = false;
								break;
							}
						}
					}
				}
				final String text = node.toString();
				final String filter = headerPane.getFilter();
				final SimpleTextAttributes attributes = gray ? SimpleTextAttributes.GRAYED_ATTRIBUTES : SimpleTextAttributes.REGULAR_ATTRIBUTES;
				final Matcher matcher = NameUtil.buildMatcher("*" + filter, NameUtil.MatchingCaseSensitivity.NONE);
				SpeedSearchUtil.appendColoredFragmentForMatcher(text, label, attributes, matcher, UIUtil.getTableBackground(selected), true);
				return label;
			}