package org.zkoss.zktest.bind; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.Page; import org.zkoss.zk.ui.metainfo.ComponentInfo; import org.zkoss.zk.ui.sys.IdGenerator; public class SequenceIdGenerator implements IdGenerator{ public String nextComponentUuid(Desktop desktop, Component comp, ComponentInfo info) { Map<String,Integer> idcmap = (Map<String,Integer>)desktop.getAttribute("__sidg_idhash"); if(idcmap==null){ idcmap = new HashMap<String,Integer>(); desktop.setAttribute("__sidg_idhash", idcmap); } String name = comp.getClass().getSimpleName().toLowerCase(java.util.Locale.ENGLISH); if(name.length()>6){ name = name.substring(0,6); } Integer n = idcmap.get(name); if(n==null){ n = new Integer(0); } int i = n.intValue()+1; idcmap.put(name, i); return name + "_" + i; } public String nextDesktopId(Desktop desktop) { HttpServletRequest req = (HttpServletRequest)Executions.getCurrent().getNativeRequest(); String dtid = req.getParameter("tdtid"); if(dtid!=null){ // System.out.println(" use client dtid "+dtid); } return dtid==null?null:dtid; } public String nextPageUuid(Page page) { // TODO Auto-generated method stub return null; } }