Ejemplo n.º 1
0
        /// <summary>
        /// Add packed file info
        /// </summary>
        /// <param name="parentNode"></param>
        /// <param name="parentTreeNode"></param>
        private void _AddPackedNodeToTreeView(BNK.FileInfoNode parentNode, TreeNode parentTreeNode)
        {
            if (parentNode != null)
            {
                TreeNode currentTreeNode = new TreeNode {
                    Text = parentNode.name
                };

                if (parentNode.type == BNK.FileInfoNodeType.Folder)
                {
                    currentTreeNode.ImageIndex         = (int)ItemPictures.ClosedPackedFolder;
                    currentTreeNode.SelectedImageIndex = (int)ItemPictures.OpenedPackedFolder;
                    currentTreeNode.ToolTipText        = _TOOLTIP_FOLDER;
                }
                else if (parentNode.type == BNK.FileInfoNodeType.File)
                {
                    currentTreeNode.ImageIndex         = _GetImageIndexFromFilename(parentNode.FileName);
                    currentTreeNode.SelectedImageIndex = _GetImageIndexFromFilename(parentNode.FileName);
                    currentTreeNode.Tag         = parentNode.Path;
                    currentTreeNode.ToolTipText = _GetPackedToolTip(parentNode.Path, false);
                }
                else if (parentNode.type == BNK.FileInfoNodeType.ExtensionGroup)
                {
                    currentTreeNode.ImageIndex         = (int)ItemPictures.ClosedExtFolder;
                    currentTreeNode.SelectedImageIndex = (int)ItemPictures.OpenedExtFolder;
                    currentTreeNode.ToolTipText        = _TOOLTIP_EXTENSION_GROUP;
                    currentTreeNode.NodeFont           = new Font(contentTreeView.Font, FontStyle.Bold);
                }

                parentTreeNode.Nodes.Add(currentTreeNode);

                foreach (BNK.FileInfoNode anotherNode in parentNode.childNodes)
                {
                    _AddPackedNodeToTreeView(anotherNode, currentTreeNode);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Met à jour la liste de fichiers empaquetés  dans le BNK spécifié
        /// </summary>
        /// <param name="keepSelection">true to ensure current selected item will be kept after refresh</param>
        private void _RefreshContentLists(bool keepSelection)
        {
            // Stores selected item if needed
            if (keepSelection)
            {
                ListView2.StoreSelectedIndex(contentListView);
                TreeView2.StoreSelectedIndex(contentTreeView);
            }

            // Lists clearing
            contentListView.Items.Clear();
            contentTreeView.Nodes.Clear();

            if (_CurrentBnkFile != null)
            {
                try
                {
                    Cursor = Cursors.WaitCursor;

                    // 1. ListView (flat)
                    foreach (string filePath in _CurrentBnkFile.GetPackedFilesPaths(null))
                    {
                        // File name
                        string fileName = _CurrentBnkFile.GetPackedFileName(filePath);

                        if (fileName == null)
                        {
                            throw new Exception(_ERROR_INVALID_DATA);
                        }

                        // Récupération des données fichier
                        ListViewItem anotherItem = new ListViewItem(fileName)
                        {
                            Tag         = filePath,
                            ImageIndex  = _GetImageIndexFromFilename(fileName),
                            ToolTipText = _GetPackedToolTip(filePath, false)
                        };

                        // Tag
                        // Image...
                        // EVO_42 : nouvelles icônes
                        // EVO_10 : Tooltip (type de fichier - taille)

                        contentListView.Items.Add(anotherItem);
                    }

                    // Applying filter, if any
                    fileSearchToolStripTextBox_TextChanged(this, new EventArgs());

                    // 2. TreeView (hierarchical)
                    BNK.FileInfoNode rootNode     = _CurrentBnkFile.FileInfoHierarchyRoot;
                    TreeNode         rootTreeNode = new TreeNode(_TREENODE_ROOT)
                    {
                        ImageIndex         = (int)ItemPictures.ClosedPackedFolder,
                        SelectedImageIndex = (int)ItemPictures.OpenedPackedFolder
                    };

                    contentTreeView.Nodes.Add(rootTreeNode);

                    _AddPackedNodeToTreeView(rootNode, rootTreeNode);
                    contentTreeView.ExpandAll();

                    // Restoring selected item, if needed
                    if (keepSelection)
                    {
                        ListView2.RestoreSelectedIndex(contentListView);
                        TreeView2.RestoreSelectedIndex(contentTreeView);
                    }

                    // Mise à jour statut
                    string countSizeInfo =
                        string.Format(_STATUS_COUNT_SIZE_CONTENTS, _CurrentBnkFile.PackedFilesCount, _CurrentBnkFile.Size);
                    string message =
                        string.Format(_STATUS_BNK_CONTENTS,
                                      _CurrentBnkFile.FileName,
                                      countSizeInfo);

                    StatusBarLogManager.ShowEvent(this, message);

                    Cursor = Cursors.Default;
                }
                catch (Exception ex)
                {
                    MessageBoxes.ShowError(this, ex);
                }
            }
        }