package freenet.clients.http.updateableelements; import java.util.Timer; import java.util.TimerTask; import freenet.clients.http.SimpleToadletServer; import freenet.clients.http.ToadletContext; import freenet.support.Base64; import freenet.support.HTMLNode; /** A pushed element that counts up every second. Only for testing purposes. */ public class TesterElement extends BaseUpdateableElement { private int status = 0; private int maxStatus; ToadletContext ctx; Timer t; final String id; public TesterElement(ToadletContext ctx, String id, int max) { super("div","style","float:left;", ctx); this.id = id; this.ctx = ctx; this.maxStatus = max; init(true); t = new Timer(true); t.scheduleAtFixedRate(new TimerTask() { @Override public void run() { update(); } }, 0, 1000); } public void update() { status++; if (status >= maxStatus) { t.cancel(); } ((SimpleToadletServer) ctx.getContainer()).pushDataManager.updateElement(getUpdaterId(ctx.getUniqueId())); } @Override public void dispose() { t.cancel(); } @Override public String getUpdaterId(String requestId) { return getId(requestId,id); } public static String getId(String requestId,String id){ return Base64.encodeStandardUTF8(("test:" + requestId + "id:" + id+"gndfjkghghdfukggherugbdfkutg54ibngjkdfgyisdhiterbyjhuyfghdightw7i4tfgsdgo;dfnghsdbfuiyfgfoinfsdbufvwte4785tu4kgjdfnzukfbyfhe48e54gjfdjgbdruserigbfdnvbxdio;fherigtuseofjuodsvbyfhsd8ofghfio;")); } @Override public String getUpdaterType() { return UpdaterConstants.REPLACER_UPDATER; } @Override public void updateState(boolean initial) { children.clear(); addChild(new HTMLNode("img", "src","/imagecreator/?text="+status+"&width="+Math.min(status+30,300)+"&height="+Math.min(status+30,300))); } }