1 package com.icesoft.faces.context; 2 3 import org.w3c.dom.Document ; 4 import org.w3c.dom.Element ; 5 6 import java.io.Serializable ; 7 import java.util.Map ; 8 import java.util.Random ; 9 10 public class ElementController implements Serializable { 11 private transient final static Random RANDOM = new Random (); 12 private transient String focusCode = ""; 13 private transient String selectCode = ""; 14 private transient String clickCode = ""; 15 16 public static ElementController from(Map session) { 17 String key = ElementController.class.toString(); 18 if (!session.containsKey(key)) { 19 session.put(key, new ElementController()); 20 } 21 22 return (ElementController) session.get(key); 23 } 24 25 public void focus(String elementID) { 26 focusCode = "'" + elementID + "'.asExtendedElement().focus();" + randomComment(); 27 } 28 29 public void select(String elementID) { 30 selectCode = "'" + elementID + "'.asExtendedElement().select();" + randomComment(); 31 } 32 33 public void click(String elementID) { 34 clickCode = "'" + elementID + "'.asExtendedElement().click();" + randomComment(); 35 } 36 37 private String randomComment() { 38 return "//" + RANDOM.nextInt(99999); 39 } 40 41 public void addInto(Element element) { 42 Document document = element.getOwnerDocument(); 43 44 Element focusElement = (Element ) element.appendChild(document.createElement("script")); 45 focusElement.setAttribute("id", "focus-code"); 46 focusElement.appendChild(document.createTextNode(focusCode)); 47 48 Element selectElement = (Element ) element.appendChild(document.createElement("script")); 49 selectElement.setAttribute("id", "select-code"); 50 selectElement.appendChild(document.createTextNode(selectCode)); 51 52 Element clickElement = (Element ) element.appendChild(document.createElement("script")); 53 clickElement.setAttribute("id", "click-code"); 54 clickElement.appendChild(document.createTextNode(clickCode)); 55 } 56 } 57 | Popular Tags |