Files
Umbraco-CMS/components/editorControls/imagecropper/SaveData.cs

104 lines
3.5 KiB
C#
Raw Normal View History

using System;
using System.Collections;
using System.Xml;
namespace umbraco.editorControls.imagecropper
{
public class SaveData
{
public ArrayList data { get; set; }
public string Xml(Config config, ImageInfo imageInfo)
{
XmlDocument doc = createBaseXmlDocument();
XmlNode root = doc.DocumentElement;
if (root == null) return null;
XmlNode dateStampNode = doc.CreateNode(XmlNodeType.Attribute, "date", null);
dateStampNode.Value = imageInfo.DateStamp.ToString();
root.Attributes.SetNamedItem(dateStampNode);
for (int i = 0; i < data.Count; i++)
{
Crop crop = (Crop) data[i];
Preset preset = (Preset) config.presets[i];
XmlNode newNode = doc.CreateElement("crop");
XmlNode nameNode = doc.CreateNode(XmlNodeType.Attribute, "name", null);
nameNode.Value = preset.Name;
newNode.Attributes.SetNamedItem(nameNode);
XmlNode xNode = doc.CreateNode(XmlNodeType.Attribute, "x", null);
xNode.Value = crop.X.ToString();
newNode.Attributes.SetNamedItem(xNode);
XmlNode yNode = doc.CreateNode(XmlNodeType.Attribute, "y", null);
yNode.Value = crop.Y.ToString();
newNode.Attributes.SetNamedItem(yNode);
XmlNode x2Node = doc.CreateNode(XmlNodeType.Attribute, "x2", null);
x2Node.Value = crop.X2.ToString();
newNode.Attributes.SetNamedItem(x2Node);
XmlNode y2Node = doc.CreateNode(XmlNodeType.Attribute, "y2", null);
y2Node.Value = crop.Y2.ToString();
newNode.Attributes.SetNamedItem(y2Node);
if (config.GenerateImages)
{
XmlNode urlNode = doc.CreateNode(XmlNodeType.Attribute, "url", null);
urlNode.Value = String.Format("{0}/{1}_{2}.jpg",
imageInfo.RelativePath.Substring(0,
imageInfo.RelativePath.LastIndexOf(
'/')),
imageInfo.Name,
preset.Name);
newNode.Attributes.SetNamedItem(urlNode);
}
root.AppendChild(newNode);
}
return doc.InnerXml;
}
public SaveData()
{
data = new ArrayList();
}
public SaveData(string raw)
{
data = new ArrayList();
string[] crops = raw.Split(';');
foreach (string crop in crops)
{
var val = crop.Split(',');
data.Add(
new Crop(
Convert.ToInt32(val[0]),
Convert.ToInt32(val[1]),
Convert.ToInt32(val[2]),
Convert.ToInt32(val[3])
)
);
}
}
private static XmlDocument createBaseXmlDocument()
{
XmlDocument doc = new XmlDocument();
XmlNode root = doc.CreateElement("crops");
doc.AppendChild(root);
return doc;
}
}
}