aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-02-29 11:38:45 +0100
committerjpbruyere <jp.bruyere@hotmail.com>2016-02-29 11:38:45 +0100
commitbfcc3583d5dfa32ac2b314751e5cf99578da455d (patch)
tree5ea6d30c21aea3157d5beb34c18b41513ad91de9 /src/GraphicObjects
parentf227139ae8e3c7c7d585cf4f560bd87f8406ddc8 (diff)
ensure template are loaded when created in code
Diffstat (limited to 'src/GraphicObjects')
-rw-r--r--src/GraphicObjects/TemplatedControl.cs23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/GraphicObjects/TemplatedControl.cs b/src/GraphicObjects/TemplatedControl.cs
index ad7c74fe..bb2fbd28 100644
--- a/src/GraphicObjects/TemplatedControl.cs
+++ b/src/GraphicObjects/TemplatedControl.cs
@@ -56,7 +56,12 @@ namespace Crow
public abstract class TemplatedControl : PrivateContainer, IXmlSerializable
{
#region CTOR
- public TemplatedControl () : base() {}
+ public TemplatedControl () : base()
+ {
+ if (Interface.XmlLoaderCount > 0)
+ return;
+ loadTemplate ();
+ }
#endregion
string _template;
@@ -91,10 +96,10 @@ namespace Crow
this.SetChild (Interface.Load (dt.Path, this));
}else
this.SetChild (template);
-
+
this.ResolveBindings ();
}
-
+
#region IXmlSerializable
public override System.Xml.Schema.XmlSchema GetSchema(){ return null; }
public override void ReadXml(System.Xml.XmlReader reader)
@@ -109,7 +114,7 @@ namespace Crow
string tmp = subTree.ReadOuterXml ();
//Load template from path set as attribute in templated control
- if (string.IsNullOrEmpty (template)) {
+ if (string.IsNullOrEmpty (template)) {
//seek for template tag first
using (XmlReader xr = new XmlTextReader (tmp, XmlNodeType.Element, null)) {
//load template first if inlined
@@ -124,7 +129,7 @@ namespace Crow
xr.Read ();
Type t = Type.GetType ("Crow." + xr.Name);
- GraphicObject go = (GraphicObject)Activator.CreateInstance (t);
+ GraphicObject go = (GraphicObject)Activator.CreateInstance (t);
(go as IXmlSerializable).ReadXml (xr);
loadTemplate (go);
@@ -133,16 +138,16 @@ namespace Crow
xr.Read ();//Template close tag
break;
} else
- xr.ReadInnerXml ();
+ xr.ReadInnerXml ();
}
- }
+ }
} else
loadTemplate (Interface.Load (template, this));
-
+
//if no template found, load default one
if (this.child == null)
loadTemplate ();
-
+
//normal xml read
using (XmlReader xr = new XmlTextReader (tmp, XmlNodeType.Element, null)) {
xr.Read ();