using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Runtime.Serialization;
using CategoryTheory;
namespace DiagramUI
{
/// <summary>
/// Arrow label for serialization
/// </summary>
[Serializable()]
public class PureArrowLabelPeer : PureArrowLabel, ISerializable
{
#region Constructors
/// <summary>
/// Main constructor
/// </summary>
/// <param name="name">The name</param>
/// <param name="kind">The kind</param>
/// <param name="type">The type</param>
/// <param name="x">The x - coordinate</param>
/// <param name="y">The y - coordinate</param>
public PureArrowLabelPeer(string name, string kind, string type, int x, int y)
: base(name, kind, type, x, y)
{
this.name = name;
this.kind = kind;
this.type = type;
this.x = x;
this.y = y;
}
/// <summary>
/// Serialization constructor
/// </summary>
/// <param name="info"></param>
/// <param name="context"></param>
public PureArrowLabelPeer(SerializationInfo info, StreamingContext context)
{
kind = info.GetValue("Kind", typeof(string)) as string;
type = (string)info.GetValue("Type", typeof(string));
name = (string)info.GetValue("Name", typeof(string));
arrow = info.GetValue("Arrow", typeof(object)) as ICategoryArrow;
sourceNumber = info.GetValue("SourceNumber", typeof(object));
targetNumber = info.GetValue("TargetNumber", typeof(object));
}
#endregion
#region ISerializable Members
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("Kind", kind);
info.AddValue("Type", type);
info.AddValue("Name", name);
info.AddValue("Arrow", arrow);
info.AddValue("SourceNumber", sourceNumber);
info.AddValue("TargetNumber", targetNumber);
}
#endregion
#region INamedComponent Members
/// <summary>
/// Gets component name relatively desktop
/// </summary>
/// <param name="desktop">The desktop</param>
/// <returns>Relalive name</returns>
public override string GetName(IDesktop desktop)
{
return PureObjectLabelPeer.GetName(this, desktop);
}
#endregion
#region Specific members
#endregion
}
}