if (cancelLoading)
return;
- GraphicObject g = null;
- ItemTemplate iTemp = null;
- Type dataType = data [i].GetType ();
+ loadItem (i, page);
- if (ItemTemplates.ContainsKey (dataType.FullName))
- iTemp = ItemTemplates [dataType.FullName];
- else
- iTemp = ItemTemplates ["default"];
-
- lock (Interface.CurrentInterface.LayoutMutex) {
- g = iTemp.CreateInstance();
- page.AddChild (g);
- g.DataSource = data [i];
- }
- if (this is TreeView) {
- TreeView tv = this as TreeView;
- while (!tv.IsRoot) {
- ILayoutable tmp = tv.Parent;
- while (!(tmp is TreeView)) {
- tmp = tmp.Parent;
- }
- tv = tmp as TreeView;
- }
- g.MouseClick += tv.itemClick;
- }else
- g.MouseClick += itemClick;
-
- if (iTemp.Expand != null && g is Expandable) {
- (g as Expandable).Expand += iTemp.Expand;
- }
//g.LogicalParent = this;
}
loadingTime.ElapsedMilliseconds, this.ToString());
#endif
}
+ protected void loadItem(int i, Group page){
+ GraphicObject g = null;
+ ItemTemplate iTemp = null;
+ Type dataType = data [i].GetType ();
+
+ if (ItemTemplates.ContainsKey (dataType.FullName))
+ iTemp = ItemTemplates [dataType.FullName];
+ else
+ iTemp = ItemTemplates ["default"];
+
+ lock (Interface.CurrentInterface.LayoutMutex) {
+ g = iTemp.CreateInstance();
+ page.AddChild (g);
+ g.DataSource = data [i];
+ }
+
+ registerItemClick (g);
+
+ if (iTemp.Expand != null && g is Expandable) {
+ (g as Expandable).Expand += iTemp.Expand;
+ }
+ }
+ protected virtual void registerItemClick(GraphicObject g){
+ g.MouseClick += itemClick;
+ }
protected void _list_LayoutChanged (object sender, LayoutingEventArgs e)
{
#if DEBUG_LAYOUTING
"" : selectedItemContainer.DataSource;
}
}
+
+ protected override void registerItemClick (GraphicObject g)
+ {
+ //register ItemClick on the Root node
+ TreeView tv = this as TreeView;
+ while (!tv.IsRoot) {
+ ILayoutable tmp = tv.Parent;
+ while (!(tmp is TreeView)) {
+ tmp = tmp.Parent;
+ }
+ tv = tmp as TreeView;
+ }
+ g.MouseClick += tv.itemClick;
+ }
internal override void itemClick (object sender, MouseButtonEventArgs e)
{
GraphicObject tmp = sender as GraphicObject;