X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.ui%2Fsrc%2Forg%2Fsimantics%2Fui%2Fdnd%2FMultiTransferable.java;h=a35a7bd4208cb7ccb751022cc5e29d6e2a7a0d10;hb=HEAD;hp=914f84a1afe90a7ac49948cb4f70d7a89909056e;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.ui/src/org/simantics/ui/dnd/MultiTransferable.java b/bundles/org.simantics.ui/src/org/simantics/ui/dnd/MultiTransferable.java index 914f84a1a..a35a7bd42 100644 --- a/bundles/org.simantics.ui/src/org/simantics/ui/dnd/MultiTransferable.java +++ b/bundles/org.simantics.ui/src/org/simantics/ui/dnd/MultiTransferable.java @@ -1,47 +1,61 @@ -package org.simantics.ui.dnd; - -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class MultiTransferable implements Transferable, ClipboardOwner { - - Map transferables = new HashMap<>(); - - public MultiTransferable(Transferable ... tr) { - for(Transferable t : tr) { - for(DataFlavor f : t.getTransferDataFlavors()) { - transferables.put(f, t); - } - } - } - - @Override - public void lostOwnership(Clipboard arg0, Transferable arg1) { - for(Transferable t : transferables.values()) - if(t instanceof ClipboardOwner) ((ClipboardOwner) t).lostOwnership(arg0, arg1); - } - - @Override - public Object getTransferData(DataFlavor arg0) throws UnsupportedFlavorException, IOException { - Transferable t = transferables.get(arg0); - if(t == null) return t; - return t.getTransferData(arg0); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return transferables.keySet().toArray(new DataFlavor[transferables.size()]); - } - - @Override - public boolean isDataFlavorSupported(DataFlavor arg0) { - return transferables.containsKey(arg0); - } - -} +package org.simantics.ui.dnd; + +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.ClipboardOwner; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +public class MultiTransferable implements Transferable, ClipboardOwner { + + Map transferables = new HashMap<>(); + + public MultiTransferable(Transferable ... tr) { + for(Transferable t : tr) { + for(DataFlavor f : t.getTransferDataFlavors()) { + transferables.put(f, t); + } + } + } + + public MultiTransferable(Collection tr) { + for(Transferable t : tr) { + for(DataFlavor f : t.getTransferDataFlavors()) { + transferables.put(f, t); + } + } + } + + @Override + public void lostOwnership(Clipboard arg0, Transferable arg1) { + for(Transferable t : transferables.values()) + if(t instanceof ClipboardOwner) ((ClipboardOwner) t).lostOwnership(arg0, arg1); + } + + @Override + public Object getTransferData(DataFlavor arg0) throws UnsupportedFlavorException, IOException { + Transferable t = transferables.get(arg0); + if(t == null) return t; + return t.getTransferData(arg0); + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return transferables.keySet().toArray(new DataFlavor[transferables.size()]); + } + + @Override + public boolean isDataFlavorSupported(DataFlavor arg0) { + return transferables.containsKey(arg0); + } + + @Override + public String toString() { + return "MultiTransferable " + transferables.toString(); + } + +}