public WarpSourceData(Project p, string command, IEnumerable <string> values,
FileParser parser, IList <int> spacing)
: base(p, command, values, -1, parser, spacing)
{
// Find type
for (int i = 0; i < WarpCommands.Length; i++)
{
string s = WarpCommands[i];
if (this.CommandLowerCase == s.ToLower())
{
_type = (WarpSourceType)i;
break;
}
}
SetValueReferences(warpValueReferences[(int)WarpSourceType]);
referencedDestData = GetReferencedDestData();
if (referencedDestData != null)
{
referencedDestData.AddReference(this);
}
this.AddDataModifiedHandler(delegate(object sender, EventArgs e) {
WarpDestData newDestData = GetReferencedDestData();
if (newDestData != referencedDestData)
{
// Update DestData reference
if (referencedDestData != null)
{
referencedDestData.RemoveReference(this);
}
referencedDestData = newDestData;
if (newDestData != null)
{
newDestData.AddReference(this);
}
}
});
}