Exemple #1
0
        private string ToFilePath(Index2Entry entry)
        {
            // i.e. songs.dragonforce.ttfaf.fused.rif -> songs/dragonforce/ttfaf/fused.rif
            int lastIdx = entry.FilePath.Value.LastIndexOf(".");

            if (lastIdx == -1)
            {
                return(entry.FilePath.Value.ToLower());
            }

            if (entry.IsZObject())
            {
                lastIdx++;
            }

            char[] chars = entry.FilePath.Value.ToCharArray();
            for (int i = 0; i < lastIdx; i++)
            {
                if (chars[i] == '.')
                {
                    chars[i] = '/';
                }
            }

            return(new string(chars).ToLower());
        }
Exemple #2
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string path = "pack://application:,,,/Assets/";

            if (value is Index2 || value is FEnvironment)
            {
                // Root
                path += "box.png";
            }
            else if (value is Index2Entry)
            {
                // Index2 entry
                Index2Entry entry = value as Index2Entry;

                if (entry.IsZObject())
                {
                    path += "page_white_text.png";
                    // TODO: Add a pretty switch statement
                }
                else
                {
                    path += "page_white.png";
                }
            }
            else
            {
                // Assume folder
                path += "folder_closed.png";
            }

            // Returns assigned icon
            return(new BitmapImage(new Uri(path)));
        }
Exemple #3
0
        private TreeViewItem AddNode(TreeViewItem parent, string currentPath, string text, bool folder, Index2Entry entry)
        {
            //node.Items.Cast<TreeViewItem>().
            string key    = CreateKey(currentPath, folder);
            object needle = TreeView_Archive.FindName(key);

            if (needle != null)
            {
                return(needle as TreeViewItem);
            }
            else
            {
                //TreeFileEntry temp = new TreeFileEntry();
                TreeViewItem child = new TreeViewItem();
                child.Header = text;
                child.Name   = key;

                child.Selected += (sender, e) =>
                {
                    //this.selectedObject = entry;

                    if (!entry.IsZObject())
                    {
                        selectedObject = null;
                        ListView_Catalog.Items.Clear();
                        return;
                    }

                    var zObject = manager[entry.FilePath];
                    if (zObject is Catalog2 catalog2)
                    {
                        ListView_Catalog.ItemsSource = catalog2.Entries;
                    }
                    else
                    {
                        selectedObject = null;
                        ListView_Catalog.ItemsSource = null;
                    }
                };

                //temp.Path = currentPath;
                TreeView_Archive.RegisterName(key, child);

                int returnIdx = parent.Items.Add(child);
                if (!folder)
                {
                    child.Tag = entry;
                }
                SetNodeProperties(child);

                return(parent.Items[returnIdx] as TreeViewItem);
            }
        }