One solution would be to have two different methods on the interface
such as:
HasValue<String> getUsernameField();
HasBlurHandlers getUsernameInput();
I'm not sure I like those names, but the point is that getting the
value and adding a blur handler can be different concerns from the
point of view of the presenter. From the view's perspective, it's a
nice convenience that TextBox has both or these features so it can
fulfill both methods of the interface with the same object. The view
also has the freedom to use different objects if that made sense to
do. Finally, there's the added bonus that not even the method name
implies that a TextBox is being used.
-Brian