package org.sakaiproject.tool.gradebook.ui.helpers.producers; import org.sakaiproject.tool.gradebook.ui.helpers.params.HelperAwareViewParams; import uk.org.ponder.rsf.flow.ARIResult; import uk.org.ponder.rsf.flow.ActionResultInterceptor; import uk.org.ponder.rsf.viewstate.RawViewParameters; import uk.org.ponder.rsf.viewstate.ViewParameters; public class HelperAwareProducer implements ActionResultInterceptor { public void interceptActionResult(ARIResult result, ViewParameters incoming, Object actionReturn) { if (incoming instanceof HelperAwareViewParams) { HelperAwareViewParams params = (HelperAwareViewParams) incoming; //if the finishURL param is not null, and we are attempting to go to a new page then redirect to url provided // the second portion of this is important to make sure that this navigation does not occur when // feedback on current page is needed if (params.finishURL != null && !((ViewParameters)result.resultingView).viewID.equals(incoming.viewID)) { result.resultingView = new RawViewParameters(params.finishURL); } } } }