1 15 package org.apache.tapestry.engine; 16 17 import java.io.IOException ; 18 import java.util.HashMap ; 19 import java.util.Map ; 20 21 import org.apache.tapestry.IRequestCycle; 22 import org.apache.tapestry.Tapestry; 23 import org.apache.tapestry.services.LinkFactory; 24 import org.apache.tapestry.services.ResetEventCoordinator; 25 import org.apache.tapestry.services.ResponseRenderer; 26 import org.apache.tapestry.services.ServiceConstants; 27 28 37 38 public class ResetService implements IEngineService 39 { 40 41 42 private ResponseRenderer _responseRenderer; 43 44 45 46 private ResetEventCoordinator _resetEventCoordinator; 47 48 49 private boolean _enabled; 50 51 52 53 private LinkFactory _linkFactory; 54 55 public ILink getLink(IRequestCycle cycle, Object parameter) 56 { 57 if (parameter != null) 58 throw new IllegalArgumentException (EngineMessages.serviceNoParameter(this)); 59 60 Map parameters = new HashMap (); 61 62 parameters.put(ServiceConstants.SERVICE, Tapestry.RESET_SERVICE); 63 parameters.put(ServiceConstants.PAGE, cycle.getPage().getPageName()); 64 65 return _linkFactory.constructLink(cycle, parameters, true); 66 } 67 68 public String getName() 69 { 70 return Tapestry.RESET_SERVICE; 71 } 72 73 public void service(IRequestCycle cycle) throws IOException 74 { 75 String pageName = cycle.getParameter(ServiceConstants.PAGE); 76 77 if (_enabled) 78 _resetEventCoordinator.fireResetEvent(); 79 80 cycle.activate(pageName); 81 82 84 _responseRenderer.renderResponse(cycle); 85 } 86 87 88 public void setResponseRenderer(ResponseRenderer responseRenderer) 89 { 90 _responseRenderer = responseRenderer; 91 } 92 93 94 95 public void setResetEventCoordinator(ResetEventCoordinator resetEventCoordinator) 96 { 97 _resetEventCoordinator = resetEventCoordinator; 98 } 99 100 101 102 public void setEnabled(boolean enabled) 103 { 104 _enabled = enabled; 105 } 106 107 108 public void setLinkFactory(LinkFactory linkFactory) 109 { 110 _linkFactory = linkFactory; 111 } 112 } | Popular Tags |