diff options
| author | jpbruyere <jp.bruyere@hotmail.com> | 2016-09-13 14:44:26 +0200 |
|---|---|---|
| committer | jpbruyere <jp.bruyere@hotmail.com> | 2016-09-13 14:44:26 +0200 |
| commit | 2616e6ee7a1a34036cc002d28543d0d7a657fdb2 (patch) | |
| tree | e48dacb4209e95cb963de76cb6fe1ffca07e77c1 /src/IMLReader.cs | |
| parent | b7786bbd327699b0a8dd30d5ca86fc20f28f5617 (diff) | |
Merge improvements from CrowIDE
modifié : Templates/DirectoryView.template
modifié : Templates/Menu.template
modifié : Templates/MenuItem.template
modifié : Templates/Window.template
modifié : Tests/Interfaces/Divers/0.crow
modifié : src/CompilerServices/CompilerServices.cs
modifié : src/ExtensionsMethods.cs
modifié : src/GraphicObjects/DirectoryView.cs
modifié : src/GraphicObjects/GraphicObject.cs
modifié : src/GraphicObjects/Group.cs
modifié : src/GraphicObjects/TreeView.cs
modifié : src/GraphicObjects/Wrapper.cs
modifié : src/IMLReader.cs
modifié : src/Interface.cs
modifié : src/ItemTemplate.cs
modifié : src/LayoutingQueueItem.cs
modifié : src/Measure.cs
modifié : src/Point.cs
Diffstat (limited to 'src/IMLReader.cs')
| -rw-r--r-- | src/IMLReader.cs | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/IMLReader.cs b/src/IMLReader.cs index 0ff80652..ad4fd835 100644 --- a/src/IMLReader.cs +++ b/src/IMLReader.cs @@ -31,10 +31,6 @@ namespace Crow public class IMLReader : XmlTextReader { InstanciatorInvoker loader = null; - - string ImlPath; - Stream ImlStream; - DynamicMethod dm = null; public ILGenerator il = null; @@ -55,12 +51,10 @@ namespace Crow #region CTOR public IMLReader (string path) : this(Interface.GetStreamFromPath (path)){ - ImlPath = path; } public IMLReader (Stream stream) : base(stream) { - ImlStream = stream; createInstantiator (); } /// <summary> @@ -138,13 +132,23 @@ namespace Crow path = reader.Value; } reader.MoveToElement (); - using (IMLReader iTmp = new IMLReader (null, reader.ReadInnerXml ())) { - string uid = Guid.NewGuid ().ToString (); - Interface.Instantiators [uid] = - new ItemTemplate (iTmp.RootType, iTmp.GetLoader (), dataType, datas); - - itemTemplateIds.Add (new string[] { dataType, uid, datas }); + + string itemTmpID; + + if (string.IsNullOrEmpty (path)) { + using (IMLReader iTmp = new IMLReader (null, reader.ReadInnerXml ())) { + itemTmpID = Guid.NewGuid ().ToString (); + Interface.Instantiators [itemTmpID] = + new ItemTemplate (iTmp.RootType, iTmp.GetLoader (), dataType, datas); + } + }else{ + if (!reader.IsEmptyElement) + throw new Exception ("ItemTemplate with Path attribute may not include sub nodes"); + itemTmpID = path; + Interface.Instantiators [itemTmpID] = + new ItemTemplate (itemTmpID, dataType, datas); } + itemTemplateIds.Add (new string[] { dataType, itemTmpID, datas }); } } @@ -209,8 +213,6 @@ namespace Crow #region Attributes reading if (reader.HasAttributes) { - MethodInfo miAddBinding = typeof(GraphicObject).GetMethod ("BindMember"); - while (reader.MoveToNextAttribute ()) { if (reader.Name == "Style") continue; |