Hello everyone,
i’m using in my project Grid of Vaadin 8, in particular my code is:
grid= new Grid<>();
grid.setWidth("100%");
grid.setHeightMode(HeightMode.UNDEFINED);
grid.addColumn(Integrazione::getStatoIntegrazione).setCaption("Stato integrazione");
grid.addColumn(Integrazione::getDataIntegrazione).setCaption("Data");
grid.addColumn(Integrazione::getNumeroProtocollo).setCaption("Numero Protocollo");
grid.addColumn(Integrazione::getMittente).setCaption("Mittente");
grid.addComponentColumn(e->{
dettaglio = new Button(VaadinIcons.SEARCH);
dettaglio.addClickListener(event->{
dettaglioUI.setIntegrazioneTemp(e);
dettaglioIntegrazione = new DettaglioIntegrazioneDettPanel();
dettaglioIntegrazione.buildPanel();
invia = dettaglioIntegrazione.getInvia();
chiudi = dettaglioIntegrazione.getChiudi();
invia.setCaption("Invia");
invia.setEnabled(false);
root.addComponent(dettaglioIntegrazione);
if(dettaglioIntegrazione.getIntegrazione().isIntegrazioneRichiesta()) {
invia.setEnabled(true);
invia.addClickListener(evento->{
if(dettaglioIntegrazione.getIntegrazione().getListaAllegati()!=null && !dettaglioIntegrazione.getIntegrazione().getListaAllegati().isEmpty())
{
for (Allegati allegato : dettaglioIntegrazione.getIntegrazione().getListaAllegati()) {
if(allegato.isAllegatoCheck()) {
integrazioneCompleta = true;
break;
}
}
}
if(integrazioneCompleta == false) {
new Notification("Per completare la sezione, è necessario allegare tutti i documenti richiesti.", Type.ERROR_MESSAGE).show(Page.getCurrent());
}else {
Pratica pratica;
try {
pratica = PEAUIService.inviaIntegrazione(dettaglioIntegrazione.getIntegrazione());
dettaglioUI.getDettaglio().setInviaStato(pratica.getInviaStato());
if(!pratica.getInviaStato().equalsIgnoreCase(InviaStatoEnum.INVIATA.toString()))
{
MessageBox message = MessageBox.createError();
message.withCaption("Errore").withHtmlMessage("Si è verificato un errore nell'invio, si prega di riprovare. </br>Se il problema persiste contattare l'ufficio tecnico.").withOkButton().open();
message.getButton(ButtonType.OK).addClickListener(ok->{
return;
});
}
else
{
MessageBox message = MessageBox.createInfo();
message.withCaption("Attenzione").
withHtmlMessage(
"L'integrazione è stata inviata. Per poter verificare l'aggiornamento dello stato si prega di attendere qualche minuto.")
.withOkButton().open();
message.getButton(ButtonType.OK).addClickListener(okBtn -> {
Page.getCurrent().reload();
});
}
} catch (Exception e1) {
MessageBox message = MessageBox.createError();
message.withHtmlMessage(
"A causa di problemi tecnici, non è stato possibile inviare la richiesta pertanto si prega di riprovare. </br>Se il problema persiste contattare l'ufficio tecnico.")
.withOkButton().open();
message.getButton(ButtonType.OK).addClickListener(okBtn -> {
dettaglioUI.setScrollTop(0);
});
}
}
});
}
chiudi.setCaption("Chiudi");
chiudi.addClickListener(evento -> {
dettaglioIntegrazione.setVisible(false);
chiudi.setVisible(false);
invia.setVisible(false);
dettaglioUI.setScrollTop(0);
integrazione.getGrid().setEnabled(true);
});
integrazione.getGrid().setEnabled(false);
});
return dettaglio;
}).setCaption("Dettaglio").setId("focus");
The problem is in addComponetColumn, because the component is add only in last row (see attachment).
Can you help me?
Thank you all and sorry for my English.