Example #1
0
void Option::printHelp(XMLHandler &handler, const string &prefix) const {
  XMLAttributes attrs;

  attrs["class"] = "option";
  attrs["id"] = prefix + "option-" + getName();
  handler.startElement("div", attrs);

  // Name
  attrs.clear();
  attrs["class"] = "name";
  handler.startElement("span", attrs);
  handler.text(getName());
  handler.endElement("span");

  // Type
  attrs["class"] = "type";
  handler.startElement("span", attrs);
  handler.text(isOptional() ? "[" : "<");
  handler.text(getTypeString());

  // Default
  if (hasDefault()) {
    handler.text(" = ");

    bool isString = type == STRING_TYPE || type == STRINGS_TYPE;

    attrs["class"] = "default";
    handler.startElement("span", attrs);
    handler.text((isString ? "\"" : "") + getDefault() +
                 (isString ? "\"" : ""));
    handler.endElement("span");
  }

  handler.text(isOptional() ? "]" : ">");
  handler.endElement("span");

  // Help
  if (getHelp() != "") {
    attrs["class"] = "help";
    handler.startElement("div", attrs);
    string help = getHelp();
    vector<string> tokens;
    String::tokenize(help, tokens, "\t");
    handler.text(String::join(tokens, "  "));
    handler.text(" ");
    handler.endElement("div");
  }


  handler.endElement("div");
}