private void updateItem(VCheckBox widget, JsonObject item, boolean requireInitialization) {
    String itemHtml = item.getString(ListingJsonConstants.JSONKEY_ITEM_VALUE);
    if (!isHtmlContentAllowed()) {
      itemHtml = WidgetUtil.escapeHTML(itemHtml);
    }

    String iconUrl = item.getString(ListingJsonConstants.JSONKEY_ITEM_ICON);
    if (iconUrl != null && iconUrl.length() != 0) {
      Icon icon = client.getIcon(iconUrl);
      itemHtml = icon.getElement().getString() + itemHtml;
    }

    widget.setHTML(itemHtml);
    widget.setValue(item.getBoolean(ListingJsonConstants.JSONKEY_ITEM_SELECTED));
    setOptionEnabled(widget, item);

    if (requireInitialization) {
      widget.addStyleName(CLASSNAME_OPTION);
      widget.addClickHandler(this);
      getWidget().add(widget);
    }
    optionsToItems.put(widget, item);
  }