Ok, so I had an idea and ran it by Trevor yesterday via email. Anywhoooo... the thoughts were to utilize the built in platform that Eclipse is based on. Though Trevor did not say much specific, it seems clear that he does not like Swing and that he had looked at SWT at some point in the past, but ran into some issues with
....how buggy the canvas component was (for example, it wouldn't correctly rotate and translate a drawable, a MAJOR issue for MT dev)
I emailed him back(waiting to get a response) to try to get additional information as I don't know if he played with SWT last week or two years ago and the issue in question may have been resolved or will be soon.
SWT was created to address some issues with swing -- well more correctly it was created for political reasons as there was no reason that swing couldn't of been fixed, but I digress. This was quite some time ago and those problems really don't exist in swing anymore. Unfortunately SWT is no where as consistent across OS's as swing is -- funny about that really
. Sure SWT proponents tell you SWT works the same on all systems but just search for SWT and Mac OS X and you will see this is far from the case -- and whats worse there doesn't seem much of a desire to fix some of these issues. Another down side is the HTML support, you can't have it in as many places as swing (such as buttons/tooltips etc), not only that the HTML display pane (think chat panel) uses your native browser for rendering, so on Windows thats IE 6, 7 , 8 depending on what is installed, Mozilla for Linux, WebKit for Safari. And you think people complaining about the HTML in macros being awkward now!
Anyway, some of the things that Eclipse is good at:
Plugins are built into the core and it's expected that you build your product that way, so extending will be at least somewhat easy if the base code is built properly.
Azhrei and I have already talked a bit about using OSGi for MapTool -- this is what eclipse uses -- its quite small (1 megish) compared to a full eclipse install.
[*] built in browser control. Not quite sure exactly how well this works standards-wise, but since it it build on the Mozilla rendering engine, I expect it would be at least more up to date than the base Swing stuff.
Its only Mozilla on some platforms
I am sure there are some negatives also, so this is really more of a throw an idea out there thing.
The size is another big draw back, just a barebones Eclipse RCP with the updates adds quite a bit to the jar. Also it means either different jar files per platform or putting SWT for all platforms in the jar.
Also from my understanding -- and I could be wrong -- you are pretty limited when it comes to changing the look and feel -- skinning -- SWT apps.