This allows windows to be uniquely identified and shared with
clients that are running outside of the DMDirc process (e.g.
a web UI, or a remote instance).
Instead of WindowModel defining lots of methods on the off-chance
that the window is writable, pull them all into a separate
optional InputModel.
For ease of transition, FrameContainer will just implement both,
but eventually the input handling should be pulled out into
its own class.
Despite its name and description, the WindowManager relied on
each FrameContainer having a reference to its parents and all
its children.
The WindowManager now stores this information itself, and so
the FrameContainer methods can be gradually phased out.
This release contains some performance improvements compared
to the version we were using.
Error handlers are now passed in at construction time, so
there was a small bit of refactoring required.
With numeric formatting gone, all output is either added direct
to a window (which will be changed soon) or done through
displayable events. Message sinks are now completely unused,
as they don't affect displayable events.
Issue #426
This allows formats that may be multi-line (whois results,
probably MOTD results at some point, etc...) to show a header
and footer around the actual content.
The logic to get a correctly typed setting given a class is
pretty general purpose, and will be useful elsewhere. Pull
it out of ConfigBinder and add some tests for it.
Dagger 2.0 appears to require each method in a module to have a
unique name. In some cases we've used overloads with the same name.
Also, remove a bunch of boilerplate javadoc.
Issue #601