private void _InsertDomains(TreeListNode tlnParent, string identParentDomain)
        {
            ISqlFormatter isql = clsMain.Instance.CurrentConnection.Connection.SqlFormatter;

            try
            {
                Cursor.Current = Cursors.WaitCursor;

                // create the collection
                IColDbObject dbcolDomains = clsMain.Instance.CurrentConnection.Connection.CreateCol("SDLDomain");

                // assign the where-clause
                if (String.IsNullOrEmpty(identParentDomain))
                {
                    dbcolDomains.Prototype.WhereClause = isql.Comparison("UID_SDLDomainParent", "", ValType.String);
                }
                else
                {
                    dbcolDomains.Prototype.WhereClause = isql.FkComparison("UID_SDLDomainParent", "UID_SDLDomain", "SDLDomain",
                                                                           isql.Comparison("Ident_Domain", identParentDomain, ValType.String));
                }

                // appand the userdefined filter
                if (clsMain.Instance.DomainFilter.Length > 0)
                {
                    dbcolDomains.Prototype.WhereClause = "(" + dbcolDomains.Prototype.WhereClause + ") and (" + clsMain.Instance.DomainFilter + ")";
                }

                // mark as DisplayColumn
                dbcolDomains.Prototype["Ident_Domain"].IsDisplayItem = true;

                // load the collection
                dbcolDomains.Load();

                //now do for each domain
                foreach (IColElem colElem in dbcolDomains)
                {
                    // create a doamin-node
                    TreeListNode tlnDomain = tlnParent.Nodes.Add(colElem.Display, 1);
                    tlnDomain.Tag = new NodeData(NodeType.Domain, colElem.GetValue("Ident_Domain"), "");

                    // insert static subitems of domain
                    _PrepareDomainNode(tlnDomain);

                    // insert all childdomains
                    _InsertDomains(tlnDomain, colElem.Display);
                }
            }
            catch (Exception ex)
            {
                ExceptionDialog.Show(this.ParentForm, ex);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }