ACAT.Extensions.Default.FunctionalAgents.FileBrowserAgent.FileBrowserScanner.refreshFileList C# (CSharp) Method

refreshFileList() private method

Refreshes the list of files in the UI
private refreshFileList ( ) : void
return void
        private void refreshFileList()
        {
            var list = new List<Widget>();
            _scannerCommon.GetRootWidget().Finder.FindChild(typeof(TabStopScannerButton), list);

            int count = list.Count();
            if (count == 0)
            {
                return;
            }

            foreach (Widget button in list)
            {
                button.UserData = null;
                button.SetText(String.Empty);
            }

            _entriesPerPage = count;
            _numPages = _fileList.Count() / _entriesPerPage;

            if ((_fileList.Count() % _entriesPerPage) != 0)
            {
                _numPages++;
            }

            updateButtonBar();

            updateStatusBar();

            if (!_fileList.Any())
            {
                (list[0] as TabStopScannerButton).SetTabStops(0.0f, new float[] { 100 });
                list[0].SetText(Resources._TNOFILESFOUND);
                return;
            }

            int ii = 0;
            var image = new Bitmap(1, 1);
            var graphics = Graphics.FromImage(image);
            int tabStop = 500;

            for (int jj = _pageStartIndex; jj < _fileList.Count && ii < count; ii++, jj++)
            {
                var tabStopScannerButton = list[ii] as TabStopScannerButton;
                tabStopScannerButton.SetTabStops(0.0f, new float[] { 25, tabStop });
                list[ii].UserData = _fileList[jj];

                var name = _fileList[jj].Name;

                var str = getMeasuredString(graphics, tabStopScannerButton.UIControl.Font, tabStop, name);

                list[ii].SetText(str + "\t" + _fileList[jj].LastWriteTime.ToString(DateFormat));
            }

            image.Dispose();
            graphics.Dispose();
        }