<AWT Dev> [PATCH] Cleanup AWT peer interfaces

Andrei V. Dmitriev Andrei.Dmitriev at Sun.COM
Wed Nov 12 07:07:40 PST 2008

>> 7) at the same class.
>> You wrote:
>> +    // TODO: Maybe change this to force Graphics2D, since many things will
>> +    // break with plain Graphics nowadays.
>> +    Graphics getGraphics();
>> Do you know a scenario to show what's exactly might be broken.
> Many modern applications do stuff like this:
> public void paint(Graphics g) {
>     Graphics2D g2d = (Graphics2D) g;
>     g.doFancyStuff();
> }
> This will break when we let peers return plain Graphics objects. I don't
> have specific examples, but from my time as GNU Classpath developer I
> know that quite alot of applications do the above thing, without
> checking type. Even the Java2D/Swing tutorials from Sun advertise this.
> The thing is that the official API in java.awt.Component only says
> java.awt.Graphics, and that has probably been left that way for eternal
> backwards compatibility ;-) We can't change this, but we can change the
> internal peer interface.
Thanks for that clarification.
>>  We 
>> probably need to introduce another peer for that, right?
> No, why?
Oh, please ignore that. You described that pretty clear.


>> 8) Similar to 7):
>> +    // TODO: Maybe make that return a BufferedImage, because some stuff 
>> will
>> +    // break if a different kind of image is returned.
>> +    Image createImage(int width, int height);
> Yeah, the answer is similar to 7 too: there are many apps out that
> expect exactly this behaviour, so we should probably give them what they
> want. Can't change the public API, but we can change the peers.
>> The rest is just fine!
>> Finally I've applied the patch and reviewed the webrev. It was just more 
>> convenient for me.
>> There was an exception for ComponentPeer.java - it caused some conflicts 
>> and I didn't succeeded to resolve them fast enough so just looked on the 
>> patch itself for that file.
>> At last the JDK7 workspace was successfully built.
> Cool. I'll do the suggested changes and post another webrev for final
> review.
> /Roman

More information about the awt-dev mailing list