Hi Roman, comments inlined.
Roman Kennke wrote:
Hi there, At the moment I'm trying to get GNU Classpath's GTK peers (and a handful of own peer/graphicsenv implementations for embedded systems) working with OpenJDK. I'm encountering a couple of problems and I ask myself if the OpenJDK project has any interest in patches to improve support for external toolkits. For example, there's a bunch of places with code like this: private void initPeer() { if (Toolkit.getDefaultToolkit() instanceof HeadlessToolkit){ peer = ((HeadlessToolkit)Toolkit.getDefaultToolkit()).createKeyboardFocusManagerPeer(this); }if (Toolkit.getDefaultToolkit() instanceof SunToolkit){ peer = ((SunToolkit)Toolkit.getDefaultToolkit()).createKeyboardFocusManagerPeer(this); }} Obviously, this wouldn't work with anything except the built-in toolkits.
it is a sweet dream to have pluggable toolkit. So, the answer is yes we would like to clean such places. As usual the only problem is a price :) For example, for this particular case you will need to add new method to Toolkit, for others you may need to do even more :(
So, although we would be happy to clean the code and make the toolkit pluggable, I, personally, afraid that this is very hard. And thus even if you are going to to this I'd suggest to start from places which do not require API changes.
Other areas where I suspect big problems are fonts and probably images. It seems like OpenJDK has no support for a pluggable font implementation at all. However, the GTK peers rely on their own implementation (which is abstracted behind an extension of FontPeer).
well, fonts and images are 2D areas :) you should propose this on their alias.
With the new FB-Toolkit project approved, I'd guess that there would be interest in developing a clean(er) interface and allowing alternative peers and graphics environments to be plugged in, is that correct? If so I would prepare some patches soon.
I'd suggest to start FBToolkit as subclass of SunToolkit, because this will simplify the process, but, as I said above, patches are welcome (although do not expect that all wil be accepted ;)
Regards, Oleg.
