As far as I remember we have one implementation of text processing routines for awt and swing. That's why awt code could reference swing classes.
I'll take a look... SY, Alexey 2007/10/26, Alexei Fedotov <[EMAIL PROTECTED]>: > Hello, > > I'm currently looking through the swing and awt code to find out what > should be done to make drag and drop work. Today I find out that the > class org.apache.harmony.awt.text.TextUtils contains nearly the same > functionality as javax.swing.TransferHandler [2]. Thanks to Evgeniya > Maenkova! She explained me that AWT cannot reuse > javax.swing.TransferHandler due to referenced javax.swing.JComponent > which is heavy class. I have looked through the dev@ list and couldn't > find that this core principle of our client API was referenced here > before. > > Finally I've prepared a patch to remove another existing reference to > JComponent from org.apache.harmony.awt.text.TextUtils [1]. Could > anyone review and commit the patch? > > Thanks! > > [1] https://issues.apache.org/jira/browse/HARMONY-5023 > [2] > org.apache.harmony.awt.text.TextUtils: > public static final boolean importData(final TextKit textKit, > final Transferable t) { > > if (t == null) { > return false; > } > DataFlavor[] flavors = t.getTransferDataFlavors(); > DataFlavor flavor = null; > for (DataFlavor element : flavors) { > flavor = element; > if > (String.class.isAssignableFrom(flavor.getRepresentationClass())) > { > break; > } > flavor = null; > } > if (flavor != null) { > try { > String text = (String) t.getTransferData(flavor); > textKit.replaceSelectedText(text); > return true; > } catch (UnsupportedFlavorException e) { > return false; > } catch (IOException e) { > return false; > } > } > return false; > } > > javax.swing.TransferHandler: > public boolean importData(final JComponent c, > final Transferable t) { > PropertyDescriptor descriptor = getPropertyDescriptor(c); > if (descriptor == null) { > return false; > } > Class propertyType = descriptor.getPropertyType(); > DataFlavor flavor = getPrefferedFlavor(t, propertyType); > if (flavor == null) { > return false; > } > > try { > Object value = t.getTransferData(flavor); > Method writer = descriptor.getWriteMethod(); > writer.invoke(c, new Object[]{value}); > return true; > } catch (UnsupportedFlavorException e) { > } catch (IOException e) { > } catch (InvocationTargetException e) { > } catch (IllegalAccessException e) { > } > return false; > } > > > > > -- > With best regards, > Alexei, > ESSD, Intel >
