List<PropertyBean> (@NotNull JTree tree, @Nullable Object value, int row) { MyNode node = extractNode(value); if (node == null) return Collections.emptyList(); Configurable wrapper = node.myConfigurable; UnnamedConfigurable configurable = ConfigurableWrapper.cast(UnnamedConfigurable.class, wrapper); if (configurable == null) return Collections.emptyList(); List<PropertyBean> result = new ArrayList<>(); result.add(new PropertyBean("Configurable class", UiInspectorUtil.getClassPresentation(configurable), true)); if (wrapper instanceof SearchableConfigurable searchableConfigurable) { String configurableId = searchableConfigurable.getId(); result.add(new PropertyBean("Configurable ID", configurableId, true)); if (configurableId.startsWith(ConfigurableExtensionPointUtil.CONFIGURABLE_ID_PREFIX)) { String realConfigurableId = configurableId.substring(ConfigurableExtensionPointUtil.CONFIGURABLE_ID_PREFIX.length()); result.add(new PropertyBean("Configurable ID (groupId)", realConfigurableId, true)); } } if (wrapper.getHelpTopic() != null) { result.add(new PropertyBean("Configurable HelpTopic", wrapper.getHelpTopic(), true)); } if (wrapper instanceof Weighted weightedConfigurable && weightedConfigurable.getWeight() != 0) { result.add(new PropertyBean("Configurable Weight", weightedConfigurable.getWeight(), true)); } if (wrapper instanceof ConfigurableMarkerProvider markerProvider && markerProvider.getMarkerText() != null) { result.add(new PropertyBean("Configurable Marker", markerProvider.getMarkerText(), true)); } return result; }