package com.dragome.examples.tutorial;
import java.util.Arrays;
import com.dragome.forms.bindings.builders.ComponentBuilder;
import com.dragome.forms.bindings.builders.ObservableList;
import com.dragome.forms.bindings.builders.Order;
import com.dragome.guia.GuiaVisualActivity;
import com.dragome.guia.components.interfaces.VisualButton;
import com.dragome.guia.components.interfaces.VisualLabel;
import com.dragome.guia.components.interfaces.VisualPanel;
import com.dragome.web.annotations.PageAlias;
@PageAlias(alias= "repeat-with-order-by")
public class RepeatWithOrderBy extends GuiaVisualActivity
{
protected Order order= Order.ASC;
public void build()
{
ComponentBuilder componentBuilder= new ComponentBuilder(mainPanel);
componentBuilder.bindTemplate("input")
.as(VisualButton.class)
.onClick(() -> setOrder(getOrder().swap()))
.build();
ObservableList<String> names= new ObservableList<String>(Arrays.asList("Maradona", "Bochini", "Ortega", "Veron"));
componentBuilder.bindTemplate("row")
.as(VisualPanel.class)
.toList(names)
.orderBy(s -> s, () -> getOrder())
.repeat((name, builder) -> {
builder.bindTemplate("name")
.as(VisualLabel.class)
.to(() -> name)
.build();
});
}
public Order getOrder()
{
return order;
}
public void setOrder(Order order)
{
this.order= order;
}
}