package com.vaadin.tests.widgetset.client.data;
import com.google.gwt.user.client.ui.FlowPanel;
import com.vaadin.client.connectors.AbstractListingConnector;
import com.vaadin.client.data.DataSource;
import com.vaadin.client.ui.VLabel;
import com.vaadin.shared.ui.Connect;
import com.vaadin.tests.data.DummyData.DummyComponent;
import elemental.json.JsonObject;
@Connect(DummyComponent.class)
public class DummyComponentConnector extends AbstractListingConnector {
@Override
public FlowPanel getWidget() {
return (FlowPanel) super.getWidget();
}
@Override
public void setDataSource(DataSource<JsonObject> dataSource) {
super.setDataSource(dataSource);
dataSource.addDataChangeHandler(range -> {
assert range.getStart() == 0 && range.getEnd() == dataSource
.size() : "Widget only supports full updates.";
getWidget().clear();
for (int i = range.getStart(); i < range.getEnd(); ++i) {
VLabel label = new VLabel();
getWidget().add(label);
JsonObject row = dataSource.getRow(i);
String text = getRowData(row).asString();
if (isRowSelected(row)) {
text = "<b>" + text + "</b>";
label.addStyleName("selected");
}
label.setHTML(text);
}
});
}
}