EchoPoint TextField not in PeerBindings file

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)

Quote:
The EchoPoint TextField is not registered in the peerbindings file that comes with the EchoPoint distribution (META-INF/echo/PeerBindings.properties).

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