From dcc21101715f16a696c6d9715308d40ce6934693 Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Sat, 28 Oct 2006 10:38:21 +0000 Subject: 2006-10-28 Roman Kennke * javax/swing/TransferHandler.java (importData): Implemented stub method. Added API docs. --- ChangeLog | 7 ++++++- javax/swing/TransferHandler.java | 45 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4db82d7ce..2b89ab850 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-10-28 Roman Kennke + + * javax/swing/TransferHandler.java + (importData): Implemented stub method. Added API docs. + 2006-10-26 Christian Elias Naur * native/jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_depth): New @@ -226,7 +231,7 @@ (argb32): Updated field to match default in BufferedImage. 2006-10-18 Roman Kennke -\ + PR 29419 * gnu/java/awt/peer/gtk/CairoGraphics2D.java (copyArea): Changed size comparison to return when size == 0 diff --git a/javax/swing/TransferHandler.java b/javax/swing/TransferHandler.java index 46a90897b..d594a8244 100644 --- a/javax/swing/TransferHandler.java +++ b/javax/swing/TransferHandler.java @@ -407,10 +407,51 @@ public class TransferHandler implements Serializable return visualRepresentation; } + /** + * Imports the transfer data represented by t into the specified + * component c by setting the property of this TransferHandler + * on that component. If this succeeds, this method returns + * true, otherwise false. + * + * + * @param c the component to import into + * @param t the transfer data to import + * + * @return true if the transfer succeeds, false + * otherwise + */ public boolean importData(JComponent c, Transferable t) - throws NotImplementedException { - return false; + boolean ok = false; + PropertyDescriptor prop = getPropertyDescriptor(c); + if (prop != null) + { + Method writer = prop.getWriteMethod(); + if (writer != null) + { + Class[] params = writer.getParameterTypes(); + if (params.length == 1) + { + DataFlavor flavor = getPropertyDataFlavor(params[0], + t.getTransferDataFlavors()); + if (flavor != null) + { + try + { + Object value = t.getTransferData(flavor); + writer.invoke(c, new Object[]{ value }); + ok = true; + } + catch (Exception ex) + { + // If anything goes wrong here, do nothing and return + // false; + } + } + } + } + } + return ok; } /** -- cgit v1.2.1