@Override
			protected void updateItem(KtElement element, boolean empty) {
				super.updateItem(element, empty);
				if (empty || element == null) {
					setText(null);
					setGraphic(null);
				} else {
					switch (element) {
						case KtClass ktClass -> {
							setText(formatConfig.filter(ktClass.getName()));
							setGraphic(Icons.getIconView(Icons.CLASS));
						}
						case KtFunction ktFunction -> {
							String name = Objects.requireNonNullElse(ktFunction.getName(), "?");
							String descriptor = KtType.toDescriptor(ktFunction);
							setText(memberFormatConfig.getMethodDisplay(name, descriptor));
							setGraphic(Icons.getIconView(Icons.METHOD));
						}
						case KtVariable ktVariable -> {
							String name = Objects.requireNonNullElse(ktVariable.getName(), "?");
							String descriptor = KtType.toDescriptor(ktVariable);
							setText(memberFormatConfig.getFieldDisplay(name, descriptor));
							if (ktVariable instanceof KtParameter) {
								setGraphic(Icons.getIconView(Icons.PRIMITIVE));
							} else if (ktVariable instanceof KtProperty) {
								setGraphic(Icons.getIconView(Icons.FIELD));
							} else {
								setGraphic(Icons.getIconView(Icons.FIELD));
							}
						}
					}
				}
			}
Displays fields, methods and other subcomponents of a {@link ClassInfo}.

@author Matt Coley
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/tabs/KotlinMetadataPane.java