@Nullable
  public PsiElement[] getElements(boolean[] isCopied) {
    try {
      Transferable content = myCopyPasteManager.getContents();
      if (content == null) {
        return null;
      }

      Object transferData;
      try {
        transferData = content.getTransferData(ourDataFlavor);
      } catch (UnsupportedFlavorException e) {
        return null;
      } catch (IOException e) {
        return null;
      }

      if (!(transferData instanceof MyData)) {
        return null;
      }
      MyData dataProxy = (MyData) transferData;
      if (!Comparing.equal(dataProxy, myRecentData)) {
        return null;
      }
      if (isCopied != null) {
        isCopied[0] = myRecentData.isCopied();
      }
      return myRecentData.getElements();
    } catch (Exception e) {
      if (LOG.isDebugEnabled()) {
        LOG.debug(e);
      }
      return null;
    }
  }
 @Nullable
 private List<File> getDataAsFileList() {
   final AccessToken token = ApplicationManager.getApplication().acquireReadActionLock();
   try {
     return asFileList(myDataProxy.getElements());
   } finally {
     token.finish();
   }
 }
 public boolean isCutElement(Object element) {
   if (myRecentData == null) return false;
   if (myRecentData.isCopied()) return false;
   PsiElement[] elements = myRecentData.getElements();
   if (elements == null) return false;
   for (PsiElement aElement : elements) {
     if (aElement == element) return true;
   }
   return false;
 }
Esempio n. 4
0
 public Object getTransferData(DataFlavor flavor)
     throws UnsupportedFlavorException, IOException {
   if (ourDataFlavor.equals(flavor)) {
     return myDataProxy;
   }
   if (DataFlavor.stringFlavor.equals(flavor)) {
     return getDataAsText();
   }
   if (DataFlavor.javaFileListFlavor.equals(flavor)) {
     return asFileList(myDataProxy.getElements());
   }
   return null;
 }
Esempio n. 5
0
 @Nullable
 private String getDataAsText() {
   List<String> names = new ArrayList<String>();
   for (PsiElement element : myDataProxy.getElements()) {
     if (element instanceof PsiNamedElement) {
       String name = ((PsiNamedElement) element).getName();
       if (name != null) {
         names.add(name);
       }
     }
   }
   if (names.isEmpty()) {
     return null;
   }
   return StringUtil.join(names, "\n");
 }
 @Nullable
 private String getDataAsText() {
   final AccessToken token = ApplicationManager.getApplication().acquireReadActionLock();
   try {
     final List<String> names = new ArrayList<String>();
     for (PsiElement element : myDataProxy.getElements()) {
       if (element instanceof PsiNamedElement) {
         String name = ((PsiNamedElement) element).getName();
         if (name != null) {
           names.add(name);
         }
       }
     }
     return names.isEmpty() ? null : StringUtil.join(names, "\n");
   } finally {
     token.finish();
   }
 }
 public PsiElement[] getElements() {
   return myDataProxy.getElements();
 }