1
0
mirror of synced 2024-09-24 11:38:22 +02:00

Add checks for enabling certain content menus

This commit is contained in:
KillzXGaming 2019-05-18 11:22:18 -04:00
parent 7e8cfcd16c
commit 6c38b46ad4
7 changed files with 67 additions and 3 deletions

Binary file not shown.

View File

@ -94,7 +94,7 @@ namespace Switch_Toolbox.Library.Forms
stPanel1.Controls.Add(ObjectTree);
TreeNode FileRoot = new TreeNode(FileFormat.FileName);
FillTreeNodes(FileRoot, ((IArchiveFile)FileFormat).Files);
FillTreeNodes(FileRoot, (IArchiveFile)FileFormat);
AddNode(FileRoot);
}
else
@ -106,11 +106,11 @@ namespace Switch_Toolbox.Library.Forms
}
}
void FillTreeNodes(TreeNode root, IEnumerable<ArchiveFileInfo> files)
void FillTreeNodes(TreeNode root, IArchiveFile archiveFile)
{
var rootText = root.Text;
var rootTextLength = rootText.Length;
var nodeStrings = files;
var nodeStrings = archiveFile.Files;
foreach (var node in nodeStrings)
{
string nodeString = node.FileName;
@ -136,9 +136,17 @@ namespace Switch_Toolbox.Library.Forms
// Node was not found, add it
var folder = new ArchiveFolderNodeWrapper(parentName);
folder.CanReplace = archiveFile.CanReplaceFiles;
folder.CanDelete = archiveFile.CanDeleteFiles;
folder.CanRename = archiveFile.CanRenameFiles;
if (rootIndex == roots.Length - 1)
{
ArchiveNodeWrapper wrapperFile = new ArchiveNodeWrapper(parentName);
wrapperFile.CanReplace = archiveFile.CanReplaceFiles;
wrapperFile.CanDelete = archiveFile.CanDeleteFiles;
wrapperFile.CanRename = archiveFile.CanRenameFiles;
wrapperFile.ArchiveFileInfo = node;
wrapperFile.Name = nodeName;
parentNode.Nodes.Add(wrapperFile);

View File

@ -66,6 +66,28 @@ namespace Switch_Toolbox.Library
public class ArchiveFolderNodeWrapper : TreeNodeCustom
{
public bool CanReplace
{
set
{
if (value)
ContextMenuStrip.Items[1].Enabled = true;
else
ContextMenuStrip.Items[1].Enabled = false;
}
}
public bool CanRename = false;
public bool CanDelete
{
set
{
if (value)
ContextMenuStrip.Items[2].Enabled = true;
else
ContextMenuStrip.Items[2].Enabled = false;
}
}
public ArchiveFolderNodeWrapper(string text)
{
Text = text;
@ -73,6 +95,7 @@ namespace Switch_Toolbox.Library
ContextMenuStrip = new STContextMenuStrip();
ContextMenuStrip.Items.Add(new STToolStripItem("Extract Folder", ExtractAction));
ContextMenuStrip.Items.Add(new STToolStripItem("Replace Folder", ReplaceAction));
ContextMenuStrip.Items.Add(new STToolStripItem("Delete Folder", DeleteAction));
}
private void ExtractAction(object sender, EventArgs args)
@ -126,6 +149,12 @@ namespace Switch_Toolbox.Library
private void ReplaceAction(object sender, EventArgs args)
{
}
private void DeleteAction(object sender, EventArgs args)
{
}
private void CreateDirectoryIfExists(string Dir)
@ -146,6 +175,28 @@ namespace Switch_Toolbox.Library
public class ArchiveNodeWrapper : TreeNodeCustom
{
public bool CanReplace
{
set
{
if (value)
ContextMenuStrip.Items[1].Enabled = true;
else
ContextMenuStrip.Items[1].Enabled = false;
}
}
public bool CanRename = false;
public bool CanDelete
{
set
{
if (value)
ContextMenuStrip.Items[2].Enabled = true;
else
ContextMenuStrip.Items[2].Enabled = false;
}
}
public ArchiveNodeWrapper(string text)
{
Text = text;
@ -153,6 +204,7 @@ namespace Switch_Toolbox.Library
ContextMenuStrip = new STContextMenuStrip();
ContextMenuStrip.Items.Add(new STToolStripItem("Extract", ExtractAction));
ContextMenuStrip.Items.Add(new STToolStripItem("Replace", ReplaceAction));
ContextMenuStrip.Items.Add(new STToolStripItem("Delete", DeleteAction));
}
public virtual ArchiveFileInfo ArchiveFileInfo { get; set; }
@ -162,6 +214,10 @@ namespace Switch_Toolbox.Library
ArchiveFileInfo.Export();
}
private void DeleteAction(object sender, EventArgs args)
{
}
private void ReplaceAction(object sender, EventArgs args)
{
ArchiveFileInfo.Replace();