Fix regression that omitted support for client redirect.
Also, delay showing DesktopWindow until first valid rect has been
recieved. This allows for a ClientRedirect to take place before
any data rects have been received.
Make all viewer parameters static. Viewer instances are isolated from each other by spawning a completely new process for each viewer, rather than simply starting a new thread. All dialogs were redesigned to better match the look of the native viewer, and also to be more tolerant of sizing differences between platforms.
This is the first of several large commits intended to resolve a
number of problems and add new capabilities to the java viewer.
Among the most significant changes are a complete re-design of
the options dialog, which has been converted to a callback style
interface. The look & feel of all dialogs are now similar to
the style of the native viewer now. Also, the process by which
new viewers are spawned has changed and each viewer is a completely
separate process, allowing for runtime arguments to be handled
statically.
Fixes numerous problems with the SSH tunneling implementation
on the java viewer and adds many significant new SSH-related
features. SSH tunneling is now highly configurable via the
both the command line and GUI. The embedded client can parse
openssh config files. An external client may be specified,
along with a custom arguments template.
Significant improvements to the Java viewer UI to
make it more robust and tolerant of new tabs, fonts,
etc. TextFields and editable ComboBoxes that are
specific to integer values now only accept integer
input.
6262bac introduced a regression that resulted in a 1 pixel border
around the window on some platforms. The underlying issue was
actually caused by overriding the getPreferredSize() method in
DesktopWindow and returning the scaled width & height, which
might not have been set to valid values.