再会
我有一个自定义文本框,它有一个 IndicatorTextBox.ui.xml 文件以及 IndicatorTextBox.java 文件。通常向文本框添加一个 evenhadler 很简单。
这是在我的主要 .java 文件中
@UiHandler("txtFirstName")
void onTxtFirstNameKeyUp(KeyUpEvent event){
validateFields();
}
如果 txtFirstName 是我添加到此页面的带有标签的自定义文本框,我将如何添加处理程序。?因此,换句话说 txtFirstnName 不是@UiField TextBox txtFirstName而是IndicatorTextField txtFirstName。
IndicatorTextBox.java 文件如下所示
import com.google.gwt.core.client.GWT;
公共类 IndicatorTextField 扩展 Composite 实现 HasText{
public interface Binder extends UiBinder<Widget, IndicatorTextField> {
}
private static final Binder binder = GWT.create(Binder.class);
public interface Style extends CssResource{
String textStyling();
String requiredInputLabel();
String colorNotValidated();
}
@UiField Style style;
@UiField Label label;
@UiField TextBox textBox;
public IndicatorTextField()
{
initWidget(binder.createAndBindUi(this));
}
public void setBackgroundValidateTextbox(boolean validated)
{
if(validated)
{
textBox.getElement().addClassName(style.colorNotValidated());
}
else
{
textBox.getElement().removeClassName(style.colorNotValidated());
}
}
@Override
public String getText() {
return label.getText();
}
@Override
public void setText(String text) {
label.setText(text);
}