grid = new ComputingGrid<SessionContext, BearScriptPhase<Object, TaskResult<?>>>(phaseList, $s);
grid.setPhaseEnterListener(new ComputingGrid.PartyListener<BearScriptPhase<Object, TaskResult<?>>, SessionContext>() {
@Override
public void handle(Phase<?, BearScriptPhase<Object, TaskResult<?>>> phase, PhaseParty<SessionContext, BearScriptPhase<Object, TaskResult<?>>> party) {
ui.info(new NewPhaseConsoleEventToUI("shell", shellContext.sessionId, phase.getPhase().id));
ui.info(new TaskConsoleEventToUI("shell", "step: " + phase.getName(),
phase.getPhase().id)
.setId(phase.getPhase().id)
.setParentId(shellContext.sessionId)
);