DefaultMutableTreeNode (MouseEvent me, JComponent component) { if (component instanceof UiInspectorPreciseContextProvider contextProvider) { MouseEvent componentEvent = MouseEventAdapter.convert(me, component); UiInspectorPreciseContextProvider.UiInspectorInfo inspectorInfo = contextProvider.getUiInspectorContext(componentEvent); if (inspectorInfo != null) { String name = ObjectUtils.chooseNotNull(inspectorInfo.name(), "Click Info"); HierarchyTree.ComponentNode node = HierarchyTree.ComponentNode.createNamedNode(name, inspectorInfo.component()); if (inspectorInfo.component() != null) inspectorInfo.component().doLayout(); node.setUserObject(inspectorInfo.values()); return node; } } Pair<List<PropertyBean>, @NotNull Component> clickInfo = getClickInfo(me, component); if (clickInfo != null) { //We present clicked renderer as ComponentNode instead of ClickInfoNode to see inner structure of renderer HierarchyTree.ComponentNode node = HierarchyTree.ComponentNode.createComponentNode(clickInfo.second); clickInfo.second.doLayout(); node.setUserObject(clickInfo.first); return node; } return null; }