It seems that I was over-thinking things by trying to use GWT. I solved my problem by relying on native javascript.
@UiHandler({"myGWTButton"})
protected void myGWTButtonClicked(ClickEvent click) {
click.preventDefault();
openPopupWindow("www.mydomain.com", 'bar');
}
native void openPopupWindow(String url, String val) /*-{
var windowName = '' + Math.floor(Math.random() * 10000000) ; //we need some name to reference it later, so assign a random number as the name (make sure the number doesn't have a decimal because IE will choke on it)
var popupWindow = window.open('', windowName, 'width=550,height=350,resizeable,scrollbars');
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", url);
form.setAttribute("target", windowName);
form.setAttribute("enctype", "multipart/form-data");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "foo");
hiddenField.setAttribute("value", val);
form.appendChild(hiddenField);
document.getElementsByTagName('body')[0].appendChild(form);
while(!popupWindow){
//wait for popupwindow to open before submitting the form
}
form.submit();
}-*/;