1 16 package com.blandware.atleap.webapp.taglib.core.util; 17 18 import com.blandware.atleap.common.util.StringUtil; 19 import com.blandware.atleap.webapp.util.core.WebappConstants; 20 21 import java.io.Serializable ; 22 import java.util.HashMap ; 23 import java.util.Iterator ; 24 import java.util.Map ; 25 26 33 public class JavaScriptUtil { 34 35 38 public static final String EVENT_TYPE_ONCLICK = "onclick"; 39 40 43 public static final String EVENT_TYPE_ONDBLCLICK = "ondblick"; 44 45 48 public static final String EVENT_TYPE_ONKEYUP = "onkeyup"; 49 50 53 public static final String EVENT_TYPE_ONKEYDOWN = "onkeydown"; 54 55 58 public static final String EVENT_TYPE_ONKEYPRESS = "onkeypress"; 59 60 63 public static final String EVENT_TYPE_ONMOUSEMOVE = "onmousemove"; 64 65 68 public static final String EVENT_TYPE_ONMOUSEUP = "onmouseup"; 69 70 73 public static final String EVENT_TYPE_ONMOUSEDOWN = "onmousedown"; 74 75 78 public static final String EVENT_TYPE_ONMOUSEOVER = "onmouseover"; 79 80 83 public static final String EVENT_TYPE_ONMOUSEOUT = "onmouseout"; 84 85 88 public static final String EVENT_TYPE_ONFOCUS = "onfocus"; 89 90 93 public static final String EVENT_TYPE_ONBLUR = "onblur"; 94 95 102 public static String createLinkAsLayer(String url, String body, 103 String styleClass, String highlightedStyleClass) { 104 HTMLElement div = new HTMLElement("div"); 105 div.putAttribute("class", WebappConstants.CONTEXT_MENU_ITEM_STYLE_CLASS); 106 div.putAttribute("onmouseover", "activateContextMenuItem(this, '" + highlightedStyleClass + "');"); 107 div.putAttribute("onmouseout", "deactivateContextMenuItem(this, '" + styleClass + "');"); 108 div.putAttribute("url", url); 109 div.putAttribute(EVENT_TYPE_ONCLICK, "onMenuItemClick(this);"); 110 div.setBodyContent(body); 111 return div.toString(); 112 } 113 114 117 private JavaScriptUtil() { 118 } 119 120 125 public static class HTMLElement implements Serializable { 126 127 130 protected String name; 131 132 135 protected Map attributes = new HashMap (); 136 137 140 protected String bodyContent; 141 142 147 public HTMLElement(String name) { 148 this(name, new HashMap ()); 149 } 150 151 157 public HTMLElement(String name, Map attributes) { 158 if ( name == null || name.trim().length() == 0 ) { 159 throw new IllegalArgumentException ("Name must be non-null and non-empty string"); 160 } 161 this.name = name.trim(); 162 if ( attributes != null ) { 163 this.attributes = attributes; 164 } 165 } 166 167 173 public void putAttribute(String name, String value) { 174 attributes.put(name, value); 175 } 176 177 182 public void removeAttribute(String name) { 183 attributes.remove(name); 184 } 185 186 191 public void setBodyContent(String bodyContent) { 192 this.bodyContent = bodyContent; 193 } 194 195 201 public String toString() { 202 return toString(false); 203 } 204 205 212 public String toString(boolean escapeValues) { 213 StringBuffer element = new StringBuffer (); 214 element.append("<").append(name); 215 216 for ( Iterator i = attributes.entrySet().iterator(); i.hasNext(); ) { 218 Map.Entry attribute = (Map.Entry ) i.next(); 219 String name = (String ) attribute.getKey(); 220 String value = (String ) attribute.getValue(); 221 if ( escapeValues ) { 222 value = StringUtil.escape(value); 223 } 224 element.append(" ").append(name).append("=\"").append(value).append("\""); 225 } 226 227 element.append(">"); 228 229 if ( bodyContent != null ) { 231 element.append(bodyContent); 232 } 233 234 element.append("</").append(name).append(">"); 236 237 return element.toString(); 238 } 239 } 240 } 241 | Popular Tags |