void (@NotNull TreePath path) { var model = getModel(); if (model == null) { return; } var value = TreeUtil.getUserObject(path.getLastPathComponent()); if (!(value instanceof PsiDirectoryNode)) { return; // Only measure real directory expansion, not, say, classes or external libraries. } var expandMeasurer = this.expandMeasurer; if (expandMeasurer != null) { expandMeasurer.detach(); } expandMeasurer = new ProjectViewDirectoryExpandDurationMeasurer(model, path, () -> { this.expandMeasurer = null; }); expandMeasurer.start(); this.expandMeasurer = expandMeasurer; }