package com.dragome.examples.canvas.gui;
import org.jbox2d.gwt.showcase.client.example.BlobTest4;
import org.jbox2d.gwt.showcase.client.example.ExampleList;
import org.jbox2d.gwt.showcase.client.example.Web;
import org.jbox2d.gwt.showcase.client.framework.BaseExample;
import org.jbox2d.gwt.showcase.client.rendering.ExampleView;
import com.dragome.forms.bindings.builders.ComponentBuilder;
import com.dragome.guia.GuiaVisualActivity;
import com.dragome.guia.components.SimpleRenderer;
import com.dragome.guia.components.VisualComboBoxImpl;
import com.dragome.guia.components.interfaces.VisualComboBox;
import com.dragome.guia.components.interfaces.VisualLabel;
import com.dragome.web.annotations.PageAlias;
@PageAlias(alias= "demo")
public class JBox2dDemo extends GuiaVisualActivity
{
public void build()
{
ComponentBuilder componentBuilder= new ComponentBuilder(mainPanel);
ExampleView exampleView= new ExampleView(mainTemplate.getChild("canvas").getContent());
VisualComboBox<BaseExample> exampleList= new VisualComboBoxImpl<>();
exampleList.setRenderer(new SimpleRenderer<BaseExample>()
{
public String render(BaseExample object)
{
return object.getTestName();
}
});
exampleList.setAcceptableValues(ExampleList.tests);
VisualLabel<String> label= componentBuilder.bindTemplate("instructions").as(VisualLabel.class).build();
componentBuilder.bindTemplate("example-select").to(exampleList).onValueChange(() -> {
try
{
BaseExample newInstance= exampleList.getValue();
exampleView.onStartExample(newInstance);
label.setValue(newInstance.getInstructions().toString());
}
catch (Exception e)
{
e.printStackTrace();
}
}).build();
BaseExample example= new BlobTest4();
example= new Web();
exampleView.onStartExample(example);
label.setValue(example.getInstructions().toString());
}
}