// Constructors public Browser() { selectedAttributes = new List <String>(); selectedDirs = new List <string>(); InitializeComponent(); bool initFromRecentPath = false; foreach (String line in File.ReadAllLines(Program.SettingsFile)) { if (line.Contains("RecentPath")) { String recentPath = line.Split('=')[1]; if (recentPath[recentPath.Length - 1] == ':') { recentPath += "\\"; } if (File.Exists(recentPath + "\\amj.attrlist")) { AmjFolder folder = new AmjFolder(recentPath); folder.loadContents(); populateAmjFolder(folder, 0); curFolder = folder; } else { RegularFolder folder = new RegularFolder(recentPath); folder.loadContents(); populateRegularFolder(folder); curFolder = folder; } foreach (String dir in recentPath.Split('\\')) { if (dir.Length > 0) { if (dir.Contains(":")) { selectedDirs.Add(dir + "\\"); } else { selectedDirs.Add(dir); } } } this.txtPath.Text = recentPath; initFromRecentPath = true; break; } } if (!initFromRecentPath) { RegularFolder rootFolder = new RegularFolder(""); rootFolder.loadContents(); populateRegularFolder(rootFolder); curFolder = rootFolder; } }
// ListView Population Functions private void populateRegularFolder(RegularFolder folder) { listView1.Columns.Clear(); listView1.Items.Clear(); ImageList il = new ImageList(); listView1.SmallImageList = il; listView1.Columns.Add("Name", 300); listView1.Columns.Add("Type", 300); foreach (AmjObject obj in folder.contents) { ListViewItem item; if (obj is AmjFolder) { AmjFolder f = (AmjFolder)obj; il.Images.Add(f.name, IconReader.GetFolderIcon(IconReader.IconSize.Small, IconReader.FolderType.Open)); item = new ListViewItem(f.name); item.ForeColor = Color.Green; item.ImageKey = f.name; //item.UseItemStyleForSubItems = false; ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem(item, "Amj Folder"); //subItem.ForeColor = Color.Green; item.SubItems.Add(subItem); } else if (obj is RegularFolder) { RegularFolder f = (RegularFolder)obj; il.Images.Add(f.name, IconReader.GetFolderIcon(IconReader.IconSize.Small, IconReader.FolderType.Open)); item = new ListViewItem(f.name); item.ImageKey = f.name; item.SubItems.Add("Folder"); } else if (obj is RegularFile) { RegularFile f = (RegularFile)obj; //il.Images.Add(f.name, Icon.ExtractAssociatedIcon(f.path)); il.Images.Add(f.name, IconReader.GetFileIcon(f.path, IconReader.IconSize.Small, true)); item = new ListViewItem(f.name); item.ImageKey = f.name; item.SubItems.Add("File"); } else { continue; } item.Tag = obj; this.listView1.Items.Add(item); } }
private void doOpen() { if (listView1.SelectedItems.Count == 0) { return; } AmjObject obj = (AmjObject)listView1.SelectedItems[0].Tag; if (obj is AmjFolder) { AmjFolder f = (AmjFolder)obj; curFolder = f; f.loadContents(); populateAmjFolder(f, 0); selectedDirs.Add(curFolder.name); } else if (obj is RegularFolder) { RegularFolder f = (RegularFolder)obj; curFolder = f; f.loadContents(); populateRegularFolder(f); selectedDirs.Add(curFolder.name); } else if (obj is RegularFile) { RegularFile f = (RegularFile)obj; f.open(); } else if (obj is AmjAttribute) { AmjAttribute a = (AmjAttribute)obj; selectedAttributes.Add(a.value == "Unknown"?"":a.value); populateAmjFolder((AmjFolder)curFolder, selectedAttributes.Count); selectedDirs.Add("[" + a.value + "]"); } this.txtPath.Text = ""; foreach (String dir in selectedDirs) { this.txtPath.Text += dir.Contains("\\") ? dir : dir + "\\"; } if (obj is RegularFolder) { File.WriteAllText(Program.SettingsFile, "RecentPath=" + this.txtPath.Text.Substring(0, this.txtPath.Text.Length - 1)); } }
private void doSetupAsAmjFolder() { if (listView1.SelectedItems.Count == 0) { return; } RegularFolder obj = (RegularFolder)listView1.SelectedItems[0].Tag; if (!(obj is RegularFolder)) { return; } RegularFolder folder = (RegularFolder)obj; AmjFolder amjFolder = new AmjFolder(folder.path); curFolder.loadContents(); populateRegularFolder(curFolder); MessageBox.Show(this, "Done", "Info"); }
private void doRrevertBackAsRegularFolder() { if (listView1.SelectedItems.Count == 0) { return; } AmjObject obj = (AmjObject)listView1.SelectedItems[0].Tag; if (!(obj is AmjFolder)) { return; } AmjFolder folder = (AmjFolder)obj; folder.revertAsRegularFolder(); curFolder.loadContents(); populateRegularFolder(curFolder); MessageBox.Show(this, "Done", "Info"); }
private void populateAmjFolder(AmjFolder folder, int attrIndex) { listView1.Columns.Clear(); listView1.Items.Clear(); ImageList il = new ImageList(); listView1.SmallImageList = il; if (attrIndex == folder.attributesList.Count) // populate AmjFiles here { listView1.Columns.Add("Name", 300); foreach (String attr in folder.attributesList) { listView1.Columns.Add(attr); } foreach (AmjObject obj in folder.getFiles(selectedAttributes)) { if (!(obj is AmjFile)) { continue; } AmjFile f = (AmjFile)obj; ListViewItem item = new ListViewItem(f.name); il.Images.Add(f.name, Icon.ExtractAssociatedIcon(f.path)); item.ImageKey = f.name; foreach (String attr in folder.attributesList) { item.SubItems.Add(f.getAttribute(attr)); } item.Tag = f; listView1.Items.Add(item); } } else // Populate current attribute list { listView1.Columns.Add(folder.attributesList[attrIndex], 300); listView1.Columns.Add("Number of Files", 100); AmjAttribute attrObj; ListViewItem item; List <String> list; foreach (String attrVal in folder.getAttributeValues(attrIndex)) { attrObj = new AmjAttribute(folder.attributesList[attrIndex], attrVal); item = new ListViewItem(attrVal); list = new List <string>(selectedAttributes); list.Add(attrVal); item.SubItems.Add(folder.getFiles(list).Count.ToString()); item.Tag = attrObj; listView1.Items.Add(item); } attrObj = new AmjAttribute(folder.attributesList[attrIndex], "Unknown"); item = new ListViewItem("Unknown"); list = new List <string>(selectedAttributes); list.Add(""); item.SubItems.Add(folder.getFiles(list).Count.ToString()); item.Tag = attrObj; listView1.Items.Add(item); } }
public ConfigForm(AmjFolder folder) { this.folder = folder; InitializeComponent(); }