<Swing Dev> [PATCH] SwingUtilities2.isLocalDisplay()
Roman Kennke
roman.kennke at aicas.com
Mon Sep 8 19:11:14 UTC 2008
Bah, forgot the actual patch. Here it comes now!
/Roman
Am Montag, den 08.09.2008, 21:04 +0200 schrieb Roman Kennke:
> Hi Oleg and lists,
>
> > >> I'm not the person who is supposed to review this changes from
> > >> technical point of view,
> > >> but I have one concern about idea of the fix. It adds one more place
> > >> where Swing uses sun-specific API.
> > >
> > > No. It takes advantage of Sun internal API, but it does not depend on
> > > it. (if (ge instanceof SunGraphicsEnvironment) { doSomethingCool(); }
> > > else { useReasonableDefault(); } ).
> >
> > it uses Sun-specific class, so this code can not be compiled by JDK
> > from another vendor :(
>
> Ehe :-) Try compiling Swing on any JDK from another vendor! Good luck!
> (Ok, the Caciocavallo project will certainly help alot, but we are still
> very far away from such a portable Swing).
>
> > >> Of course you can say that SwingUtilities2.isLocalDisplay() even
> > >> before your fix uses code which is specific
> > >> for Sun's implementation, and you will be right. But this doesn't
> > >> mean that we should leave with this.
> > >> IMHO, if we change such code we should remove dependency between Swing
> > >> and Sun-specific code,
> > >> i.e. we should add public API.
> > >
> > > I completely agree. That, of course, would be the best solution. But in
> > > the past it has been communicated several times to me that I can't just
> > > send in patches to public API and hope that it will be accepted easily.
> > > I propose to get in this patch if possible first, then start a
> > > discussion about adding public API.
> >
> > I understand your point, but I have a feeling that we you will not
> > start the discussion right now,
> > the idea of new API may be lost :( So, I'd suggest to try one more time ;)
>
> Ok, so here we go. This patch is slightly modified, the isDisplayLocal()
> method is now declared in GraphicsEnvironment, with the addition of
> throwing a HeadlessException in the headless case. Also, in fontpath.c,
> we don't call isDisplayLocal(), but instead call _isDisplayLocal(). We
> call it on X11GraphicsEnvironment only. In my original patch I tried to
> be more portable by calling
> GraphicsEnvironment.getLocalGraphicsEnvironment().isDisplayLocal(), but
> this resulted in an initialization loop (this code is very sensible to
> this kind of problem). I left that out for now, because fontpath.c is
> X11 specific anyway, and a real solution will come soon in the form of a
> huge FontManager patch :-)
>
> What do you think? Can we add this API to GE?
>
> /Roman
>
--
Dipl.-Inform. (FH) Roman Kennke, Software Engineer, http://kennke.org
aicas Allerton Interworks Computer Automated Systems GmbH
Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
http://www.aicas.com * Tel: +49-721-663 968-48
USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
Geschäftsführer: Dr. James J. Hunt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 4808 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20080908/8cfaf878/patch.txt>
More information about the swing-dev
mailing list