Esempio n. 1
0
        // 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;
            }
        }
Esempio n. 2
0
        // 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);
            }
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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");
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
 public ConfigForm(AmjFolder folder)
 {
     this.folder = folder;
     InitializeComponent();
 }