Link component to provide validation before opening URL

Is it possible link component to provide validation before opening the URL?
If so how can it be done?

example in a button in the button click even we can provide validation, in a link how could this be done before opening the page?

The easist way would be just use Button with button link style to mimic a link, then in the click listenr to open the url. something like

Button linkButton = new Button("Vaadin");
linkButton.addClickListner(new ClickListener(){
    public void buttonClick(ClickEvent event){
        /*some validation here*/


However the URL is generated as new StreamResource(getSource((Document) response.getData()), document.getTitle())

So how will it work? I want it to be opened in a different broswer rather than the same one?

private StreamResource.StreamSource getSource(final Document document) {
return new StreamResource.StreamSource() {
public InputStream getStream() {
return document.getInputStream();

maybe you can try this, though, xx, xx) is deprecated
linkButton.addClickListener(new ClickListener()
public void buttonClick(ClickEvent event)
StreamResource resource =
new StreamResource(getSource(), “filename”);
Page.getCurrent().open(resource, “filename”, false);

Also have a look at the BrowserWindowOpener Extension for Button components. It uses a dynamically created Streamresource. There should be enough examples on the web.