From b35b43c0b60bbe76e91abd64488ecac278492389 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Fri, 10 Feb 2017 18:02:14 +0300 Subject: [PATCH] allow to run stuff before selecting --- .../impl/AbstractProjectViewPSIPane.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java index b268f54425d3..7db83f57afb1 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -255,14 +255,18 @@ public abstract class AbstractProjectViewPSIPane extends AbstractProjectViewPane @NotNull public ActionCallback selectCB(Object element, VirtualFile file, boolean requestFocus) { if (file != null) { - BaseProjectTreeBuilder builder = (BaseProjectTreeBuilder)getTreeBuilder(); - // actually, getInitialized().doWhenDone() should be called by builder internally - // this will be done in 2017 - return builder.getInitialized().doWhenDone(() -> builder.select(element, file, requestFocus)); + beforeSelect().doWhenDone(() -> ((BaseProjectTreeBuilder)getTreeBuilder()).select(element, file, requestFocus)); } return ActionCallback.DONE; } + @NotNull + public ActionCallback beforeSelect() { + // actually, getInitialized().doWhenDone() should be called by builder internally + // this will be done in 2017 + return getTreeBuilder().getInitialized(); + } + @NotNull protected BaseProjectTreeBuilder createBuilder(DefaultTreeModel treeModel) { return new ProjectTreeBuilder(myProject, myTree, treeModel, null, (ProjectAbstractTreeStructureBase)myTreeStructure) {