So some kind of client refresh is needed here. I spent some time looking through the GWT one page checkout before I realised that it is not used in 6.5.1.0.
The answer is to modify CheckoutOnePageRefreshAction.java so that on an address change it regenerates the shipping quotes and creates an array of shipping quote codes and an array of names. Getters are then provided for the two arrays.
On the checkout side in CatalogCheckoutOnePageBody.jsp, in the onePageRefreshCallback check the result for the arrays and if found process them into the option tags, then use jquery to insert the tags into the shippingQuotes element (the list), and finally call refreshShipping() which will update the totals with the new default shipping.
Exactly the same can be done for payments, if you want to limit them to certain countries (we only want cheques from a UK billing address).
The answer is to modify CheckoutOnePageRefreshAction.java so that on an address change it regenerates the shipping quotes and creates an array of shipping quote codes and an array of names. Getters are then provided for the two arrays.
On the checkout side in CatalogCheckoutOnePageBody.jsp, in the onePageRefreshCallback check the result for the arrays and if found process them into the option tags, then use jquery to insert the tags into the shippingQuotes element (the list), and finally call refreshShipping() which will update the totals with the new default shipping.
Exactly the same can be done for payments, if you want to limit them to certain countries (we only want cheques from a UK billing address).