Returns the html code for a list item.<p>

@param item the list item to render
@param odd if the position is odd or even
@param isPrintable if the list is to be printed

@return html code
195342
public String htmlItem(CmsListItem item, boolean odd, boolean isPrintable) {

        StringBuffer html = new StringBuffer(1024);
        html.append("<tr ");
        if (!isPrintable) {
            html.append("class='");
            html.append(odd ? "oddrowbg" : (getWp().useNewStyle() ? "evenrowbg" : "evenrowbgnew"));
            html.append("'");
        }
        html.append(">\n");
        Iterator<CmsListColumnDefinition> itCols = m_columns.elementList().iterator();
        int width = 0;
        while (itCols.hasNext()) {
            CmsListColumnDefinition col = itCols.next();
            if (!col.isVisible() && !isPrintable) {
                continue;
            }
            if (!col.isPrintable() && isPrintable) {
                continue;
            }
            width++;
            StringBuffer style = new StringBuffer(64);
            html.append("<td");
            CmsListColumnAlignEnum align = col.getAlign();
            if ((align != CmsListColumnAlignEnum.ALIGN_LEFT) && CmsStringUtil.isNotEmpty(align.toString())) {
                style.append("text-align: ");
                style.append(col.getAlign());
                style.append("; ");
            }
            if (col.isTextWrapping()) {
                style.append("white-space: normal;");
            }
            if (isPrintable) {
                style.append("border-top: 1px solid black;");
            }
            if (style.length() > 0) {
                html.append(" style='");
                html.append(style);
                html.append("'");
            }
            html.append(">\n");
            html.append(col.htmlCell(item, isPrintable));
            html.append("</td>\n");
        }
        if (!isPrintable && hasCheckMultiActions()) {
            width++;
            html.append("\t<td class='select' style='text-align: center'>\n");
            html.append("\t\t<input type='checkbox' class='checkbox' name='listMultiAction' value='");
            html.append(item.getId());
            html.append("'>\n");
            html.append("\t</td>\n");
        }
        html.append("</tr>\n");

        Iterator<CmsListItemDetails> itDet = m_itemDetails.elementList().iterator();
        while (itDet.hasNext()) {
            CmsListItemDetails lid = itDet.next();
            if (!lid.isVisible() && !isPrintable) {
                continue;
            }
            if (!lid.isPrintable() && isPrintable) {
                continue;
            }
            if ((item.get(lid.getId()) != null)
                && CmsStringUtil.isNotEmptyOrWhitespaceOnly(item.get(lid.getId()).toString())) {
                int padCols = 0;
                itCols = m_columns.elementList().iterator();
                while (itCols.hasNext()) {
                    CmsListColumnDefinition col = itCols.next();
                    if (col.getId().equals(lid.getAtColumn())) {
                        break;
                    }
                    if (!col.isVisible() && !isPrintable) {
                        continue;
                    }
                    if (!col.isPrintable() && isPrintable) {
                        continue;
                    }
                    padCols++;
                }
                int spanCols = width - padCols;

                html.append("<tr ");
                if (!isPrintable) {
                    html.append("class='");
                    html.append(odd ? "oddrowbg" : (getWp().useNewStyle() ? "evenrowbg" : "evenrowbgnew"));
                    html.append("'");
                }
                html.append(">\n");
                if (padCols > 0) {
                    html.append("<td colspan='");
                    html.append(padCols);
                    html.append("'>&nbsp;</td>\n");
                }
                html.append("<td colspan='");
                html.append(spanCols);
                html.append("' style='padding-left: 20px; white-space:normal;'>\n");
                html.append(lid.htmlCell(item, isPrintable));
                html.append("\n</td>\n");
                html.append("\n");
                html.append("</tr>\n");
            }
        }
        return html.toString();
    }
1061096
@SuppressWarnings({"unchecked"})
    public final boolean matches(Object item) {
        return item != null
                && expectedType.isInstance(item)
                && matchesSafely((T) item);
    }
1242385
public void printHtmlOptional(PrintWriter out, String strTag, String strParams, String strData)
    {
        String strField = ((BasePanel)this.getRecordOwner()).getProperty("field");
        if ((strField != null) && (strField.length() > 0) && (m_recDetail.getField(strField) != null))
        {
            String string = m_recDetail.getField(strField).toString();
            if (strField.equalsIgnoreCase("TechnicalInfo"))
            {
                string = this.getRecordOwner().getProperty("tech");   // Special case - For Technical Info, Only output if &tech is found
                if (string != null)
                    string = "yes";
            }
            if ((string != null) && (string.length() > 0))
                this.parseHtmlData(out, strData);   // If the data is not blank, then process the HTML
            // Otherwise, don't output the HTML
        }
    }
1160890
private DetailHtmlBuilder htmlTreeNode(CallTreeNode node, DetailHtmlBuilder htmlBuilder, StringifierFactory htmlStringifierFactory) throws IOException {
		htmlBuilder.begin("li")
			.text(node.getName()).text(":&nbsp;");
		if (node.getParent()!=null) {
			htmlBuilder
				.text(htmlStringifierFactory.toString(node.getPercent())).text("%")
				.text(", ");
		}
		htmlBuilder
			.text("total&nbsp;").text(htmlStringifierFactory.toString(node.getTotal(), "Time"))
			.text(", ")
			.text("count&nbsp;").text(htmlStringifierFactory.toString(node.getSplitCount()));
		if (!node.getChildren().isEmpty()) {
			htmlBuilder.begin("ul");
			for(CallTreeNode childNode:node.getChildren()) {
				htmlTreeNode(childNode, htmlBuilder, htmlStringifierFactory);
			}
			htmlBuilder.end("ul");
		}
		return htmlBuilder.end("li");
	}
417534
public void printHtmlLogo(PrintWriter out, ResourceBundle reg)
        throws DBException
    {
        char chMenubar = HBasePanel.getFirstToUpper(this.getProperty(DBParams.LOGOS), 'H');
        if (chMenubar == 'H') if (((BasePanel)this.getScreenField()).isMainMenu())
            chMenubar = 'Y';
        if (chMenubar == 'Y')
        {
            String strNav = reg.getString("htmlLogo");
            strNav = Utility.replaceResources(strNav, reg, null, null);
            String strScreen = ((BasePanel)this.getScreenField()).getScreenURL();
            strScreen = Utility.encodeXML(strScreen);
            String strUserName = ((MainApplication)this.getTask().getApplication()).getUserName();
            if (Utility.isNumeric(strUserName))
                strUserName = DBConstants.BLANK;
            String strLanguage = this.getTask().getApplication().getLanguage(false);
            strNav = Utility.replace(strNav, HtmlConstants.URL_TAG, strScreen);
            strNav = Utility.replace(strNav, HtmlConstants.USER_NAME_TAG, strUserName);
            strNav = Utility.replace(strNav, "<language/>", strLanguage);
            this.writeHtmlString(strNav, out);
        }
    }
206530
protected function isPageIndexable(Item $item)
    {

        // TODO do we still need this?
        // shouldn't those be sorted out by the record monitor / garbage collector already?

        $isIndexable = true;
        $record = $item->getRecord();

        if (isset($GLOBALS['TCA']['pages']['ctrl']['enablecolumns']['disabled'])
            && $record[$GLOBALS['TCA']['pages']['ctrl']['enablecolumns']['disabled']]
        ) {
            $isIndexable = false;
        }

        return $isIndexable;
    }
129809
@Override
	protected String renderList( Collection<String> listItems ) {

		StringBuilder sb = new StringBuilder();
		sb.append( "\n<ul>\n" );
		for( String s : listItems ) {
			sb.append( "\t<li>" );
			sb.append( s );
			sb.append( "</li>\n" );
		}

		sb.append( "</ul>\n\n" );
		return sb.toString();
	}
397686
@Override
    public void renderItem(final Comboitem item, final Document doc) {
        item.setLabel(doc.getTitle());
    }
1033035
public boolean printData(PrintWriter out, int iHtmlAttributes)
    {
        boolean bFieldsFound = false;
        String strXml = this.getProperty(DBParams.XML);                // Html page
        if (strXml == null)
            strXml = this.getProperty(DBParams.TEMPLATE);
        if (DBConstants.BLANK.equals(strXml))
            strXml = null;
        if (strXml != null)
        {
            if ((strXml.indexOf(':') == -1) && (strXml.charAt(0) != '/'))
            {
                String strLanguage = ((BaseApplication)this.getTask().getApplication()).getLanguage(false);
                if (strLanguage == null)
                    strLanguage = Constants.BLANK;
                if (strLanguage.length() > 0)
                    strLanguage += "/";
                strXml = strLanguage + strXml;  // DBConstants.kxxx;
            }
            InputStream streamIn = this.getTask().getInputStream(strXml);
            this.parseStreamPrintHtml(out, streamIn);
        }
        else
            return super.printData(out, HtmlConstants.HTML_DISPLAY);     // DO print screen
        return bFieldsFound;
    }
174410
def make_html_list(items, tag="ul"):
    # type: (Iterable[Any], str) -> str
    
    html_list = "\n".join(
        '<li><a href="{0}">{0}</a></li>'.format(item) for item in items
    )
    return "<{0}>\n{1}\n</{0}>".format(tag, html_list)
766248
public function renderItem($item)
    {
        if (is_string($item)) {
            return $item;
        }
        if (!isset($item['label'])) {
            throw new InvalidConfigException("The 'label' option is required.");
        }
        $encodeLabel = isset($item['encode']) ? $item['encode'] : $this->encodeLabels;
        $label = $encodeLabel ? Html::encode($item['label']) : $item['label'];
        $options = ArrayHelper::getValue($item, 'options', ['class'=>'btn btn-sm']);
        $url = ArrayHelper::getValue($item, 'url', '#');

        if (isset($item['active'])) {
            $active = ArrayHelper::remove($item, 'active', false);
        } else {
            $active = $this->isItemActive($item);
        }

        if ($active) {
            Html::addCssClass($options, 'btn-info');
        } else {
            Html::addCssClass($options, 'btn-default');
        }

        return Html::a($label, $url, $options);
    }
1218165
public CmsMenuItemVisibilityMode getVisibility(I_CmsContextMenuItem item) {

        CmsMenuItemVisibilityMode result = m_visiblities.get(item);
        if (result == null) {
            result = item.getVisibility(m_context);
            m_visiblities.put(item, result);
        }
        return result;
    }
412961
public String getIconPath(CmsListItem item) {

        try {
            CmsUser user = getCms().readUser((String)item.get(LIST_COLUMN_LOGIN));
            if (user.getOuFqn().equals(getParamOufqn())) {
                return A_CmsUsersList.PATH_BUTTONS + "user.png";
            } else {
                return A_CmsUsersList.PATH_BUTTONS + "user_other_ou.png";
            }
        } catch (CmsException e) {
            return A_CmsUsersList.PATH_BUTTONS + "user.png";
        }
    }
694478
@Override
    public int getItemType(BaseCell item) {
        // normally we use item.type as identity key
        // note, this now only be executed in MainThread, atomic not actually needed
        String stringType = item.stringType;

        // if the item is a keyType, which means item.type is not the key, use it.
        // when data custom the typeKey, we ignore the result of render service.
        if (!TextUtils.isEmpty(item.typeKey)) {
            // we should use getTypeKey()
            stringType = item.typeKey;
        } else if (item.componentInfo != null) {
            // in MVHelper#isValid ensured a componentInfo's renderService could not be null, so just use it!
            // if render service custom item type and not empty, use it as itemType
            stringType += item.componentInfo.getVersion() + item.componentInfo.getType();
            String renderType = mMvHelper.renderManager().getRenderService(item.componentInfo.getType()).getItemViewType(stringType, item.componentInfo);
            if (!TextUtils.isEmpty(renderType)) {
                stringType = renderType;
            }
        }

        if (!mStrKeys.containsKey(stringType)) {
            int newType = mTypeId.getAndIncrement();
            mStrKeys.put(stringType, newType);
            mId2Types.put(newType, item.stringType);
            mLayoutManager.getRecyclerView().getRecycledViewPool().setMaxRecycledViews(newType, 20);
        }
        return mStrKeys.get(stringType);
    }
123440
private String getCustomFieldOutlineCodeValue(Var2Data varData, Var2Data outlineCodeVarData, Integer id)
   {
      String result = null;

      int uniqueId = id.intValue();
      if (uniqueId == 0)
      {
         return "";
      }

      CustomFieldValueItem item = m_file.getCustomFields().getCustomFieldValueItemByUniqueID(uniqueId);
      if (item != null)
      {
         Object value = item.getValue();
         if (value instanceof String)
         {
            result = (String) value;
         }

         if (result != null && !NumberHelper.equals(id, item.getParent()))
         {
            String result2 = getCustomFieldOutlineCodeValue(varData, outlineCodeVarData, item.getParent());
            if (result2 != null && !result2.isEmpty())
            {
               result = result2 + "." + result;
            }
         }
      }

      return result;
   }
929788
@Override
    public int getItemType(BaseCell item) {
        // if the item is a keyType, which means item.type is not the key
        int version = mViewManager != null ? mViewManager.getViewVersion(item.stringType) : 0;
        if (!TextUtils.isEmpty(item.typeKey)) {
            // we should use getTypeKey()
            String typeKey = item.typeKey + version;
            if (!mStrKeys.containsKey(typeKey)) {
                int newType = mTypeId.getAndIncrement();
                mStrKeys.put(typeKey, newType);
                mId2Types.put(newType, item.stringType);
            }

            return mStrKeys.get(typeKey).intValue();
        } else {
            // otherwise, use item.type as identity key
            // note, this now only be executed in MainThread, atomic not actually needed
            String stringType = item.stringType + version;
            if (!mStrKeys.containsKey(stringType)) {
                int newType = mTypeId.getAndIncrement();
                mStrKeys.put(stringType, newType);
                mId2Types.put(newType, item.stringType);
            }
            return mStrKeys.get(stringType).intValue();
        }
    }
322081
public static List<CmsEditableDataJSO> getAllEditableDataForPage() {

        List<Element> elems = CmsDomUtil.getElementsByClass(CmsGwtConstants.CLASS_EDITABLE, Tag.div);
        List<CmsEditableDataJSO> result = Lists.newArrayList();
        for (Element elem : elems) {
            String jsonData = elem.getAttribute(CmsGwtConstants.ATTR_DATA_EDITABLE);
            CmsEditableDataJSO data = CmsEditableDataJSO.parseEditableData(jsonData);
            result.add(data);
        }
        return result;
    }