Lrt
(Lrt Hrl)
November 20, 2015, 3:36pm
1
Hi there,
I’m trying to set a message inside a Table when no records found into database.
How can I do this properly? I found a way
there
but that does not match my needs. I have to manage a multi-language website so I have to display the message in different languages.
Any thoughts would be appreciated. Thank you !
Lrt
Auke2
(Auke te Winkel)
November 23, 2015, 9:28am
2
I’ve never used it, but I think you can do this using a Table.RowGenerator.
Agata3
(Agata Vackova)
November 23, 2015, 1:22pm
3
You can replace the table, with label dynamicaly:
if (!recordsFound()) {
Label noChanges = new Label(__("NO_RECORDS"), ContentMode.HTML);
noChanges.setSizeUndefined();
noChanges.addStyleName(ValoTheme.LABEL_H1);
noChanges.addStyleName(ValoTheme.LABEL_COLORED);
getViewer().replaceComponent(content, noChanges);
((AbstractOrderedLayout) getViewer()).setComponentAlignment(noChanges, Alignment.MIDDLE_CENTER);
}
Lrt
(Lrt Hrl)
November 23, 2015, 6:10pm
4
Hi Auke,
Thank you for answering me back.
I tried something like that :
[code]
if (myTable.isEmpty()) {
myTable.setRowGenerator(new Table.RowGenerator() {
@Override
public Table.GeneratedRow generateRow(Table table, Object itemId) {
Table.GeneratedRow row = new Table.GeneratedRow();
row.setText("No records found");
return row;
}
});
}
[/code]… but I got nothing displayed at all into my table. What am I doing wrong here?
I did not find any conclusive examples on the web in matter to achieve it.
Do you have an example or other suggestions to make it work?
Thank you,
Lrt
Lrt
(Lrt Hrl)
November 23, 2015, 6:17pm
5
You can replace the table, with label dynamicaly:
if (!recordsFound()) {
Label noChanges = new Label(__("NO_RECORDS"), ContentMode.HTML);
noChanges.setSizeUndefined();
noChanges.addStyleName(ValoTheme.LABEL_H1);
noChanges.addStyleName(ValoTheme.LABEL_COLORED);
getViewer().replaceComponent(content, noChanges);
((AbstractOrderedLayout) getViewer()).setComponentAlignment(noChanges, Alignment.MIDDLE_CENTER);
}
Hi Agata,
Thank you for answering me back.
I already thought about it and it could be a good alternative but that is not what I want as result.
I want the “No records found” message displaying into the table.
Any other suggestions?
Thank you,
Lrt
Agata3
(Agata Vackova)
November 24, 2015, 7:27am
6
Hi Auke,
Thank you for answering me back.
I tried something like that :
[code]
if (myTable.isEmpty()) {
myTable.setRowGenerator(new Table.RowGenerator() {
@Override
public Table.GeneratedRow generateRow(Table table, Object itemId) {
Table.GeneratedRow row = new Table.GeneratedRow();
row.setText("No records found");
return row;
}
});
}
[/code]… but I got nothing displayed at all into my table. What am I doing wrong here?
I did not find any conclusive examples on the web in matter to achieve it.
Do you have an example or other suggestions to make it work?
Thank you,
Lrt
You probably need to add an item to display the message:
if (myTable.isEmpty()) {
myTable.addItem();
myTable.setRowGenerator(new Table.RowGenerator() {
@Override
public Table.GeneratedRow generateRow(Table table, Object itemId) {
Table.GeneratedRow row = new Table.GeneratedRow();
row.setText("No records found");
return row;
}
});
}