From fb44d01f440c60d87d35555bff783b4c43bf7eca Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Wed, 14 Mar 2018 19:26:39 +0300 Subject: [PATCH] UIInspector: try to display explicit field name --- .../internal/inspector/UiInspectorAction.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java b/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java index ca3db5455e95..58d6aa865808 100644 --- a/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java +++ b/platform/platform-impl/src/com/intellij/internal/inspector/UiInspectorAction.java @@ -390,9 +390,34 @@ public class UiInspectorAction extends ToggleAction implements DumbAware { if (StringUtil.isNotEmpty(componentName)) { name += " \"" + componentName + "\""; } + String fieldName = getFieldName(component); + if (fieldName != null) { + name += "(" + fieldName+")"; + } return name; } + private static String getFieldName(Component component) { + Container parent = component.getParent(); + int deepness = 1; + while(parent != null && deepness <= 3) { + Class aClass = parent.getClass(); + Field[] fields = aClass.getDeclaredFields(); + for (Field field : fields) { + try { + field.setAccessible(true); + if (field.get(parent) == component) return field.getName(); + } + catch (IllegalAccessException e) { + //skip + } + } + parent = parent.getParent(); + deepness++; + } + return null; + } + private static TreeModel buildModel(Component c) { Component parent = c.getParent(); while (parent != null) {