private iFolderHolder AddiFolder(iFolderWeb ifolder) { lock (instanceLock) { iFolderHolder ifHolder = null; string ifolderID = ifolder.IsSubscription ? ifolder.CollectionID : ifolder.ID; if (ifolderIters.ContainsKey(ifolderID)) { TreeIter iter = (TreeIter)ifolderIters[ifolderID]; ifHolder = (iFolderHolder) iFolderListStore.GetValue(iter, 0); if (ifHolder != null) { ifHolder.iFolder = ifolder; TreePath path = iFolderListStore.GetPath(iter); if (path != null) { iFolderChangedHandler changedHandler = new iFolderChangedHandler( path, iter, iFolderListStore); GLib.Idle.Add(changedHandler.IdleHandler); } } } else { ifHolder = new iFolderHolder(ifolder); ifHolder.State = iFolderState.Initial; iFolderAddHandler addHandler = new iFolderAddHandler(ifHolder, this); GLib.Idle.Add(addHandler.IdleHandler); } return ifHolder; } }
private iFolderHolder AddiFolder(iFolderWeb ifolder) { Console.WriteLine("AddiFolder()"); Console.WriteLine(Environment.StackTrace); lock (instanceLock) { iFolderHolder ifHolder = null; if (ifolder.CollectionID == null) { Console.WriteLine("**** CollectionID is null ****"); } else if (ifolder.ID == null) { Console.WriteLine("**** ID is null ****"); } Console.WriteLine("\t1"); string ifolderID = ifolder.IsSubscription ? ifolder.CollectionID : ifolder.ID; Console.WriteLine("\t{0}", ifolderID); if (ifolderIters.ContainsKey(ifolderID)) { Console.WriteLine("\t3"); TreeIter iter = (TreeIter)ifolderIters[ifolderID]; Console.WriteLine("\t4"); ifHolder = (iFolderHolder) iFolderListStore.GetValue(iter, 0); Console.WriteLine("\t5"); if (ifHolder != null) { Console.WriteLine("\t6"); ifHolder.iFolder = ifolder; TreePath path = iFolderListStore.GetPath(iter); Console.WriteLine("\t7"); if (path != null) { Console.WriteLine("\t8"); iFolderChangedHandler changedHandler = new iFolderChangedHandler( path, iter, iFolderListStore); Console.WriteLine("\t9"); GLib.Idle.Add(changedHandler.IdleHandler); } } else { Console.WriteLine("*** SOMETHING WENT BAD IN iFolderData.AddiFolder() ***"); } } else { Console.WriteLine("\t10"); ifHolder = new iFolderHolder(ifolder); Console.WriteLine("\t11"); iFolderAddHandler addHandler = new iFolderAddHandler(ifHolder, this); Console.WriteLine("\t12"); GLib.Idle.Add(addHandler.IdleHandler); } Console.WriteLine("\t13"); return ifHolder; } }