Dmitry, Evgeniya, Thank you for explanations. Your help with understanding the grounds of UI API architecture saves great amount of my time.
Thanks again. On 10/26/07, Maenkova, Evgeniya G <[EMAIL PROTECTED]> wrote: > Yeah, may be it isn't typical. Cannot promise for all applications :) > > The main point is as you said before: > However, from architectural point of view I agree that reference swing > classes from awt is not good idea. > > > Thanks, > Evgeniya > > -----Original Message----- > From: Alexey Petrenko [mailto:[EMAIL PROTECTED] > Sent: Friday, October 26, 2007 3:50 PM > To: [email protected] > Subject: Re: [classlib][swing] javax.swing.JComponent is not supposed to > be imported by awt > > 2007/10/26, Alexey Petrenko <[EMAIL PROTECTED]>: > > I said in most cases :) > And we do not need text components there... right? :) > > > 2007/10/26, Maenkova, Evgeniya G <[EMAIL PROTECTED]>: > > > >I think it will not bring huge impact to startup time in most cases > > > >because it's hard to imagine modern application using awt but not > > > >swing > > > > > > Aleksey, look at jfreechart. > > > > > > Thanks, > > > Evgeniya > > > > > > -----Original Message----- > > > From: Alexey Petrenko [mailto:[EMAIL PROTECTED] > > > Sent: Friday, October 26, 2007 1:03 PM > > > To: [email protected] > > > Subject: Re: [classlib][swing] javax.swing.JComponent is not > supposed to > > > be imported by awt > > > > > > Speaking of startup time... > > > I think it will not bring huge impact to startup time in most cases > > > because it's hard to imagine modern application using awt but not > > > swing. > > > > > > However, from architectural point of view I agree that reference > swing > > > classes from awt is not good idea. > > > > > > SY, Alexey > > > > > > 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. > > > > > > > -------------------------------------------------------------------- > > > 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. > > > > > > -------------------------------------------------------------------- > 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, Alexei, ESSD, Intel
