I don't have a strong opinion about it. They can be non-final, with simply no particular effort to truly make them extensible.
> I think it might be possible to move the template JS files to > GWT-translated code with extension points managed through rebinding and > overriding. Until then, making changes that involve JS modifications > effectively require you to cut and paste the whole file. > > There is now some templating, by the way. You asked about the __COMPUTE_SCRIPT_BASE__ reference. SelectionScriptLinker -- the base class for all the linkers in the subject line -- substitutes that string for the contents of computeScriptBase.js, a file included within gwt-user.jar. Thus, linkers that want the standard implementation of computeScriptBase() can simply include that string rather than copying the whole chunk of JS. Such templating is pretty limited even in principle, however, and in practice it's so far only done for that file and for one other one. Incidentally, you mention moving code into Java. That strategy actually came to pass for runAsync code fetching. Originally, linkers would emit a function that the code loader calls to download code. Now, there is a deferred binding, and the choice of linker causes the deferred binding choice to differ. Thus, code loaders are now simply Java classes that implement a simple Java interface. It's much easier to maintain. -Lex -- http://groups.google.com/group/Google-Web-Toolkit-Contributors