private void InitializeAssetTree()
        {
            AssetsTreeView.Nodes.Clear();

            //If no project loaded just abort
            if (!m_projectLoaded)
            {
                return;
            }

            var stack   = new Stack <TreeNode>();
            var rootDir = new DirectoryInfo(m_assetsDirectory);
            var node    = new TreeNode(rootDir.Name)
            {
                Tag = rootDir
            };

            stack.Push(node);

            while (stack.Count > 0)
            {
                var currentNode   = stack.Pop();
                var directoryInfo = (DirectoryInfo)currentNode.Tag;
                foreach (var directory in directoryInfo.GetDirectories())
                {
                    FileAttributes attributes = File.GetAttributes(directory.FullName);
                    if ((attributes & FileAttributes.Hidden) == 0)
                    {
                        var childDirNode = new TreeNode(directory.Name)
                        {
                            Tag = directory
                        };
                        currentNode.Nodes.Add(childDirNode);
                        stack.Push(childDirNode);
                    }
                }

                foreach (var file in directoryInfo.GetFiles())
                {
                    FileAttributes attributes = File.GetAttributes(file.FullName);
                    if ((attributes & FileAttributes.Hidden) == 0)
                    {
                        var childNode    = new TreeNode(file.Name);
                        var resourceInfo = BombastResourceHelper.GetBombastResourceFromFilepath(file.FullName, m_assetsDirectory);
                        childNode.Tag = resourceInfo;
                        currentNode.Nodes.Add(childNode);
                    }
                }
            }

            AssetsTreeView.Nodes.Add(node);
        }
        private void RecentProjectMenuItem_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem item = (ToolStripMenuItem)sender;

            var resourceFilePath = item.Text;

            //If project file not found, remove from list and do not open
            if (!File.Exists(resourceFilePath))
            {
                Properties.Settings.Default.RecentlyOpenedProjects.Remove(resourceFilePath);
                MessageBox.Show(string.Format("The Project file '{0}' does not seem to exist anymore on the disk.", resourceFilePath), "Project does not exist");
                return;
            }

            var resourceInfo = BombastResourceHelper.GetBombastResourceFromFilepath(resourceFilePath);

            OpenResource(resourceInfo);
        }