The EchoPoint TextField is not registered in the peerbindings file that comes with the EchoPoint distribution (META-INF/echo/PeerBindings.properties).
I found this because I subclassed an echopoint.PasswordField and it would not render as a PasswordField, just a plain TextField with the input unmasked.
As luck would have it, the echopoint.TextField ends up using the echo.TextFieldUI rendering peer, as it is a subclass of the echo.TextField. The rendering is so similar that you normally wouldn't notice.
However in the echo.TextFieldUI render method it checks to see if you have an echo.PasswordField:
if (textField instanceof PasswordField) {
This failed because my PasswordField was an instance of echopoint.PasswordField, not echo.PasswordField.
The solution was to register the echopoint.TextField in my servlet initialisation with the other custom components:
echopoint.TextFieldUI.register();
You could alternatively recompile EchoPoint yourself aftering amending the PeerBindings file if you really wanted to.
JRich+Apr 14 2005, 11:45 PM(JRich @ Apr 14 2005, 11:45 PM)
Hmm... yup that is correct. Thanks for finding it out JRich. I normally explicitly register components using eg. Installer.register() which does called TextFieldUI.register(),... etc. and dun't rely on PeerDiscocery that does the discovery upon EchoServer's static block, so I dun get bumped into this problem.
I think this should be corrected, just in case some one is relying on the peer discovery system. Nice one JRich. :o)
regards
tmjee