aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/Instantiator.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-02-17 12:13:48 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-02-17 12:13:48 +0100
commitce8c0dabfc960be91c36434ccd3ef7cdfe99fd74 (patch)
tree85d024ebe3ca78308ec463a615d02ce2fc4a55cb /src/Instantiator.cs
parent94ad875ff28df520266e0680ee1927e199235837 (diff)
first working test with hierarchical TemplatedGroup with only one root Level
Diffstat (limited to 'src/Instantiator.cs')
-rw-r--r--src/Instantiator.cs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/Instantiator.cs b/src/Instantiator.cs
index a97f19d2..b01052ca 100644
--- a/src/Instantiator.cs
+++ b/src/Instantiator.cs
@@ -225,7 +225,7 @@ namespace Crow.IML
/// <param name="reader">current xml text reader</param>
/// <param name="itemTemplatePath">file containing the templates if its a dedicated one</param>
string[] parseItemTemplateTag (XmlReader reader, string itemTemplatePath = "") {
- string dataType = "default", datas = "", path = "";
+ string dataType = "default", datas = "", path = "", dataTest = "TypeOf";
while (reader.MoveToNextAttribute ()) {
if (reader.Name == "DataType")
dataType = reader.Value;
@@ -233,6 +233,8 @@ namespace Crow.IML
datas = reader.Value;
else if (reader.Name == "Path")
path = reader.Value;
+ else if (reader.Name == "DataTest")
+ dataTest = reader.Value;
}
reader.MoveToElement ();
@@ -241,7 +243,7 @@ namespace Crow.IML
if (string.IsNullOrEmpty (path)) {
itemTmpID += Guid.NewGuid ().ToString ();
Interface.Instantiators [itemTmpID] =
- new ItemTemplate (new MemoryStream (Encoding.UTF8.GetBytes (reader.ReadInnerXml ())), dataType, datas);
+ new ItemTemplate (new MemoryStream (Encoding.UTF8.GetBytes (reader.ReadInnerXml ())), dataTest, dataType, datas);
} else {
if (!reader.IsEmptyElement)
@@ -249,9 +251,9 @@ namespace Crow.IML
itemTmpID += path+dataType+datas;
if (!Interface.Instantiators.ContainsKey (itemTmpID))
Interface.Instantiators [itemTmpID] =
- new ItemTemplate (Interface.GetStreamFromPath (path), dataType, datas);
+ new ItemTemplate (Interface.GetStreamFromPath (path), dataTest, dataType, datas);
}
- return new string [] { dataType, itemTmpID, datas };
+ return new string [] { dataType, itemTmpID, datas, dataTest };
}
/// <summary>
/// process template and item template definition prior to
@@ -312,7 +314,7 @@ namespace Crow.IML
//the file contains a single template to use as default
Interface.Instantiators [itemTemplatePath] =
new ItemTemplate (itr);
- itemTemplateIds.Add (new string [] { "default", itemTemplatePath, "" });
+ itemTemplateIds.Add (new string [] { "default", itemTemplatePath, "", "TypeOf" });
break;//we should be at the end of the file
}
itemTemplateIds.Add (parseItemTemplateTag (itr, itemTemplatePath));
@@ -327,7 +329,7 @@ namespace Crow.IML
return;
//add the default item template if no default is defined
if (!itemTemplateIds.Any(ids=>ids[0] == "default"))
- itemTemplateIds.Add (new string [] { "default", "#Crow.DefaultItem.template", "" });
+ itemTemplateIds.Add (new string [] { "default", "#Crow.DefaultItem.template", "", "TypeOf"});
//copy item templates (review this)
foreach (string [] iTempId in itemTemplateIds) {
ctx.il.Emit (OpCodes.Ldloc_0);//load TempControl ref