internal NormalGemuTreeNode(TreeNodeModel treeNodeModel)
   : base(treeNodeModel) {
   uint cummulativeCount = 0;
   FolderModel folderModel = treeNodeModel as FolderModel;
   if (folderModel != null) {
     cummulativeCount += folderModel.Folder.MailCount;
   }
   foreach (TreeNodeModel childTreeNodeModel in treeNodeModel.Children) {
     GemuTreeNode childTreeNodeView =
         new NormalGemuTreeNode(childTreeNodeModel);
     this.Nodes.Add(childTreeNodeView);
     cummulativeCount += childTreeNodeView.CummmulativeCount;
   }
   StoreModel storeModel = treeNodeModel as StoreModel;
   if (storeModel != null && storeModel.Store.ContactCount > 0) {
     ContactGemuTreeNode contactTreeNode =
         new ContactGemuTreeNode(storeModel);
     this.Nodes.Add(contactTreeNode);
     cummulativeCount += contactTreeNode.CummmulativeCount;
   }
   this.Text =
       treeNodeModel.DisplayName + " ["
           + cummulativeCount + "]";
   this.Checked = treeNodeModel.IsSelected;
   this.cummulativeCount = cummulativeCount;
 }
 internal GemuTreeNode(TreeNodeModel treeNodeModel) {
   this.TreeNodeModel = treeNodeModel;
 }
 static void LoadSelectedState(
     XmlElement xmlElement,
     TreeNodeModel treeNodeModel) {
   if (xmlElement.GetAttribute(LKGStatePersistor.SelectionStateAttrName)
         == bool.FalseString) {
     treeNodeModel.IsSelected = false;
   } else {
     treeNodeModel.IsSelected = true;
   }
 }
 internal FolderModel(TreeNodeModel parent,
                      IFolder folder,
                      GoogleEmailUploaderModel googleEmailUploaderModel)
   : base(parent, googleEmailUploaderModel) {
   this.Folder = folder;
   this.subFolderModels = new ArrayList();
   foreach (IFolder folderIter in folder.SubFolders) {
     this.subFolderModels.Add(
         new FolderModel(
             this,
             folderIter,
             googleEmailUploaderModel));
   }
   this.mailUploadData = new Hashtable();
 }
 internal StoreModel(TreeNodeModel parent,
                     IStore store,
                     GoogleEmailUploaderModel googleEmailUploaderModel)
   : base(parent, googleEmailUploaderModel) {
   this.Store = store;
   this.folderModels = new ArrayList();
   foreach (IFolder folderIter in store.Folders) {
     this.folderModels.Add(
         new FolderModel(
             this,
             folderIter,
             googleEmailUploaderModel));
   }
   this.contactUploadData = new Hashtable();
 }
 internal TreeNodeModel(TreeNodeModel parent,
                        GoogleEmailUploaderModel googleEmailUploaderModel) {
   this.parent = parent;
   this.GoogleEmailUploaderModel = googleEmailUploaderModel;
   this.isSelected = false;
 }