1 33 34 package com.icesoft.faces.component.ext.renderkit; 35 36 import com.icesoft.faces.component.IceExtended; 37 import com.icesoft.faces.component.ext.HtmlInputText; 38 import com.icesoft.faces.component.ext.KeyEvent; 39 import com.icesoft.faces.component.ext.taglib.Util; 40 import org.w3c.dom.Element ; 41 42 import javax.faces.component.UIComponent; 43 import javax.faces.context.FacesContext; 44 import javax.faces.event.ActionEvent; 45 import java.util.HashSet ; 46 47 public class TextRenderer 48 extends com.icesoft.faces.renderkit.dom_html_basic.TextRenderer { 49 protected void addJavaScript(FacesContext facesContext, 50 UIComponent uiComponent, Element root, 51 String currentValue, HashSet excludes) { 52 excludes.add("onkeypress"); 54 excludes.add("onfocus"); 55 excludes.add("onblur"); 56 57 String onkeypress = ((HtmlInputText)uiComponent).getOnkeypress() != null ? ((HtmlInputText)uiComponent).getOnkeypress() : ""; 58 String onfocus = ((HtmlInputText)uiComponent).getOnfocus() != null ? ((HtmlInputText)uiComponent).getOnfocus() : ""; 59 String onblur = ((HtmlInputText)uiComponent).getOnblur() != null ? ((HtmlInputText)uiComponent).getOnblur() : ""; 60 61 root.setAttribute("onkeypress", onkeypress + this.ICESUBMIT); 63 root.setAttribute("onfocus", onfocus + "setFocus(this.id);"); 65 root.setAttribute("onblur", onblur + "setFocus('');"); 67 68 if (((IceExtended) uiComponent).getPartialSubmit()) { 69 root.setAttribute("onblur", onblur + "setFocus('');" + 70 "iceSubmitPartial(form,this,event); return false;"); 71 } 72 73 } 74 75 public void decode(FacesContext facesContext, UIComponent uiComponent) { 76 super.decode(facesContext, uiComponent); 77 Object focusId = facesContext.getExternalContext() 78 .getRequestParameterMap().get(FormRenderer.getFocusElementId()); 79 if (focusId != null) { 80 if (focusId.toString() 81 .equals(uiComponent.getClientId(facesContext))) { 82 ((HtmlInputText) uiComponent).setFocus(true); 83 } else { 84 ((HtmlInputText) uiComponent).setFocus(false); 85 } 86 } 87 88 if (Util.isEventSource(facesContext, uiComponent)) { 89 queueEventIfEnterKeyPressed(facesContext, uiComponent); 90 } 91 } 92 93 94 public void queueEventIfEnterKeyPressed(FacesContext facesContext, 95 UIComponent uiComponent) { 96 try { 97 KeyEvent keyEvent = 98 new KeyEvent(uiComponent, facesContext.getExternalContext() 99 .getRequestParameterMap()); 100 if (keyEvent.getKeyCode() == KeyEvent.CARRIAGE_RETURN) { 101 uiComponent.queueEvent(new ActionEvent(uiComponent)); 102 } 103 } catch (Exception e) { 104 e.printStackTrace(); 105 } 106 } 107 108 } 109 | Popular Tags |