diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-02-17 12:13:48 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-02-17 12:13:48 +0100 |
| commit | ce8c0dabfc960be91c36434ccd3ef7cdfe99fd74 (patch) | |
| tree | 85d024ebe3ca78308ec463a615d02ce2fc4a55cb /src/Instantiator.cs | |
| parent | 94ad875ff28df520266e0680ee1927e199235837 (diff) | |
first working test with hierarchical TemplatedGroup with only one root Level
Diffstat (limited to 'src/Instantiator.cs')
| -rw-r--r-- | src/Instantiator.cs | 14 |
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 |