Source:
<code>protected void onInitUI() { super.onInitUI(); addressTxt = new NpTextArea(); addressTxt.setVisibleLines(4); addressTxt.setCharacterWidth(60); countryTxt = new NpTextBox(); countryTxt.setVisibleLength(40); countryTxt.setMaxLength(40); phoneTxt = new NpTextBox(); phoneTxt.setVisibleLength(30); phoneTxt.setMaxLength(30); faxTxt = new NpTextBox(); faxTxt.setVisibleLength(30); faxTxt.setMaxLength(30); final Grid infoSecure = new Grid(4, 2); infoSecure.setStyleName(Gerrit.RESOURCES.css().infoBlock()); infoSecure.addStyleName(Gerrit.RESOURCES.css().accountInfoBlock()); final HTML privhtml = new HTML(Util.C.contactPrivacyDetailsHtml()); privhtml.setStyleName(Gerrit.RESOURCES.css().accountContactPrivacyDetails()); hasContact = new Label(); hasContact.setStyleName(Gerrit.RESOURCES.css().accountContactOnFile()); hasContact.setVisible(false); if (Gerrit.getConfig().isUseContactInfo()) { body.add(privhtml); body.add(hasContact); body.add(infoSecure); } row(infoSecure, 0, Util.C.contactFieldAddress(), addressTxt); row(infoSecure, 1, Util.C.contactFieldCountry(), countryTxt); row(infoSecure, 2, Util.C.contactFieldPhone(), phoneTxt); row(infoSecure, 3, Util.C.contactFieldFax(), faxTxt); infoSecure.getCellFormatter().addStyleName(0, 0, Gerrit.RESOURCES.css().topmost()); infoSecure.getCellFormatter().addStyleName(0, 1, Gerrit.RESOURCES.css().topmost()); infoSecure.getCellFormatter().addStyleName(3, 0, Gerrit.RESOURCES.css().bottomheader()); <START> final OnEditEnabler sbl = new OnEditEnabler(save, addressTxt); <END> sbl.listenTo(countryTxt); sbl.listenTo(phoneTxt); sbl.listenTo(faxTxt); }</code><technical_language>multiple I prefer: final OnEditEnabler sbl = new OnEditEnabler(save); sbl.listenTo(addressTxt);</technical_language>

Target:
protected void onInitUI() { super.onInitUI(); addressTxt = new NpTextArea(); addressTxt.setVisibleLines(4); addressTxt.setCharacterWidth(60); countryTxt = new NpTextBox(); countryTxt.setVisibleLength(40); countryTxt.setMaxLength(40); phoneTxt = new NpTextBox(); phoneTxt.setVisibleLength(30); phoneTxt.setMaxLength(30); faxTxt = new NpTextBox(); faxTxt.setVisibleLength(30); faxTxt.setMaxLength(30); final Grid infoSecure = new Grid(4, 2); infoSecure.setStyleName(Gerrit.RESOURCES.css().infoBlock()); infoSecure.addStyleName(Gerrit.RESOURCES.css().accountInfoBlock()); final HTML privhtml = new HTML(Util.C.contactPrivacyDetailsHtml()); privhtml.setStyleName(Gerrit.RESOURCES.css().accountContactPrivacyDetails()); hasContact = new Label(); hasContact.setStyleName(Gerrit.RESOURCES.css().accountContactOnFile()); hasContact.setVisible(false); if (Gerrit.getConfig().isUseContactInfo()) { body.add(privhtml); body.add(hasContact); body.add(infoSecure); } row(infoSecure, 0, Util.C.contactFieldAddress(), addressTxt); row(infoSecure, 1, Util.C.contactFieldCountry(), countryTxt); row(infoSecure, 2, Util.C.contactFieldPhone(), phoneTxt); row(infoSecure, 3, Util.C.contactFieldFax(), faxTxt); infoSecure.getCellFormatter().addStyleName(0, 0, Gerrit.RESOURCES.css().topmost()); infoSecure.getCellFormatter().addStyleName(0, 1, Gerrit.RESOURCES.css().topmost()); infoSecure.getCellFormatter().addStyleName(3, 0, Gerrit.RESOURCES.css().bottomheader()); final OnEditEnabler sbl = new OnEditEnabler(save); sbl.listenTo(addressTxt); sbl.listenTo(countryTxt); sbl.listenTo(phoneTxt); sbl.listenTo(faxTxt); }