code: @Override
  	public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
  		if (!component.isRendered()) {
  			return;
  		}
  		FlyOutMenu flyOutMenu = (FlyOutMenu) component;
  		ResponseWriter rw = context.getResponseWriter();
  		String clientId = flyOutMenu.getClientId();
  
  		// put custom code here
  		// Simple demo widget that simply renders every attribute value
  		rw.startElement("ul", flyOutMenu);
  		rw.writeAttribute("id", clientId, "id");
  
  		Tooltip.generateTooltip(context, flyOutMenu, rw);
  
  		String styleClass = flyOutMenu.getStyleClass();
  		if (null == styleClass)
  			styleClass = "dropdown-menu";
  		else
  			styleClass = "dropdown-menu " + flyOutMenu.getStyleClass();
  		writeAttribute(rw, "class", styleClass);
  		String width = flyOutMenu.getWidth();
  		addUnitToWidthIfNecessary(width);
  		String style = flyOutMenu.getStyle();
  		if (null == style)
  			style = "display: block; position: static; margin-bottom: 5px; *width: "+width;
  		else
  			style = "display: block; position: static; margin-bottom: 5px; *width: " + width +";" + flyOutMenu.getStyle();
  		writeAttribute(rw, "style", style);
  	}
docs: This methods generates the HTML code of the current b:flyOutMenu.
  <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:flyOutMenu.
  @throws IOException
  thrown if something goes wrong when writing the HTML code.