@Nonnull
		@Override
		public Node getNode() {
			if (node == null) {
				ClassInfo classInfo = path.getValue();
				String text = configurationService.textOf(path);
				Node graphic = configurationService.graphicOf(path);
				Label label = new Label(text);
				label.setGraphic(graphic);
				label.setMouseTransparent(true);
				BorderPane wrapper = new BorderPane(label);
				wrapper.setOnContextMenuRequested(e -> {
					ContextMenu contextMenu = configurationService.contextMenuOf(this, path);
					if (contextMenu != null)
						contextMenu.show(wrapper, e.getScreenX(), e.getScreenY());
				});
				wrapper.setOnMouseExited(e -> wrapper.setEffect(null));

				// Track number of mapped members
				int fields = 0;
				int mappedFields = 0;
				for (FieldMember field : classInfo.getFields()) {
					fields++;
					if (mappings != null && mappings.getMappedFieldName(classInfo, field) != null)
						mappedFields++;
				}
				int methods = 0;
				int mappedMethods = 0;
				for (MethodMember method : classInfo.getMethods()) {
					methods++;
					if (mappings != null && mappings.getMappedMethodName(classInfo, method) != null)
						mappedMethods++;
				}

				boolean hasMappedRefs = HasMappedReferenceProperty.get(classInfo);
				if (hasMappedRefs) {
					boolean isClassMapped = OriginalClassNameProperty.get(classInfo) != null;
					int total = fields + methods;
					int mapped = mappedFields + mappedMethods;

					// Percent calc:
					//  50% from member mappings
					//  25% from class being mapped
					//  25% for any reference being mapped
					float membersMappedContrib = total == 0 ? 0.5F : (mapped / (float) total) * 0.5F;
					float nameMappedContrib = (isClassMapped ? 0.25F : 0);
					float percentMapped = 0.25F + membersMappedContrib + nameMappedContrib;
					Color interpolatedColor = Colors.interpolateHsb(RED, GREEN, percentMapped);
					wrapper.setStyle("-fx-background-color: rgb(%d, %d, %d); -fx-border-color: black; -fx-border-width: 1px".formatted(
							(int) (interpolatedColor.getRed() * 255),
							(int) (interpolatedColor.getGreen() * 255),
							(int) (interpolatedColor.getBlue() * 255)
					));
				} else {
					// Not touched by any mapping
					wrapper.setStyle("-fx-background-color: rgb(80, 0, 0); -fx-border-color: black; -fx-border-width: 1px");
				}
				SelectionInfo selectionInfo = new SelectionInfo(path, fields, mappedFields, methods, mappedMethods);
				wrapper.setOnMouseEntered(e -> {
					wrapper.setEffect(GLOW);
					selectedPath.set(selectionInfo);
				});
				node = wrapper;
			}
			return node;
		}
Contextual tree-content allowing context-actions to be used on the display.
<br>
The mapped content held by each content item transitions from red to green with more mapping progress.
recaf-ui/src/main/java/software/coley/recaf/ui/pane/MappingProgressPane.java