summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java')
-rw-r--r--platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java64
1 files changed, 19 insertions, 45 deletions
diff --git a/platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java b/platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java
index c22eeb16127f..023ed3998829 100644
--- a/platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java
+++ b/platform/lang-impl/src/com/intellij/ui/JBTreeWithHintProvider.java
@@ -18,84 +18,58 @@ package com.intellij.ui;
import com.intellij.ide.DataManager;
import com.intellij.ide.dnd.aware.DnDAwareTree;
import com.intellij.openapi.actionSystem.CommonDataKeys;
-import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.psi.PsiElement;
-import com.intellij.ui.popup.PopupUpdateProcessor;
+import com.intellij.ui.popup.HintUpdateSupply;
+import com.intellij.util.ObjectUtils;
import org.jetbrains.annotations.Nullable;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
/**
* @author Konstantin Bulenkov
+ * @deprecated
+ * @see com.intellij.ui.popup.HintUpdateSupply
*/
public class JBTreeWithHintProvider extends DnDAwareTree {
- private JBPopup myHint;
+ {
+ new HintUpdateSupply(this) {
+ @Override
+ protected PsiElement getPsiElementForHint(Object selectedValue) {
+ return JBTreeWithHintProvider.this.getPsiElementForHint(selectedValue);
+ }
+ };
+ }
public JBTreeWithHintProvider() {
- addSelectionListener();
}
public JBTreeWithHintProvider(TreeModel treemodel) {
super(treemodel);
- addSelectionListener();
}
public JBTreeWithHintProvider(TreeNode root) {
super(root);
- addSelectionListener();
- }
-
- private void addSelectionListener() {
- addTreeSelectionListener(new TreeSelectionListener() {
- @Override
- public void valueChanged(final TreeSelectionEvent e) {
- if (isHintBeingShown() && getClientProperty(ListUtil.SELECTED_BY_MOUSE_EVENT) != Boolean.TRUE) {
- final TreePath path = getSelectionPath();
- if (path != null) {
- final PsiElement psiElement = getPsiElementForHint(path.getLastPathComponent());
- if (psiElement != null && psiElement.isValid()) {
- updateHint(psiElement);
- }
- }
- }
- }
- });
}
@Nullable
protected PsiElement getPsiElementForHint(final Object selectedValue) {
- // default implementation
return CommonDataKeys.PSI_ELEMENT.getData(DataManager.getInstance().getDataContext(this));
}
- public void registerHint(final JBPopup hint) {
- hideHint();
- myHint = hint;
+ @Deprecated
+ public void registerHint(JBPopup hint) {
+ ObjectUtils.assertNotNull(HintUpdateSupply.getSupply(this)).registerHint(hint);
}
+ @Deprecated
public void hideHint() {
- if (isHintBeingShown()) {
- myHint.cancel();
- }
-
- myHint = null;
+ ObjectUtils.assertNotNull(HintUpdateSupply.getSupply(this)).hideHint();
}
+ @Deprecated
public void updateHint(PsiElement element) {
- if (!isHintBeingShown()) return;
-
- final PopupUpdateProcessor updateProcessor = myHint.getUserData(PopupUpdateProcessor.class);
- if (updateProcessor != null) {
- updateProcessor.updatePopup(element);
- }
- }
-
- private boolean isHintBeingShown() {
- return myHint != null && myHint.isVisible();
+ ObjectUtils.assertNotNull(HintUpdateSupply.getSupply(this)).updateHint(element);
}
}