private void showMailList(List<StickMail> mails) { resultsPanel.clear(); if (mails == null || mails.size() == 0) { Label noMailsLbl = new Label("You have no scheduled mails."); noMailsLbl.addStyleName("ui-nomails"); resultsPanel.add(noMailsLbl); return; } deleteBtn.setVisible(true); SimpleContainer list = new SimpleContainer(); for (final StickMail mail : mails) { HorizontalPanel row = new HorizontalPanel(); row.addStyleName("ui-row"); list.add(row); PhCheckBox check = new PhCheckBox(); check.addValueChangeHandler( new ValueChangeHandler<Boolean>() { public void onValueChange(ValueChangeEvent<Boolean> event) { if (!scrollInProgress) { if (event.getValue()) { checkedMails.add(mail); } else { checkedMails.remove(mail); } } } }); row.add(check); TouchHTML mailHtml = new TouchHTML( "<p class='ui-row-subject'>" + mail.getSubject() + "</p><p class='ui-row-scheduled'>" + GwtUtils.dateToString(mail.getScheduled(), "dd/MM/yyyy HH:mm") + "</p>"); row.add(mailHtml); mailHtml.addTouchEndHandler( new TouchEndHandler() { public void onTouchEnd(TouchEndEvent event) { if (!scrollInProgress) { // PhonegapUtils.log("selected " + mail); } } }); } resultsPanel.add(list); TouchUtils.applyFocusPatch(); GwtUtils.deferredExecution( 500, new Delegate<Void>() { public void execute(Void element) { resultsPanel.setHeight( "" + (Window.getClientHeight() - resultsPanel.getAbsoluteTop()) + "px"); } }); }