Hierarchy providers refactored
[fedora-idea.git] / lang-impl / src / com / intellij / ide / CopyPasteUtil.java
blob8a3dab947f5e3a40db101dd4500b22e151da8322
1 package com.intellij.ide;
3 import com.intellij.ide.util.treeView.AbstractTreeUpdater;
4 import com.intellij.openapi.ide.CopyPasteManager;
5 import com.intellij.psi.PsiElement;
7 import java.awt.datatransfer.Transferable;
9 /**
10 * @author max
12 public class CopyPasteUtil {
13 private CopyPasteUtil() { }
15 public static PsiElement[] getElementsInTransferable(Transferable t) {
16 final PsiElement[] elts = PsiCopyPasteManager.getElements(t);
17 return elts != null ? elts : PsiElement.EMPTY_ARRAY;
20 public static class DefaultCopyPasteListener implements CopyPasteManager.ContentChangedListener {
21 private final AbstractTreeUpdater myUpdater;
23 public DefaultCopyPasteListener(final AbstractTreeUpdater updater) {
24 myUpdater = updater;
27 public void contentChanged(final Transferable oldTransferable, final Transferable newTransferable) {
28 updateByTransferable(oldTransferable);
29 updateByTransferable(newTransferable);
32 private void updateByTransferable(final Transferable t) {
33 final PsiElement[] psiElements = CopyPasteUtil.getElementsInTransferable(t);
34 for (PsiElement psiElement : psiElements) {
35 myUpdater.addSubtreeToUpdateByElement(psiElement);