//-----------------------------------------------------------------
        public void RemoveFromAllWindowsLists(int windowID)
        {
            Windows.Window window = new WindowHelper.Windows.Window(windowID);

            RemoveFromWindowList(_windowsList, window);

            switch (window.Type)
            {
                case Windows.Window.WindowType.Mapper:
                    RemoveFromWindowList(_mapperWindows, window);
                    break;
                case Windows.Window.WindowType.Browser:
                    RemoveFromWindowList(_browserWindows, window);
                    break;
                case Windows.Window.WindowType.Layout:
                    RemoveFromWindowList(_layoutWindows, window);
                    break;
                case Windows.Window.WindowType.LegendDesigner:
                    RemoveFromWindowList(_legendWindows, window);
                    break;
            }

            RefreshWindowsList();
        }
        //-----------------------------------------------------------------
        public void CreateWindowList(int[] windowIDs, string[] windowNames, int[] windowTypes)
        {
            if (windowIDs.Length == 0)
                return;

            if (_windowsList != null)
            {
                _mapperWindows.Clear();
                _browserWindows.Clear();
                _layoutWindows.Clear();
                _legendWindows.Clear();
                _windowsList.Clear();
            }
            else
            {
                _windowsList = new WindowHelper.Windows.WindowList();
                _mapperWindows = new WindowHelper.Windows.WindowList();
                _browserWindows = new WindowHelper.Windows.WindowList();
                _layoutWindows = new WindowHelper.Windows.WindowList();
                _legendWindows = new WindowHelper.Windows.WindowList();
            }
            Windows.Window window = null;

            for (int i = 0; i < windowIDs.Length; i++)
            {
                window = new WindowHelper.Windows.Window(windowIDs[i], windowNames[i], windowTypes[i]);
                AddToWindowLists(window);
            }
            RefreshWindowsList();
        }
        public void LoadSpecialWindows()
        {
            TreeNode newNode = null;
            TreeNode subNode = null;
            int nodeNum = 0;
            string nodeName = "";
            Windows.Window specialWindow = null;

            if (_specialWindows == null)
                _specialWindows = new WindowHelper.Windows.WindowList();
            else
                _specialWindows.Clear();

            for (int i = 0; i <= 5; i++)
            {
                switch (i)
                {
                    //Define WIN_MAPPER         1
                    //Define WIN_BROWSER        2
                    //Define WIN_LAYOUT         3
                    //Define WIN_GRAPH          4
                    //Define WIN_BUTTONPAD      19
                    //Define WIN_TOOLBAR        25
                    //Define WIN_CART_LEGEND    27
                    //Define WIN_3DMAP          28
                    //Define WIN_ADORNMENT      32
                    //Define WIN_HELP           1001
                    //Define WIN_MAPBASIC       1002
                    //Define WIN_MESSAGE        1003
                    //Define WIN_RULER          1007
                    //Define WIN_INFO           1008
                    //Define WIN_LEGEND         1009
                    //Define WIN_STATISTICS     1010
                    //Define WIN_MAPINFO        1011

                    case 0:
                        specialWindow = new WindowHelper.Windows.Window(1008);
                        break;
                    case 1:
                        specialWindow = new WindowHelper.Windows.Window(1009);
                        break;
                    case 2:
                        specialWindow = new WindowHelper.Windows.Window(1002);
                        break;
                    case 3:
                        specialWindow = new WindowHelper.Windows.Window(1003);
                        break;
                    case 4:
                        specialWindow = new WindowHelper.Windows.Window(1007);
                        break;
                    case 5:
                        specialWindow = new WindowHelper.Windows.Window(1010);
                        break;
                }

                //MessageBox.Show(specialWindow.Title);
                _specialWindows.Add(specialWindow);
                specialWindow = null;
            }

            newNode = new TreeNode();
            nodeName = Controller.GetResItemStr("LST_WINDOWS_SPECIAL");
            newNode.Tag = _specialWindows;
            newNode.ImageIndex = 1;
            newNode.SelectedImageIndex = 1;
            newNode.Text = nodeName;
            newNode.Name = nodeName;
            newNode.ToolTipText = nodeName;
            _treeViewSpecialWindows.Nodes.Add(newNode);
            newNode.Expand();

            //Adding the special windows to the tree
            foreach (Windows.Window window in _specialWindows)
            {
                nodeNum++;
                subNode = new TreeNode();
                subNode.ImageIndex = 1;
                subNode.SelectedImageIndex = 1;
                subNode.Tag = window;
                nodeName = string.Format("{0}", window.Title);
                subNode.Text = nodeName;
                subNode.Name = nodeName;
                subNode.ToolTipText = nodeName;
                newNode.Nodes.Add(subNode);
                subNode = null;
            }
        }
        //-----------------------------------------------------------------
        public void AddToOrUpdateInWindowLists(int[] windowIDs, string[] windowNames, int[] windowTypes)
        {
            Windows.Window window = null;
            bool refreshList = false;

            for (int i = 0; i < windowIDs.Length; i++)
            {
                window = new WindowHelper.Windows.Window(windowIDs[i], windowNames[i], windowTypes[i]);
                if (AddToOrUpdateInWindowLists(window) == true)
                    refreshList = true;
            }

            if (refreshList == true)
                RefreshWindowsList();
        }