Hi,
I have a panel MatchingPanel with a form and a result div:
<wicket:panel>
<form wicket:id="form" action="#">
<div class="widget">
<label><wicket:message
key="form.userAgent">[form.userAgent]</wicket:message></label>
<input wicket:id="userAgent" class="userAgent"
type="text" maxlength="255" />
</div>
<div class="buttons">
<input type="submit" value="Match"
wicket:message="value:form.match" />
</div>
</form>
<div wicket:id="result" >
<div>
<label><wicket:message
key="result.matchedUserAgent">[result.matchedUserAgent]</wicket:message></label>
<span
wicket:id="matchedUserAgent">[sourceUserAgent]</span>
</div>
</div>
</wicket:panel>
while my java code is:
class MatchingForm extends Form<Object> {
...
private void registerBehaviors() {
userAgentField.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
logger.debug("AJAX matching user agent");
matchUserAgent();
target.addComponent(resultPanel);
}
});
}
...
private void matchUserAgent() {
String userAgent = userAgentModel.getObject();
WURFLManager wurflManager = getWurflManager();
MatchingResult result = null;
if (StringUtils.isNotBlank(userAgent)) {
Instant start = new Instant();
Device device = wurflManager.getDeviceForRequest(userAgent);
Instant end = new Instant();
Period duration = new Period(start, end);
result = new MatchingResult(userAgent, device, (long)
duration
.getMillis());
}
resultPanel.setResult(result);
}
}
The OnChangeBehaviour is called only the first time the userAgent field take
the focus. To call other time, i have to lost focus and give focus to
userAgent input text. Why? The target component is outside the frm, it is an
issue?
Thank you
--
Filippo De Luca
--------------------------
Email: [email protected]
Web: http://www.filosganga.it
LinkedIn: http://www.linkedin.com/in/filippodeluca
mobile: +393395822588