Package edu.unc.cs.sportsync.main.settings

Source Code of edu.unc.cs.sportsync.main.settings.SettingsXmlBuilder

package edu.unc.cs.sportsync.main.settings;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.sound.sampled.Mixer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;

import edu.unc.cs.sportsync.main.ui.error.ErrorUtil;
/*************************************************************************************
*
* Author(s) - Michael Barlock
*        created: September 25, 2012
*    last modified: October 30, 2012
*
* Function - Creating the settings.xml file, and updating it with the most recent
*          settings.
*
*
*************************************************************************************/
public class SettingsXmlBuilder {

  Document doc;
  Element root;

  public SettingsXmlBuilder() {
    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    try {
      DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

      doc = docBuilder.newDocument();
      root = doc.createElement("settings");
      doc.appendChild(root);
    } catch (ParserConfigurationException e) {
      e.printStackTrace();
      ErrorUtil.openStackTraceDialog("A Fatal Error has occured and the application will need to shut down", e);
      System.exit(1);
    }
  }

  public void addDelayTime(int delayTime) {
    Element delay = doc.createElement("maxDelay");
    delay.appendChild(doc.createTextNode(Integer.toString(delayTime)));
    root.appendChild(delay);
  }

  public void addInputMixer(Mixer.Info input) {
    Element mixer = doc.createElement("inputMixer");
    Element description = doc.createElement("description");
    Element name = doc.createElement("name");
    Element vendor = doc.createElement("vendor");
    Element version = doc.createElement("version");

    description.appendChild(doc.createTextNode(input.getDescription()));
    name.appendChild(doc.createTextNode(input.getName()));
    vendor.appendChild(doc.createTextNode(input.getVendor()));
    version.appendChild(doc.createTextNode(input.getVersion()));

    mixer.appendChild(name);
    mixer.appendChild(description);
    mixer.appendChild(vendor);
    mixer.appendChild(version);

    root.appendChild(mixer);
  }

  public void addOutputMixer(Mixer.Info output) {
    Element mixer = doc.createElement("outputMixer");
    Element description = doc.createElement("description");
    Element name = doc.createElement("name");
    Element vendor = doc.createElement("vendor");
    Element version = doc.createElement("version");

    description.appendChild(doc.createTextNode(output.getDescription()));
    name.appendChild(doc.createTextNode(output.getName()));
    vendor.appendChild(doc.createTextNode(output.getVendor()));
    version.appendChild(doc.createTextNode(output.getVersion()));

    mixer.appendChild(name);
    mixer.appendChild(description);
    mixer.appendChild(vendor);
    mixer.appendChild(version);

    root.appendChild(mixer);
  }

  public void addVolume(int vol) {
    Element volume = doc.createElement("volume");
    volume.appendChild(doc.createTextNode(Integer.toString(vol)));
    root.appendChild(volume);
  }

  public void saveTo(String path) {
    try {
      OutputFormat format = new OutputFormat(doc);
      format.setIndenting(true);
      XMLSerializer serializer = new XMLSerializer(new FileOutputStream(new File(path)), format);
      serializer.serialize(doc);
    } catch (FileNotFoundException e) {
      e.printStackTrace();
      ErrorUtil.openStackTraceDialog("A Fatal Error has occured and the application will need to shut down", e);
      System.exit(1);
    } catch (IOException e) {
      e.printStackTrace();
      ErrorUtil.openStackTraceDialog("A Fatal Error has occured and the application will need to shut down", e);
      System.exit(1);
    }

  }
}
TOP

Related Classes of edu.unc.cs.sportsync.main.settings.SettingsXmlBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.