public RemoteDirectoryNode(RemoteDirectoryNode parent, string _directory, Data.RemoteServer _data)
        {
            this.data      = _data;
            this.directory = _directory;

            this.ImageIndex         = ServersTreeView.FolderCloseIcon;
            this.SelectedImageIndex = this.ImageIndex;

            this.timer.Tick    += new EventHandler(timer_tick);
            this.timer.Interval = 100;
            this.timer.Start();

            int    last = directory.LastIndexOf('/');
            string name = directory.Substring(0, directory.Length - 1);

            if (last != -1)
            {
                this.Text = name.Substring(name.LastIndexOf("/") + 1);
            }
            else
            {
                this.Text = directory;
            }

            parent.Nodes.Add(this);

            Virtualize();
        }
        public RemoteFileNode(RemoteDirectoryNode _directoryNode, string _file, Data.RemoteServer _data)
        {
            this.directoryNode = _directoryNode;
            this.file          = _file;
            this.data          = _data;

            directoryNode.Nodes.Add(this);

            int last = file.LastIndexOf('/');

            if (last != -1)
            {
                this.Text = file.Substring(file.LastIndexOf("/") + 1);
            }
            else
            {
                this.Text = file;
            }

            try
            {
                this.ImageIndex         = ((ServersTreeView)this.TreeView).GetRemoteFileIconImageIndex(file);
                this.SelectedImageIndex = this.ImageIndex;
            }
            catch (Exception) { }
        }
        public RemoteFileNode(RemoteDirectoryNode _directoryNode, string _file, Data.RemoteServer _data)
        {
            this.directoryNode = _directoryNode;
            this.file = _file;
            this.data = _data;

            directoryNode.Nodes.Add(this);

            int last = file.LastIndexOf('/');
            if (last != -1)
                this.Text = file.Substring(file.LastIndexOf("/") + 1);
            else
                this.Text = file;

            try
            {
                this.ImageIndex = ((ServersTreeView)this.TreeView).GetRemoteFileIconImageIndex(file);
                this.SelectedImageIndex = this.ImageIndex;
            }
            catch (Exception) { }
        }
        public RemoteDirectoryNode(RemoteDirectoryNode parent, string _directory, Data.RemoteServer _data)
        {
            this.data = _data;
            this.directory = _directory;

            this.ImageIndex = ServersTreeView.FolderCloseIcon;
            this.SelectedImageIndex = this.ImageIndex;

            this.timer.Tick += new EventHandler(timer_tick);
            this.timer.Interval = 100;
            this.timer.Start();

            int last = directory.LastIndexOf('/');
            string name = directory.Substring(0, directory.Length - 1);
            if (last != -1)
                this.Text = name.Substring(name.LastIndexOf("/") + 1);
            else
                this.Text = directory;

            parent.Nodes.Add(this);

            Virtualize();
        }