/**
* This is the confirm handler we use and the supporting code to abstract it
*/

public final class Confirm {
    
public static final Confirm CLICK_OK = new Confirm("Click OK");
    
public static final Confirm CLICK_CANCEL = new Confirm("Click Cancel");
    
public static final Confirm DEFAULT = CLICK_OK;

    
private final String type_;
    
private Confirm(final String type) {
        
this.type_ = type;
    }
    
public String toString() {
        return
this.type_;
    }
}

public class HtmlUnitConfirmHandler implements ConfirmHandler {

    
private final boolean response_;
    
private final WebBrowser browser;
    
public HtmlUnitConfirmHandler(final Confirm response, final WebBrowser parent) {
        if (
Confirm.CLICK_OK.equals(response)) {
            
this.response_ = true;
        } else if (
Confirm.CLICK_CANCEL.equals(response)) {
            
this.response_ = false;
        } else {
            
this.response_ = true;
        }
        
this.browser = parent;
    }
    
public boolean handleConfirm(final Page page, final String message) {
        
this.browser.setLastConfirmMessage(message);
        
page.getEnclosingWindow().getWebClient().setConfirmHandler(null);
        return
this.response_;
    }

}