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

📄 uicomponentbase.java

📁 RESIN 3.2 最新源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
      else if (parent instanceof UIComponentBase) {	((UIComponentBase) parent).removeChild(child);      }      else {	parent.getChildren().remove(child);      }      child.setParent(_parent);    }    public int size()    {      return _list.size();    }    public boolean isEmpty()    {      return _list.isEmpty();    }    public Iterator<UIComponent> iterator()    {      return _list.iterator();    }  }  public String toString()  {    return getClass().getName() + "[" + getId() + "]";  }  private static class ComponentMap extends HashMap<String,UIComponent>  {    private UIComponent _parent;    ComponentMap(UIComponent parent)    {      _parent = parent;    }    @Override    public UIComponent put(String key, UIComponent o)    {      if (key == null)	throw new NullPointerException();            UIComponent child = (UIComponent) o;      UIComponent parent = child.getParent();      if (parent instanceof UIComponentBase) {	((UIComponentBase) parent).removeChild(child);      }      child.setParent(_parent);      UIComponent oldChild = super.put(key, o);      if (oldChild != null && oldChild != o) {	oldChild.setParent(null);      }      return oldChild;    }    @Override    public UIComponent remove(Object key)    {      if (key == null)	throw new NullPointerException();      UIComponent oldChild = super.remove(key);      if (oldChild != null) {	oldChild.setParent(null);      }      return oldChild;    }  }  private static class FacetAndChildIterator    implements Iterator<UIComponent> {    private final UIComponent []_children;    private int _index;    FacetAndChildIterator(UIComponent []children)    {      _children = children;    }    public boolean hasNext()    {      return _index < _children.length;    }    public UIComponent next()    {      if (_index < _children.length)	return _children[_index++];      else	return null;    }    public void remove()    {      throw new UnsupportedOperationException();    }  }  private static class AttributeMap extends AbstractMap<String,Object>    implements Serializable  {    private final transient HashMap<String,Property> _propertyMap;    private HashMap<String,Object> _extMap;    private Object _obj;    AttributeMap(Object obj)    {      _obj = obj;            Class cl = obj.getClass();            synchronized (cl) {	HashMap<String,Property> propMap = _compMap.get(cl);	if (propMap == null) {	  propMap = introspectComponent(cl);	  _compMap.put(cl, propMap);	}              _propertyMap = propMap;      }    }    Object saveState(FacesContext context)    {      return _extMap;    }    void restoreState(FacesContext context, Object state)    {      _extMap = (HashMap<String,Object>) state;    }    public boolean containsKey(String name)    {      Property prop = _propertyMap.get(name);      if (prop != null)	return false;      else if (_extMap != null)	return _extMap.containsKey(name);      else	return false;    }    @Override    public Object get(Object v)    {      String name = (String) v;            Property prop = _propertyMap.get(name);      if (prop == null) {	if (_extMap != null)	  return _extMap.get(name);	else {	  // XXX: ValueExpression?	  return null;	}      }      Method getter = prop.getGetter();            if (getter == null)	throw new IllegalArgumentException(name + " is not readable");      try {	return getter.invoke(_obj);      } catch (InvocationTargetException e) {	throw new FacesException(e.getCause());      } catch (Exception e) {	throw new FacesException(e);      }    }    @Override    public Object put(String name, Object value)    {      if (name == null || value == null)	throw new NullPointerException();      Property prop = _propertyMap.get(name);      if (prop == null) {	if (_extMap == null)	  _extMap = new HashMap<String,Object>(8);	return _extMap.put(name, value);      }      if (prop.getSetter()  == null)	throw new IllegalArgumentException(name + " is not writable");      try {	return prop.getSetter().invoke(_obj, value);      } catch (Exception e) {	throw new FacesException(e);      }    }    @Override    public Object remove(Object name)    {      Property prop = _propertyMap.get(name);      if (prop == null) {	if (_extMap != null)	  return _extMap.remove(name);	else	  return null;      }      throw new IllegalArgumentException(name + " cannot be removed");    }    public Set<Map.Entry<String,Object>> entrySet()    {      if (_extMap != null)	return _extMap.entrySet();      else	return Collections.EMPTY_SET;    }    private static HashMap<String,Property> introspectComponent(Class cl)    {      HashMap<String,Property> map = new HashMap<String,Property>();      try {        BeanInfo info = Introspector.getBeanInfo(cl, Object.class);        for (PropertyDescriptor propDesc : info.getPropertyDescriptors()) {  	  Property prop = new Property(propDesc.getReadMethod(),				       propDesc.getWriteMethod());	  map.put(propDesc.getName(), prop);        }      } catch (Exception e) {        throw new FacesException(e);      }      return map;    }  }  private static class Property {    private final Method _getter;    private final Method _setter;    Property(Method getter, Method setter)    {      _getter = getter;      _setter = setter;    }    public Method getGetter()    {      return _getter;    }    public Method getSetter()    {      return _setter;    }  }  private static class ValueExpressionAdapter    extends ValueExpression    implements StateHolder  {    private ValueBinding _binding;    private boolean _isTransient;    ValueExpressionAdapter()    {    }    ValueExpressionAdapter(ValueBinding binding)    {      _binding = binding;    }    ValueBinding getBinding()    {      return _binding;    }    public Object getValue(ELContext elContext)    {      return _binding.getValue(FacesContext.getCurrentInstance());    }    public void setValue(ELContext elContext, Object value)    {      _binding.setValue(FacesContext.getCurrentInstance(), value);    }    public boolean isReadOnly(ELContext elContext)    {      return _binding.isReadOnly(FacesContext.getCurrentInstance());    }    public Class getType(ELContext elContext)    {      return _binding.getType(FacesContext.getCurrentInstance());    }    public Class getExpectedType()    {      return Object.class;    }    public boolean isLiteralText()    {      return false;    }    public int hashCode()    {      return _binding.getExpressionString().hashCode();    }    public boolean equals(Object o)    {      if (! (o instanceof ValueExpression))	return false;      ValueExpression expr = (ValueExpression) o;            return getExpressionString().equals(expr.getExpressionString());    }    public String getExpressionString()    {      return _binding.getExpressionString();    }    public Object saveState(FacesContext context)    {      return saveAttachedState(context, _binding);    }    public void restoreState(FacesContext context, Object state)    {      _binding = (ValueBinding) restoreAttachedState(context, state);    }    public boolean isTransient()    {      return _isTransient;    }    public void setTransient(boolean isTransient)    {      _isTransient = isTransient;    }    public String toString()    {      return "ValueExpressionAdapter[" + getExpressionString() + "]";    }  }  private static class ValueBindingAdapter extends ValueBinding  {    private final ValueExpression _expr;    ValueBindingAdapter(ValueExpression expr)    {      _expr = expr;    }    public Object getValue(FacesContext context)      throws EvaluationException    {      return _expr.getValue(context.getELContext());    }    public void setValue(FacesContext context, Object value)      throws EvaluationException    {      _expr.setValue(context.getELContext(), value);    }    public boolean isReadOnly(FacesContext context)      throws EvaluationException    {      return _expr.isReadOnly(context.getELContext());    }    public Class getType(FacesContext context)      throws EvaluationException    {      return _expr.getType(context.getELContext());    }    public String getExpressionString()    {      return _expr.getExpressionString();    }    public String toString()    {      return "ValueBindingAdapter[" + _expr + "]";    }  }  static class IOExceptionWrapper extends IOException {    private Throwable _cause;    IOExceptionWrapper(String msg, Throwable cause)    {      super(msg);      _cause = cause;    }    public Throwable getCause()    {      return _cause;    }  }  private static final void addRendererCode(String renderer)  {    if (renderer == null || _rendererToCodeMap.get(renderer) != null)      return;        Integer code = _rendererToCodeMap.size() + 1;        _rendererToCodeMap.put(renderer, code);    _codeToRendererMap.put(code, renderer);  }    static {    addRendererCode(new UIColumn().getRendererType());    addRendererCode(new UICommand().getRendererType());    addRendererCode(new UIData().getRendererType());    addRendererCode(new UIForm().getRendererType());    addRendererCode(new UIGraphic().getRendererType());    addRendererCode(new UIInput().getRendererType());    addRendererCode(new UIMessage().getRendererType());    addRendererCode(new UIMessages().getRendererType());    addRendererCode(new UINamingContainer().getRendererType());    addRendererCode(new UIOutput().getRendererType());    addRendererCode(new UIPanel().getRendererType());    addRendererCode(new UIParameter().getRendererType());    addRendererCode(new UISelectBoolean().getRendererType());    addRendererCode(new UISelectItem().getRendererType());    addRendererCode(new UISelectItems().getRendererType());    addRendererCode(new UISelectMany().getRendererType());    addRendererCode(new UISelectOne().getRendererType());    addRendererCode(new UIViewRoot().getRendererType());        addRendererCode(new HtmlColumn().getRendererType());    addRendererCode(new HtmlCommandButton().getRendererType());    addRendererCode(new HtmlCommandLink().getRendererType());    addRendererCode(new HtmlDataTable().getRendererType());    addRendererCode(new HtmlForm().getRendererType());    addRendererCode(new HtmlGraphicImage().getRendererType());    addRendererCode(new HtmlInputHidden().getRendererType());    addRendererCode(new HtmlInputSecret().getRendererType());    addRendererCode(new HtmlInputText().getRendererType());    addRendererCode(new HtmlInputTextarea().getRendererType());    addRendererCode(new HtmlMessage().getRendererType());    addRendererCode(new HtmlMessages().getRendererType());    addRendererCode(new HtmlOutputFormat().getRendererType());    addRendererCode(new HtmlOutputLabel().getRendererType());    addRendererCode(new HtmlOutputLink().getRendererType());    addRendererCode(new HtmlOutputText().getRendererType());    addRendererCode(new HtmlPanelGrid().getRendererType());    addRendererCode(new HtmlPanelGroup().getRendererType());    addRendererCode(new HtmlSelectBooleanCheckbox().getRendererType());    addRendererCode(new HtmlSelectManyCheckbox().getRendererType());    addRendererCode(new HtmlSelectManyListbox().getRendererType());    addRendererCode(new HtmlSelectManyMenu().getRendererType());    addRendererCode(new HtmlSelectOneListbox().getRendererType());    addRendererCode(new HtmlSelectOneMenu().getRendererType());    addRendererCode(new HtmlSelectOneRadio().getRendererType());  }}

⌨️ 快捷键说明

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