Обновить компонент ввода из поддерживающего bean-компонента
Я устанавливаю компонент ввода из своего bean-компонента
В моем бобе
public void InicializarCronometro(ComponentSystemEvent e) {
HtmlForm form = (HtmlForm) e.getComponent();
UIInput input = new HtmlInputText();
input.setId("cronoInput"); // Must be unique!
input.setValueExpression("value", createValueExpression("#{jugarPartidoAdmBean.labelCrono}", String.class));
form.getChildren().add(input);
}
private ValueExpression createValueExpression(String valueExpression, Class<?> valueType) {
FacesContext context = FacesContext.getCurrentInstance();
return context.getApplication().getExpressionFactory()
.createValueExpression(context.getELContext(), valueExpression, valueType);
}
In my xhtml file:
<b:navBar brandHref="indexAdm.xhtml" inverse="true" fixed="bottom" sticky="false">
<b:navbarLinks>
<h:form id="footForm" styleClass="navbar-form navbar-right">
<f:event type="postAddToView" listener="#{jugarPartidoAdmBean.InicializarCronometro}" />
<b:row>
<b:column col-xs="12" col-sm="3" col-md="4" />
<b:column col-xs="12" col-sm="3" col-md="8" offset="12">
<b:commandButton value="Comensar" look="success" action="#{jugarPartidoAdmBean.ComensarPartido()}" style="margin-left: 10%;" />
</b:column>
</b:row>
</h:form>
</b:navbarLinks>
</b:navBar>
Когда я нажимаю кнопку, я вызываю этот метод, чтобы запустить crono
public void ComensarPartido() {
Cronometro crono = new Cronometro(0, 0);
crono.addObserver(this);
Thread t = new Thread(crono);
t.start();
}
Класс crono работает нормально, и в моем beAN я реализую Observer, а в методе обновления у меня есть следующее:
@Override
public void update(Observable o, Object arg) {
this.setLabelCrono((String) arg);
//InicializarCronometro(new HtmlInputText());
System.out.println(this.getLabelCrono());
}
в строке this. setLbaelCrono((String) arg) Я устанавливаю счетчик 00:00, 00:01, 00:02... и т. д. Я хочу обновить свой входной компонент, чтобы показать crono, но я не получаю этого результата вход Компонент остается в 00:00, что по умолчанию является значением "labelCrono". Что мне нужно сделать, чтобы обновить компонент, который я вижу.??