Skip to content

Commit 912b209

Browse files
s202283440s202283440
authored andcommitted
fully working
1 parent 2b1619a commit 912b209

8 files changed

Lines changed: 43 additions & 30 deletions

File tree

FileSystem/MainForm.Designer.cs

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FileSystem/MainForm.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private TreeNode CreateTreeNode(IComponent component)
105105
if (component is Folder folder)
106106
{
107107
string sizeText = FormatSize(folder.Size);
108-
node = new TreeNode($"{folder.Name} ({sizeText})");
108+
node = new TreeNode(folder.Name);
109109
node.ImageIndex = 0;
110110
node.SelectedImageIndex = 0;
111111

@@ -143,8 +143,6 @@ private void Visualize()
143143
{
144144
if (rootFolder != null)
145145
{
146-
pnlVisualization.Controls.Clear();
147-
pnlVisualization.AutoScroll = true;
148146
rootFolder.Visualize(currentStrategy, pnlVisualization);
149147
}
150148
}
@@ -154,6 +152,7 @@ private void rbTree_CheckedChanged(object sender, EventArgs e)
154152
if (rbTree.Checked)
155153
{
156154
currentStrategy = new TreeVisualizationStrategy();
155+
Text = "Folder Traversal";
157156
Visualize();
158157
}
159158
}
@@ -163,8 +162,14 @@ private void rbBarChart_CheckedChanged(object sender, EventArgs e)
163162
if (rbBarChart.Checked)
164163
{
165164
currentStrategy = new BarChartVisualizationStrategy();
165+
Text = "Folder Size Visualizer";
166166
Visualize();
167167
}
168168
}
169+
170+
private void pnlVisualization_Paint(object sender, PaintEventArgs e)
171+
{
172+
173+
}
169174
}
170175
}

FileSystem/MainForm.resx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -125,32 +125,32 @@
125125
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
126126
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
127127
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHAcAAAJNU0Z0AUkBTAIBAQMB
128-
AAGgAQABoAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/
128+
AAGoAQABqAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/
129129
AP8AGAABXAJfAcgBYAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMB
130130
YAJlAeMBYAJlAeMBYAJlAeMBYAJlAeMBXAJfAcjIAAEyAccB/gH/ATIBxwH+Af8BMgHHAf4B/wEyAccB
131131
/gH/ATIBxwH+Af8BMgHHAf4B/wEyAccB/gH/ATIBxwH+Af8BMgHHAf4B/wEyAccB/gH/ATIBxwH+Af8B
132132
MgHHAf4B/wEyAccB/gH/ATIBxwH+Af9gAAMrAUEDKwFBYAABOAHJAf4B/wE4AckB/gH/ATgByQH+Af8B
133133
OAHJAf4B/wE4AckB/gH/ATgByQH+Af8BOAHJAf4B/wE4AckB/gH/ATgByQH+Af8BOAHJAf4B/wE4AckB
134-
/gH/ATgByQH+Af8BOAHJAf4B/wE4AckB/gH/IAACRwFGAYACRwFGAYA0AAMrAUIDRwHrA0cB6wMrAUJc
134+
/gH/ATgByQH+Af8BOAHJAf4B/wE4AckB/gH/IAACRwFGAYACRwFGAYA0AAMrAUIDTAHrA0wB6wMrAUJc
135135
AAE/AcsB/gH/AT8BywH+Af8BPwHLAf4B/wE/AcsB/gH/AT8BywH+Af8BPwHLAf4B/wE/AcsB/gH/AT8B
136136
ywH+Af8BPwHLAf4B/wE/AcsB/gH/AT8BywH+Af8BPwHLAf4B/wE/AcsB/gH/AT8BywH+Af8cAAJHAUYB
137-
gAHzAZYBIQH/AfMBlgEhAf8DSQGILAADKQE9A0UB6QMsAUMDKQE9A0UB6gMsAUNYAAFFAc0B/gH/AUUB
137+
gAHzAZYBIQH/AfMBlgEhAf8DSQGILAADKQE9A0kB6QMsAUMDKQE9A0gB6gMsAUNYAAFFAc0B/gH/AUUB
138138
zQH+Af8BRQHNAf4B/wFFAc0B/gH/AUUBzQH+Af8BRQHNAf4B/wFFAc0B/gH/AUUBzQH+Af8BRQHNAf4B
139139
/wFFAc0B/gH/AUUBzQH+Af8BRQHNAf4B/wFFAc0B/gH/AUUBzQH+Af8YAAJIAUcBgwHzAZYBIQH/A0kB
140-
iANJAYgB8wGWASEB/wJIAUcBgyQAAykBPQNFAekDLAFDCAADKQE9A0UB6gMsAUNUAAFLAc8C/wFLAc8C
140+
iANJAYgB8wGWASEB/wJIAUcBgyQAAykBPQNJAekDLAFDCAADKQE9A0gB6gMsAUNUAAFLAc8C/wFLAc8C
141141
/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C/wFLAc8C
142-
/wFLAc8C/wFLAc8C/xQAAkcBRgGBAfMBlgEhAf8DSwGMCAADSAGEAfMBlgEhAf8DSgGJHAADKQE9A0UB
143-
6QMsAUMQAAMpAT0DRQHqAywBQ1AAAVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB
142+
/wFLAc8C/wFLAc8C/xQAAkcBRgGBAfMBlgEhAf8DSwGMCAADSAGEAfMBlgEhAf8DSgGJHAADKQE9A0kB
143+
6QMsAUMQAAMpAT0DSAHqAywBQ1AAAVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB
144144
0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/AVEB0QL/EAADRwGCAfMBlgEhAf8D
145-
SwGMEAADSAGEAfMBlgEhAf8CSwFKAYoUAAMpAT0DRQHpAywBQxgAAykBPQNFAeoDLAFDTAABVwHTAv8B
145+
SwGMEAADSAGEAfMBlgEhAf8CSwFKAYoUAAMpAT0DSQHpAywBQxgAAykBPQNIAeoDLAFDTAABVwHTAv8B
146146
VwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8BVwHTAv8B
147147
VwHTAv8BVwHTAv8BVwHTAv8MAANHAYIB8wGWASEB/wNLAYwYAANIAYQB8wGWASEB/wJLAUoBigwAAyoB
148-
PwNHAesDKwFCIAADKwFCA0cB6wMqAT9IAAFcAdQB/gH/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B
149-
1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/CAADFQEcAZgB
150-
dwFKAe4DSQGIIAADSQGIAZgBdwFKAe4DFQEcCAADGAEgAyoBPygAAyoBPwMYASBJAAGIAckB/wEAAYgB
148+
PwNMAesDKwFCIAADKwFCA0wB6wMqAT9IAAFcAdQB/gH/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B
149+
1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/AV0B1AL/CAADFQEcAZIB
150+
dAFNAe4DSQGIIAADSQGIAZIBdAFNAe4DFQEcCAADGAEgAyoBPygAAyoBPwMYASBJAAGIAckB/wEAAYgB
151151
yQH/AQABiAHJAf8BAAGIAckB/wEAAYgByQH/AQIBiQHKAf8BMwGwAeUB/wFkAdYC/wFkAdYC/wFkAdYC
152152
/wFkAdYC/wFkAdYC/wFkAdYC/wFiAdQB/gH/DAADFQEcKAADFQEcjQABlQHYAf8BAAGVAdgB/wEAAZUB
153-
2AH/AQABlQHYAf8BAAGVAdgB/wEAAZUB2AH/AVkBcAFzAfEDTQGTA0wBjgNMAY4DTAGOA0wBjgNMAY4D
153+
2AH/AQABlQHYAf8BAAGVAdgB/wEAAZUB2AH/AVoBcAFyAfEDTQGTA0wBjgNMAY4DTAGOA0wBjgNMAY4D
154154
PQFnyAADSgGJAVMCVQGqAVMCVQGqAVMCVQGqAVMCVQGqAVMCVAGmAyQBNf8A/wDiAAFCAU0BPgcAAT4D
155155
AAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAG/wIABv8CAAGAAQEE/wIAAYABAQL/Af4BfwIAAYAB
156156
AQH+AX8B/AE/AgABgAEBAfwBPwH4AR8CAAGAAQEB+AEfAfEBjwIAAYABAQHxAY8B4wHHAgABgAEBAeMC
@@ -166,14 +166,14 @@
166166
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
167167
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
168168
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAnAIAAAJNU0Z0AUkBTAIBAQIB
169-
AAEoAQABKAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/
170-
AP8A/wAxAAMrAUEDKwFB9AADKwFCAzoB6wM6AesDKwFCNAACRwFGAYACRwFGAYCwAAMpAT0DOgHpAywB
171-
QwMpAT0DOgHqAywBQywAAkcBRgGAAfMBlgEhAf8B8wGWASEB/wNJAYioAAMpAT0DOgHpAywBQwgAAykB
172-
PQM6AeoDLAFDJAACSAFHAYMB8wGWASEB/wNJAYgDSQGIAfMBlgEhAf8CSAFHAYOgAAMpAT0DOgHpAywB
173-
QxAAAykBPQM6AeoDLAFDHAACRwFGAYEB8wGWASEB/wNLAYwIAANIAYQB8wGWASEB/wNKAYmYAAMpAT0D
174-
OgHpAywBQxgAAykBPQM6AeoDLAFDFAADRwGCAfMBlgEhAf8DSwGMEAADSAGEAfMBlgEhAf8CSwFKAYqQ
175-
AAMqAT8DOgHrAysBQiAAAysBQgM6AesDKgE/DAADRwGCAfMBlgEhAf8DSwGMGAADSAGEAfMBlgEhAf8C
176-
SwFKAYqMAAMYASADKgE/KAADKgE/AxgBIAgAAxUBHAGpAXwBQgHuA0kBiCAAA0kBiAGpAXwBQgHuAxUB
169+
AAEwAQABMAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/
170+
AP8A/wAxAAMrAUEDKwFB9AADKwFCA0EB6wNBAesDKwFCNAACRwFGAYACRwFGAYCwAAMpAT0DQQHpAywB
171+
QwMpAT0DPwHqAywBQywAAkcBRgGAAfMBlgEhAf8B8wGWASEB/wNJAYioAAMpAT0DQQHpAywBQwgAAykB
172+
PQM/AeoDLAFDJAACSAFHAYMB8wGWASEB/wNJAYgDSQGIAfMBlgEhAf8CSAFHAYOgAAMpAT0DQQHpAywB
173+
QxAAAykBPQM/AeoDLAFDHAACRwFGAYEB8wGWASEB/wNLAYwIAANIAYQB8wGWASEB/wNKAYmYAAMpAT0D
174+
QQHpAywBQxgAAykBPQM/AeoDLAFDFAADRwGCAfMBlgEhAf8DSwGMEAADSAGEAfMBlgEhAf8CSwFKAYqQ
175+
AAMqAT8DQQHrAysBQiAAAysBQgNBAesDKgE/DAADRwGCAfMBlgEhAf8DSwGMGAADSAGEAfMBlgEhAf8C
176+
SwFKAYqMAAMYASADKgE/KAADKgE/AxgBIAgAAxUBHAGhAXkBRwHuA0kBiCAAA0kBiAGhAXkBRwHuAxUB
177177
HMwAAxUBHCgAAxUBHP8A/wD/AP8AjAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD
178178
/wEABP8EAAT/BAAE/wQAAf4BfwL/BAAB/AE/Af4BfwQAAfgBHwH8AT8EAAHxAY8B+AEfBAAB4wHHAfEB
179179
jwQAAccC4wHHBAABjwHxAccB4wQAAZ8B+QGPAfEEAAL/Ad8B+wQABP8EAAT/BAAE/wQABP8EAAs=

FileSystem/barchart_strategy.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class BarChartVisualizationStrategy : IVisualizationStrategy
1212
public void VisualizeFolder(Folder folder, Panel panel)
1313
{
1414
panel.Controls.Clear();
15+
1516
currentY = 10;
1617
items = new List<(string, long, bool)>();
1718

@@ -38,13 +39,13 @@ private void CollectItems(Folder folder)
3839
{
3940
foreach (var child in folder.Children)
4041
{
41-
if (child is Folder childFolder)
42+
if (child.isFolder)
4243
{
43-
items.Add((childFolder.Name, childFolder.Size, true));
44+
items.Add((child.Name, child.Size, true));
4445
}
45-
else if (child is File file)
46+
else if (!child.isFolder)
4647
{
47-
items.Add((file.Name, file.Size, false));
48+
items.Add((child.Name, child.Size, false));
4849
}
4950
}
5051

FileSystem/component_interface.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public interface IComponent
55
{
66
string Name { get; }
77
long Size { get; }
8+
bool isFolder { get; }
89
long CalculateSize();
910
void Visualize(IVisualizationStrategy strategy, Panel panel);
1011
}

FileSystem/file_class.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ public class File : IComponent
66
public string Name { get; set; }
77
public long Size { get; set; }
88
public string Extension { get; set; }
9+
public bool isFolder => false;
10+
911

1012
public File(string name, long size, string extension)
1113
{

FileSystem/folder_class.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ public class Folder : IComponent
99

1010
public List<IComponent> Children => children;
1111

12+
public bool isFolder => true;
13+
1214
public Folder(string name)
1315
{
1416
Name = name;

FileSystem/tree_strategy.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,20 @@ private void DrawFolderTree(Folder folder, Panel panel, int x, int level)
4242
// Draw children
4343
foreach (var child in folder.Children)
4444
{
45-
if (child is Folder childFolder)
45+
if (child.isFolder)
4646
{
4747
// Draw connecting line from parent to child
4848
DrawLine(panel, x + (level * INDENT) + 60, folderY + 10,
4949
x + ((level + 1) * INDENT) + 60, currentY + 10);
5050

51-
DrawFolderTree(childFolder, panel, x, level + 1);
51+
DrawFolderTree((Folder)child, panel, x, level + 1);
5252
}
53-
else if (child is File file)
53+
else if (!child.isFolder)
5454
{
5555
// Draw connecting line from parent to file
5656
DrawLine(panel, x + (level * INDENT) + 60, folderY + 10,
5757
x + ((level + 1) * INDENT) + 60, currentY + 10);
58-
DrawFile(file, panel, x + ((level + 1) * INDENT) + 20 , currentY );
58+
DrawFile((File)child, panel, x + ((level + 1) * INDENT) + 20 , currentY );
5959
currentY += LINE_HEIGHT;
6060
}
6161
}

0 commit comments

Comments
 (0)