code: @Override
  	public void encodeEnd(FacesContext context, UIComponent component)
  			throws IOException {
  		if (!component.isRendered()) {
  			return;
  		}
  		ResponseWriter rw = context.getResponseWriter();
  
  		rw.endElement("div"); // modal-body
                  
                  String cid=component.getClientId(context);
  
  		UIComponent foot = component.getFacet("footer");
  		if (foot != null) {
  			rw.startElement("div", component); // modal-footer
                          rw.writeAttribute("id", cid+"_footer", "id");
  			rw.writeAttribute("class", "modal-footer", "class");
  			foot.encodeAll(context);
  
  			rw.endElement("div"); // modal-footer
  		}
  		rw.endElement("div"); // modal-content
  		rw.endElement("div"); // modal-dialog
  		rw.endElement("div"); // modal
  		initModal(rw, cid);
  	}
docs: This methods generates the HTML code of the current b:modal.
  <code>encodeBegin</code> generates the start of the component. After the,
  the JSF framework calls <code>encodeChildren()</code> to generate the
  HTML code between the beginning and the end of the component. For
  instance, in the case of a panel component the content of the panel is
  generated by <code>encodeChildren()</code>. After that,
  <code>encodeEnd()</code> is called to generate the rest of the HTML code.
  
  @param context
  the FacesContext.
  @param component
  the current b:modal.
  @throws IOException
  thrown if something goes wrong when writing the HTML code.