public bool UpdateWord(String sTypeName, String sOldValue, String sNewValue)
        {
            TypeGroup oTypeGroup = FindTypeGroup(sTypeName);

            if (oTypeGroup != null)
            {
                return(oTypeGroup.UpdateWord(sOldValue, sNewValue));
            }
            return(false);
        }
        public bool DeleteWord(String sTypeName, String sWord)
        {
            TypeGroup oTypeGroup = FindTypeGroup(sTypeName);

            if (oTypeGroup != null)
            {
                return(oTypeGroup.DeleteWord(sWord));
            }
            return(false);
        }
        public bool InsertWord(String sTypeName, String sNewWord)
        {
            TypeGroup oTypeGroup = FindTypeGroup(sTypeName);

            if (oTypeGroup != null)
            {
                return(oTypeGroup.InsertWord(sNewWord));
            }
            return(false);
        }
        public bool DeleteCategory(String sTypeName)
        {
            TypeGroup oTypeGroup = FindTypeGroup(sTypeName);

            if (oTypeGroup != null)
            {
                TypeGroups.Remove(oTypeGroup);
                return(true);
            }
            return(false);
        }
        public bool InsertTypeGroup(String sTypeName)
        {
            if (TypeGroupExists(sTypeName))
            {
                Form1.LogError("TypeName " + sTypeName + " already exists");
                return(false);
            }
            TypeGroup oTypeGroup = new TypeGroup(sTypeName);

            TypeGroups.Add(oTypeGroup);
            return(true);
        }
        public bool UpdateCategory(String sOldValue, String sNewValue)
        {
            Debug.Assert(sNewValue.Length > 0);

            TypeGroup oTypeGroup = FindTypeGroup(sOldValue);

            if (oTypeGroup != null)
            {
                oTypeGroup.Name = sNewValue;
                return(true);
            }
            return(false);
        }
        public List <String> GetWords(String sTypeName)
        {
            List <String> aWords     = new List <String>();
            TypeGroup     oTypeGroup = FindTypeGroup(sTypeName);

            if (oTypeGroup != null)
            {
                foreach (LengthGroup oLengthGroup in oTypeGroup.LengthGroups)
                {
                    foreach (String sWord in oLengthGroup.Words)
                    {
                        aWords.Add(sWord);
                    }
                }
            }
            return(aWords);
        }