package com.dragome.render.serverside.swing; import javax.swing.JTextField; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.dragome.guia.components.interfaces.VisualTextField; 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 SwingVisualTextFieldRenderer implements ComponentRenderer<Object, VisualTextField<Object>> { public Canvas<Object> render(final VisualTextField<Object> visualTextField) { CanvasImpl<Object> canvasImpl= new CanvasImpl<Object>(); canvasImpl.setContent(new Mergeable<Object>() { public void mergeWith(Object element) { final JTextField jTextField= (JTextField) element; SwingUtils.addChangeListener(jTextField, new ChangeListener() { public void stateChanged(ChangeEvent e) { visualTextField.setValue(jTextField.getText()); } }); jTextField.setText(visualTextField.getValue() + ""); } }); return canvasImpl; } }