Hi everyone, First, let me introduce myself: I'm a french software engineer working in a small IT consulting company. I'm working with GWT for 3 years now and contributing patches on a regular basis (BTW, I'm the only non-googler listed as a project member on the code.google.com site).
On our current project (whose UI is made with GWT), we're in need of a rich-text editor with "semantic markup" (marking up "people", "locations", etc. and possibly linking them to other items in our data repository) and constrained content (sometimes we don't want titles/subsections or tables, and sometimes even limit editing to a single paragraph with "semantic markup" only). We only target Firefox 4 (or whichever stable version will be current by the time we ship, lucky us!). In search of the "perfect editor" for the task (or rather, the challenge!) it became obvious to me that Wave's editor would be the perfect fit: model-based, entirely "emulated" (no contentEditable=true, meaning we have full control on which user actions produce which content), built with GWT, etc. So, I'm in the process of integrating the Editor component in our app (prototyping in a test-bed app for the time being) and I'm facing a "major issue" (well, not that much given our specific environment, see below) and seeing a few possible enhancements; both of them being related to how Wave uses GWT and "integrates" with it. First, Wave overrides the "user.agent" deferred-binding property (and property provider) to add new "iphone" and "android" values and remove Opera support. While this is not a showstopper for us (given that we only support Firefox 4 –and Chrome, as we're almost all using Chrome in the dev team–) it might cause issues to others (e.g. someone having to support Opera, even if it means disabling the Editor for them). Proposal: GWT has had "conditional properties" for this exact use case for a few releases. http://code.google.com/p/google-web-toolkit/wiki/ConditionalProperties Wave also inspired new features of GWT, and the codebase hasn't been migrated to the "gwt-user" APIs once they were integrated, which results in almost-duplicated code once you start integrating Wave code within another application. The most notable (and maybe only) such feature is SafeHtml. There are of course many other possible enhancements, some of them already listed as TODOs in the code, but I'm first interested in those that will have a direct impact on the size of the compiled JS output. If everyone's OK with these changes, I'm ready to work on a patch in the upcoming days. -- Thomas Broyer /tɔ.ma.bʁwa.je/
