/** * author: Marcel Genzmehr * 25.07.2011 */ package org.freeplane.plugin.workspace.io.xml; import java.io.IOException; import java.io.Writer; import org.freeplane.core.io.IAttributeWriter; import org.freeplane.core.io.IElementWriter; import org.freeplane.core.io.ITreeWriter; import org.freeplane.core.io.WriteManager; import org.freeplane.core.io.xml.TreeXmlWriter; import org.freeplane.features.map.MapWriter; import org.freeplane.features.map.MapWriter.Hint; import org.freeplane.plugin.workspace.WorkspaceController; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; public class ConfigurationWriter implements IElementWriter, IAttributeWriter { final private WriteManager writeManager; /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ public ConfigurationWriter(final WriteManager manager) { writeManager = manager; } /*********************************************************************************** * METHODS **********************************************************************************/ public void writeConfigurationAsXml(final Writer fileout) throws IOException { final TreeXmlWriter xmlWriter = new TreeXmlWriter(writeManager, fileout); xmlWriter.setHint(Hint.MODE, MapWriter.Mode.FILE); writeNode(xmlWriter, (AWorkspaceTreeNode) WorkspaceController.getController().getWorkspaceModel().getRoot()); xmlWriter.flush(); fileout.close(); } private void writeNode(final ITreeWriter xmlWriter, final AWorkspaceTreeNode node) throws IOException { final String nodeTag = node.getTagName(); if(nodeTag == null) return; xmlWriter.addElement(node, nodeTag); } public void writeNodeAsXml(final Writer writer, final AWorkspaceTreeNode node) throws IOException { final TreeXmlWriter xmlWriter = new TreeXmlWriter(writeManager, writer); writeNode(xmlWriter, node); xmlWriter.flush(); } /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ public void writeAttributes(ITreeWriter writer, Object userObject, String tag) { } public void writeContent(ITreeWriter writer, Object element, String tag) throws IOException { writeNode(writer, (AWorkspaceTreeNode) element); } }