@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; }
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; }
@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(); }