public Element[] createXML(Document doc) {
    Element root = XML.createElement("variables", doc);

    // Skip if JDK valid
    Element skipIfValid = XML.createElement("variable", doc);
    skipIfValid.setAttribute("name", "JDKPathPanel.skipIfValid");
    if (yes.isSelected()) skipIfValid.setAttribute("value", "yes");
    else skipIfValid.setAttribute("value", "no");

    root.appendChild(skipIfValid);

    // Min version
    Element minVerElem = XML.createElement("variable", doc);
    minVerElem.setAttribute("name", "JDKPathPanel.minVersion");
    minVerElem.setAttribute("value", minVer.getText());
    root.appendChild(minVerElem);

    // Max version
    Element maxVerElem = XML.createElement("variable", doc);
    maxVerElem.setAttribute("name", "JDKPathPanel.maxVersion");
    maxVerElem.setAttribute("value", maxVer.getText());
    root.appendChild(maxVerElem);

    return new Element[] {root};
  }
  public void initFromXML(Document xmlFile) {
    // Load variables. Some may be null
    String minVerStr = XML.getVariable(xmlFile, "JDKPathPanel.minVersion");
    String maxVerStr = XML.getVariable(xmlFile, "JDKPathPanel.maxVersion");
    String skip = XML.getVariable(xmlFile, "JDKPathPanel.skipIfValid");

    if (minVerStr != null) minVer.setText(minVerStr);

    if (maxVerStr != null) maxVer.setText(maxVerStr);

    if (skip != null) {
      skip = skip.toLowerCase();

      // Skip
      if (skip.equals("yes") || skip.equals("true")) yes.setSelected(true);
      // Don't skip
      else no.setSelected(true);
    }
  }
  public void initFromXML(Document xmlFile) {
    String info = XML.getResourceValueAsPath(xmlFile, "HTMLInfoPanel.info");

    if (info != null) updateEditorDisplay(info);
  }
  public Element[] createXML(Document doc) {
    Element root = XML.createResourceTree("HTMLInfoPanel.info", filename, doc);

    return new Element[] {root};
  }