package com.morevaadin.lambda; import com.vaadin.ui.*; import static com.vaadin.shared.ui.label.ContentMode.HTML; public abstract class AbstractLambdaTab extends HorizontalLayout { public AbstractLambdaTab() { setMargin(true); setSpacing(true); VerticalLayout left = new VerticalLayout(); Button button = new Button("Click me"); setButtonBehavior(button, left); left.addComponent(button); StringBuilder builder = new StringBuilder("<pre>"); setCorrespondingCode(builder); builder.append("</pre>"); Label right = new Label(builder.toString(), HTML); right.setSizeFull(); addComponent(left); addComponent(right); setSizeFull(); } protected abstract void setButtonBehavior(Button button, ComponentContainer container); protected abstract void setCorrespondingCode(StringBuilder builder ); }