After fill(parent)I think you can call parent.getChildren (). I expect the new button to be the last entry in the returned control []. Therefore:
Control kids[] = parent.getChildren();
if (kids != null && kids.length != 0) {
getShell().setDefaultButton( (Button)kids[kids.length - 1] );
}
, , ... .