void (@NotNull String prefix, @NotNull Object component, @NotNull List<String> methodNames) { Class<?> clazz = component.getClass(); myProperties.add(new PropertyBean(prefix + "class", clazz.getName() + "@" + System.identityHashCode(component))); if (clazz.isAnonymousClass()) { Class<?> superClass = clazz.getSuperclass(); if (superClass != null) { myProperties.add(new PropertyBean(prefix + "superclass", superClass.getName(), true)); } } Class<?> declaringClass = clazz.getDeclaringClass(); if (declaringClass != null) { myProperties.add(new PropertyBean(prefix + "declaringClass", declaringClass.getName())); } if (component instanceof Tree) { TreeModel model = ((Tree)component).getModel(); if (model != null) { myProperties.add(new PropertyBean(prefix + "treeModelClass", model.getClass().getName(), true)); } } addActionInfo(component); addToolbarInfo(component); addToolWindowInfo(component); addGutterInfo(component); UiInspectorContextProvider contextProvider = UiInspectorUtil.getProvider(component); if (contextProvider != null) { try { myProperties.addAll(contextProvider.getUiInspectorContext()); } catch (Throwable e) { LOG.error(e); } } StringBuilder classHierarchy = new StringBuilder(); for (Class<?> cl = clazz.getSuperclass(); cl != null; cl = cl.getSuperclass()) { if (!classHierarchy.isEmpty()) classHierarchy.append(" ").append(UIUtil.rightArrow()).append(" "); classHierarchy.append(cl.getName()); if (JComponent.class.getName().equals(cl.getName())) break; } myProperties.add(new PropertyBean(prefix + "hierarchy", classHierarchy.toString())); if (component instanceof Component) { DialogWrapper dialog = DialogWrapper.findInstance((Component)component); if (dialog != null) { myProperties.add(new PropertyBean(prefix + "dialogWrapperClass", dialog.getClass().getName(), true)); } } addPropertiesFromMethodNames(prefix, component, methodNames); }