code: @Override
  	public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
  	    if (!component.isRendered()) {
  	        return;
  	    }
  		Thumbnail thumbnail = (Thumbnail) component;
  		ResponseWriter rw = context.getResponseWriter();
  		String clientId = thumbnail.getClientId();
  
  		Tooltip.generateTooltip(context, thumbnail, rw);
  
                  beginResponsiveWrapper(component, rw);
                  
                  rw.startElement("div", thumbnail);
                  rw.writeAttribute("id", clientId, "id");
                  Tooltip.generateTooltip(context, thumbnail, rw);
  		String style = thumbnail.getStyle();
  		if (null != style) {
  			rw.writeAttribute("style", style, null);
  		}
  		String styleClass = thumbnail.getStyleClass();
  		if (null == styleClass)
  			styleClass = "thumbnail";
  		else
  			styleClass = "thumbnail " + styleClass;
  
  		rw.writeAttribute("class",  styleClass, "class");
  	}
docs: This methods generates the HTML code of the current b:thumbnail.
  <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:thumbnail.
  @throws IOException thrown if something goes wrong when writing the HTML code.