aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/IMLReader.cs
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-09-13 14:44:26 +0200
committerjpbruyere <jp.bruyere@hotmail.com>2016-09-13 14:44:26 +0200
commit2616e6ee7a1a34036cc002d28543d0d7a657fdb2 (patch)
treee48dacb4209e95cb963de76cb6fe1ffca07e77c1 /src/IMLReader.cs
parentb7786bbd327699b0a8dd30d5ca86fc20f28f5617 (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.cs30
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;