/**
   * Saves the current Parameters into an XML File. To do so a DOM-Tree with the current Parameters
   * is constructed. This tree will be serialized by use of XML_Util.serializeDocument and saved
   * into the file selected via experimentGUI.saveDialog.
   *
   * @author Gunnar Kiesel
   */
  void saveParameters() {
    // select file to save parameters in
    String newFilename = experimentGUI.saveDialog(filename);
    if (newFilename == null) return;
    filenameChanged = true;
    filename = newFilename;
    File file = new File(filename);

    // create DOM-tree
    Document document = XMLHelper.createDocument();
    Element run = document.createElement("run");
    run.setAttribute("model", modelClass.getName());
    run.setAttribute("expRunner", expRunnerClass.getName());
    document.appendChild(run);
    Element exp = document.createElement("exp");
    run.appendChild(exp);
    expAccessPoints.setValues();
    Map expMap = expAccessPoints.getAccessPoints();
    String[] expnames = AccessUtil.getAccessPointNames(expMap);
    Object[] expvalues = AccessUtil.getAccessPointValues(expMap);
    for (int i = 0; i < expnames.length; i++) {
      XMLHelper.addElement(
          document, exp, "param", "name", expnames[i], "value", expvalues[i].toString());
    }
    Element modelelement = document.createElement("model");
    run.appendChild(modelelement);
    modelAccessPoints.setValues();
    Map modelMap = modelAccessPoints.getAccessPoints();
    String[] modelnames = AccessUtil.getAccessPointNames(modelMap);
    Object[] modelvalues = AccessUtil.getAccessPointValues(modelMap);
    for (int i = 0; i < modelnames.length; i++) {
      XMLHelper.addElement(
          document,
          modelelement,
          "param",
          "name",
          modelnames[i],
          "value",
          modelvalues[i].toString());
    }
    // save DOM-tree to XML file
    try {
      XMLHelper.serializeDocument(document, new FileWriter(file));
      filename = file.getAbsolutePath();
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }