awt is independent from swing module (at least in theory) If the method used in swing only - what it does in awt module?
The main question for me is: why the awt.text.TextUtils performs so important role? As far as I remember this class makes more than it needed in awt. A lot of work that should be implemeted in swing for me. Why I should think about TextKit (close friend of TextUtils) when I implement, say, html processing in JComponents? Furthermore, why I should implement it because the TextKit and TextUtils are implementation-specific classes and all the previous (In JEditorPane, say) implementations are hidden. What the reason of harmony-specific way here? And (shame on me!) I cannot understand the 'heavy' and 'light' terms - if this is a performance issue why we look here and doesn't look at event queue that unoptimised at all. 2007/10/26, Maenkova, Evgeniya G <[EMAIL PROTECTED]>: > > The point is: there is pretty big difference between references to some > classes with logic (like Document, Caret, etc) and references to > JComponent. > > If you use JComponent in awt it increases startup time (as a pretty big > part of swing is loaded actually) and makes awt text component heavier. > > 'Model' classes are pretty light. They don't load all swing. > > The idea was reuse in awt some swing logic, common for all text > component, w/o loading swing per se. > > Thanks, > Evgeniya > > > > -----Original Message----- > From: Alexey Petrenko [mailto:[EMAIL PROTECTED] > Sent: Friday, October 26, 2007 11:28 AM > To: [email protected] > Subject: Re: [classlib][swing] javax.swing.JComponent is not supposed to > be imported by awt > > 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 > > > -------------------------------------------------------------------- > Closed Joint Stock Company Intel A/O > Registered legal address: 125252, Moscow, Russian Federation, > Chapayevsky Per, 14. > > This e-mail and any attachments may contain confidential material for > the sole use of the intended recipient(s). Any review or distribution > by others is strictly prohibited. If you are not the intended > recipient, please contact the sender and delete all copies. > -- _______________ With Best Regards, Irlyanov Dmitry
