/* * оновлюємо кнопки дисків * параметри DisksView.Items.Add disksIcons.Images: * 0 - Fixed or NoRootDirectory * 1 - CDRom * 2 - Network * 3 - Ram * 4 - Removable * 5 - Unknown */ public void UpdateDisksView(Field field, List<Disk> disks) { if (disks != null) { field.DisksView.Items.Clear(); foreach (Disk disk in disks) { System.Drawing.Image diskIcon; if (disk.DiskType == DriveType.Fixed || disk.DiskType == DriveType.NoRootDirectory) diskIcon = disksIcons.Images[0]; else if (disk.DiskType == DriveType.CDRom) diskIcon = disksIcons.Images[1]; else if (disk.DiskType == DriveType.Network) diskIcon = disksIcons.Images[2]; else if (disk.DiskType == DriveType.Ram) diskIcon = disksIcons.Images[3]; else if (disk.DiskType == DriveType.Removable) diskIcon = disksIcons.Images[4]; else diskIcon = disksIcons.Images[5]; if (field.DisksView == disksView1) field.DisksView.Items.Add(disk.Name, diskIcon).Click += new EventHandler(DiskView1Btn_Click); else if (field.DisksView == disksView2) field.DisksView.Items.Add(disk.Name, diskIcon).Click += new EventHandler(DiskView2Btn_Click); } } }
public void UpdateFieldView(Field field) { List<ListViewItem> tempItemsList = new List<ListViewItem>(); MakeTempItemsList(field, tempItemsList); if (String.Equals(field.FieldPath.Text, field.OpenedElement.Path)) { int listEquals = ListEquals(field.FieldView.Items, tempItemsList); if (listEquals == 1) { //початок оновлення (промальовки) списку field.FieldView.BeginUpdate(); for (int i = 0; i < tempItemsList.Count; i++) if (!tempItemsList[i].Equals(field.FieldView.Items[i])) field.FieldView.Items[i] = tempItemsList[i]; //кінець оновлення field.FieldView.EndUpdate(); return; } if (listEquals == 2) return; } //початок оновлення (промальовки) списку field.FieldView.BeginUpdate(); field.FieldView.Items.Clear(); foreach (ListViewItem item in tempItemsList) field.FieldView.Items.Add(item); //виводимо повний шлях до папки чи диску в якому знаходимося field.FieldPath.Text = field.OpenedElement.Path; //кінець оновлення field.FieldView.EndUpdate(); }
public FileManager(ListView field1View, ListView field2View, TextBox field1Path, TextBox field2Path, ToolStrip disksView1, ToolStrip disksView2, Timer refresher, MainForm mainForm) { UpdateDisks(); Field1 = new Field(field1View, field1Path, disksView1, Disks); Field2 = new Field(field2View, field2Path, disksView2, Disks); RefreshAll(mainForm); CurrentField = Field1; refresher.Enabled = true; }
/* * Зробити тимчасовий список елементів, для того, щоб перевірити, * чи потрібно і як потрібно оновлювати список елементів FieldView */ private void MakeTempItemsList(Field field, List<ListViewItem> tempItemsList) { if (tempItemsList == null) tempItemsList = new List<ListViewItem>(); /* * отримуємо список папок і файлів * параметри ListViewItem.Add * 0 - папки * 1 - файли * 2 - папка вгору */ foreach (IFieldElement fieldElement in field.FieldElementList) { if (fieldElement is Folder || fieldElement is Disk) { string[] listViewItemData = new string[field1View.Columns.Count]; listViewItemData[0] = fieldElement.Name; listViewItemData[1] = fieldElement.Type; listViewItemData[2] = ""; tempItemsList.Add(fieldElement.Name == ".." ? new ListViewItem(listViewItemData, 2) : new ListViewItem(listViewItemData, 0)); } else if (fieldElement is File) { string[] listViewItemData = new string[field1View.Columns.Count]; listViewItemData[0] = fieldElement.Name; listViewItemData[1] = fieldElement.Type; listViewItemData[2] = ((File)fieldElement).Size.ToString(); tempItemsList.Add(new ListViewItem(listViewItemData, 1)); } } }