Probably overriding paint method can help:
public class HelloWorldApplication extends Application {
@Override
public void init() {
final Window mainWindow = new Window("Hello world app");
SomeComponent hl = new SomeComponent();
hl.addComponent(new Label("Hello world"));
mainWindow.addComponent(hl);
setMainWindow(mainWindow);
}
public class SomeComponent extends HorizontalLayout {
@Override
public void paint(PaintTarget target) throws PaintException {
// TODO Auto-generated method stub
super.paint(target);
getWindow().executeJavaScript("alert('paint invoked')");
}
}