package com.dragome.render.serverside.swing; import javax.swing.JLabel; import com.dragome.guia.components.interfaces.VisualLabel; import com.dragome.model.interfaces.ValueChangeEvent; import com.dragome.model.interfaces.ValueChangeHandler; import com.dragome.render.canvas.CanvasImpl; import com.dragome.render.canvas.interfaces.Canvas; import com.dragome.render.html.renderers.Mergeable; import com.dragome.render.interfaces.ComponentRenderer; public class SwingVisualLabelRenderer implements ComponentRenderer<Object, VisualLabel<Object>> { public Canvas<Object> render(final VisualLabel<Object> visualLabel) { CanvasImpl<Object> canvasImpl= new CanvasImpl<Object>(); canvasImpl.setContent(new Mergeable<Object>() { public void mergeWith(Object element) { final JLabel jLabel= (JLabel) element; visualLabel.addValueChangeHandler(new ValueChangeHandler<Object>() { public void onValueChange(ValueChangeEvent<Object> event) { jLabel.setText(event.getValue() + ""); } }); jLabel.setText(visualLabel.getValue() + ""); } }); return canvasImpl; } }