code: @Override
  	public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
  		if (!component.isRendered()) {
  			return;
  		}
  		DropMenu dropMenu = (DropMenu) component;
  		ResponseWriter rw = context.getResponseWriter();
  
  		rw.endElement("ul");
  		boolean isFlyOutMenu = isFlyOutMenu(component);
  		String htmlTag = determineHtmlTag(component, isFlyOutMenu);
  		rw.endElement(htmlTag);
  
  		Tooltip.activateTooltips(context, dropMenu);
  	}
docs: This methods generates the HTML code of the current b:dropMenu. <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:dropMenu.
  @throws IOException
  thrown if something goes wrong when writing the HTML code.