1 17 18 package org.objectweb.jac.aspects.gui.web; 19 20 import java.io.IOException ; 21 import java.io.PrintWriter ; 22 import javax.servlet.http.HttpServletResponse ; 23 import org.objectweb.jac.aspects.gui.*; 24 import org.objectweb.jac.core.Collaboration; 25 import org.objectweb.jac.util.Semaphore; 26 27 30 public class RefreshPage extends Page implements DialogView 31 { 32 33 public RefreshPage(View view) { 34 super(view,false); 35 } 36 37 int count = 0; 39 40 public void genBody(PrintWriter out) throws IOException { 42 ((HTMLViewer)view).genHTML(out); 43 44 out.println( 45 "<script type=\"text/javascript\">"+ 46 "setTimeout(\"window.location.href = '"+ 47 getBaseURL()+"?event=onRefresh&source="+getId()+ 48 "&refresh="+(count++)+"';\", '3000');"+ 49 "</script>"); 50 } 51 52 HttpServletResponse response; 53 JacRequest jacRequest; 54 Semaphore semaphore = new Semaphore(); 55 boolean waiting = false; 56 57 public boolean waitForClose() throws TimeoutException { 58 waiting = true; 59 semaphore.acquire(); 60 WebDisplay.setResponse(response); 62 WebDisplay.setRequest(jacRequest); 63 return true; 64 } 65 66 public void restoreContext() {} 67 68 70 public void onRefresh(JacRequest request) { 71 if (waiting) { 72 response = WebDisplay.getResponse(); 73 jacRequest = WebDisplay.getRequest(); 74 ((WebDisplay)context.getDisplay()).closeWindow(this,false); 75 semaphore.release(); 76 } else { 77 super.onRefresh(request); 78 } 79 } 80 81 public void onClose() { 82 throw new RuntimeException ("onClose is not implemented for RefreshPage"); 83 } 84 } 85 | Popular Tags |