⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uicomponentbase.java

📁 RESIN 3.2 最新源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
	array[count++] = _facesListeners[i];      }    }    return array;  }  protected void removeFacesListener(FacesListener listener)  {    if (listener == null)      throw new NullPointerException();    int length = _facesListeners.length;    for (int i = 0; i < length; i++) {      if (listener.equals(_facesListeners[i])) {	FacesListener []newListeners = new FacesListener[length - 1];	System.arraycopy(_facesListeners, 0, newListeners, 0, i);	System.arraycopy(_facesListeners, i + 1, newListeners, i,			 length - i - 1);	_facesListeners = newListeners;	return;      }    }  }  public void queueEvent(FacesEvent event)  {    UIComponent parent = getParent();    if (parent != null)      parent.queueEvent(event);    else      throw new IllegalStateException();  }  public void broadcast(FacesEvent event)    throws AbortProcessingException  {    for (int i = 0; i < _facesListeners.length; i++) {      if (event.isAppropriateListener(_facesListeners[i])) {	event.processListener(_facesListeners[i]);      }    }  }  //  // decoding  //  /**   * Recursively calls the decodes for any children, then calls   * decode().   */  public void processDecodes(FacesContext context)  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    for (UIComponent child : getFacetsAndChildrenArray()) {      child.processDecodes(context);    }    try {      decode(context);    } catch (RuntimeException e) {      log.log(Level.WARNING, e.toString(), e);            context.renderResponse();      throw e;    }  }  /**   * Decodes the value of the component.   */  @Override  public void decode(FacesContext context)  {    Renderer renderer = getRenderer(context);    if (renderer != null)      renderer.decode(context, this);  }  //  // Validation  //  @Override  public void processValidators(FacesContext context)  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    for (UIComponent child : getFacetsAndChildrenArray()) {      child.processValidators(context);    }  }  //  // Model updates  //  public void processUpdates(FacesContext context)  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    for (UIComponent child : getFacetsAndChildrenArray()) {      child.processUpdates(context);    }  }  //  // Encoding  //  /**   * Starts the output rendering for the encoding.   */  public void encodeBegin(FacesContext context)    throws IOException  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    try {      Renderer renderer = getRenderer(context);      if (renderer != null)	renderer.encodeBegin(context, this);    } catch (IOException e) {      if (e.getMessage().startsWith("id="))	throw e;      else	throw new IOExceptionWrapper("id=" + getClientId(context)				     + " " + e.toString(), e);    } catch (RuntimeException e) {      if (e.getMessage() != null	  && e.getMessage().startsWith("id="))	throw e;      else	throw new FacesException("id=" + getClientId(context)				 + " " + e.toString(), e);    }  }  public void encodeChildren(FacesContext context)    throws IOException  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    Renderer renderer = getRenderer(context);    if (renderer != null)      renderer.encodeChildren(context, this);  }  public void encodeEnd(FacesContext context)    throws IOException  {    if (context == null)      throw new NullPointerException();    if (! isRendered())      return;    Renderer renderer = getRenderer(context);    if (renderer != null)      renderer.encodeEnd(context, this);  }  @Override  protected FacesContext getFacesContext()  {    return FacesContext.getCurrentInstance();  }  @Override  protected Renderer getRenderer(FacesContext context)  {    String rendererType = getRendererType();    if (rendererType == null)      return null;        RenderKit renderKit = context.getRenderKit();    if (renderKit != null)      return renderKit.getRenderer(getFamily(), getRendererType());    else      return null;  }  //  // Save the state of the component  //  public Object processSaveState(FacesContext context)  {    if (context == null)      throw new NullPointerException();    if (isTransient())      return null;        UIComponent []facetsAndChildren = getFacetsAndChildrenArray();    Object []childSaveState = null;    int childSize = getChildCount();    int facetSize = getFacetCount();    int k = 1;          if (childSize > 0) {      List<UIComponent> children = getChildren();            for (int i = 0; i < childSize; i++) {	UIComponent child = children.get(i);	if (child.isTransient())	  continue;		k++;		Object childState = child.processSaveState(context);	if (childState != null) {	  if (childSaveState == null)	    childSaveState = new Object[1 + childSize + 2 * facetSize];      	  childSaveState[k - 1] = childState;	}      }    }    if (facetSize > 0) {      Map<String,UIComponent> facetMap = getFacets();      for (Map.Entry<String,UIComponent> entry : facetMap.entrySet()) {	UIComponent facet = entry.getValue();	if (facet.isTransient())	  continue;		k += 2;	Object facetState = facet.processSaveState(context);	if (facetState != null) {	  if (childSaveState == null)	    childSaveState = new Object[1 + childSize + 2 * facetSize];      	  childSaveState[k - 2] = entry.getKey();	  childSaveState[k - 1] = facetState;	}      }    }    Object selfSaveState = saveState(context);    if (childSaveState != null) {      childSaveState[0] = selfSaveState;      return childSaveState;    }    else      return new Object[] { selfSaveState };  }  public void processRestoreState(FacesContext context,				  Object state)  {    if (context == null)      throw new NullPointerException();    if (isTransient())      return;    UIComponent []facetsAndChildren = getFacetsAndChildrenArray();    Object []baseState = (Object []) state;    if (baseState == null)      return;    restoreState(context, baseState[0]);    if (baseState.length == 1)      return;    int childSize = getChildCount();    int facetSize = getFacetCount();    int k = 1;          if (childSize > 0) {      List<UIComponent> children = getChildren();            for (int i = 0; i < childSize; i++) {	UIComponent child = children.get(i);	if (child.isTransient()) {	  continue;	}		k++;		Object childState;		if (k <= baseState.length)	  childState = baseState[k - 1];	else	  childState = null;	if (childState != null)	  child.processRestoreState(context, childState);      }    }          if (facetSize > 0) {      Map<String,UIComponent> facetMap = getFacets();      for (; k < baseState.length; k += 2) {	String facetName = (String) baseState[k];	Object facetState = baseState[k + 1];	if (facetName != null && facetState != null) {	  UIComponent facet = facetMap.get(facetName);	  if (facet != null)	    facet.processRestoreState(context, facetState);	}      }    }  }    public Object saveState(FacesContext context)  {    Integer rendererCode = _rendererToCodeMap.get(_rendererType);    String rendererString = null;    if (rendererCode == null)      rendererString = _rendererType;    Object []savedListeners = saveListeners(context);    Object []savedBindings = saveBindings(context);        return new Object[] {      _id,      savedBindings,      _isRendered,      rendererCode,      rendererString,      (_attributeMap != null ? _attributeMap.saveState(context) : null),      savedListeners,    };  }  private Object []saveBindings(FacesContext context) {    if (_bindings == null)      return null;    Set<String> keys = _bindings.keySet();    Object [] result = new Object [keys.size() * 2];    int index = 0;    for (String key : keys) {      result [index++] = key;      ValueExpression valueExpression = _bindings.get(key);      result [index++] = saveAttachedState(context, valueExpression);    }    return result;  }  private void restoreBindings(FacesContext context, Object stateObj) {    Object [] state = (Object []) stateObj;    if (state.length == 0) return;    _bindings = new HashMap<String, ValueExpression>();    for (int i = 0; i < state.length / 2; i++) {      int index = i * 2;      String key = (String) state[index];      ValueExpression valueExpression         = (ValueExpression) restoreAttachedState(context, state [index + 1]);      _bindings.put(key, valueExpression);    }  }  private Object []saveListeners(FacesContext context)  {    if (_facesListeners.length > 0) {      Object []savedListeners = new Object[2 * _facesListeners.length];      for (int i = 0; i < _facesListeners.length; i++) {	FacesListener listener = _facesListeners[i];	int index = 2 * i;		savedListeners[index] = listener.getClass();	if (listener instanceof StateHolder) {	  StateHolder holder = (StateHolder) listener;	  	  savedListeners[index + 1] = holder.saveState(context);	}      }      return savedListeners;    }    return null;  }  public void restoreState(FacesContext context, Object stateObj)  {    Object []state = (Object []) stateObj;    _id = (String) state[0];    Object []savedBindings = (Object[]) state[1];    if (savedBindings != null)      restoreBindings(context, savedBindings);    if (_bindings != null) {      for (Map.Entry<String,ValueExpression> entry : _bindings.entrySet()) {	setValueExpression(entry.getKey(), entry.getValue());      }    }    _isRendered = (Boolean) state[2];    Integer rendererCode = (Integer) state[3];    String rendererString = (String) state[4];    if (rendererCode != null)      _rendererType = _codeToRendererMap.get(rendererCode);    else      _rendererType = rendererString;	    Object extMapState = state[5];    if (extMapState != null) {      if (_attributeMap == null)	_attributeMap = new AttributeMap(this);      _attributeMap.restoreState(context, extMapState);    }    Object []savedListeners = (Object []) state[6];    restoreListeners(context, savedListeners);  }  private void restoreListeners(FacesContext context, Object []savedListeners)  {    if (savedListeners != null) {      _facesListeners = new FacesListener[savedListeners.length / 2];      for (int i = 0; i < _facesListeners.length; i++) {	int index = 2 * i;		Class cl = (Class) savedListeners[index];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -