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
;
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
) {
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
);