private bool OnExecute(TemplateDisplaySurface surface)
        {
            try
            {
                if (surface.GatherUserInput())
                {
                    Template temp = new Template();
                    temp.Execute(surface.esMeta, surface.Template.Header.FullFileName);

                    surface.CacheUserInput();

                    this.MainWindow.ShowStatusMessage("Template '" + surface.Template.Header.Title + "' generated successfully.");
                }
                else return false;
            }
            catch (Exception ex)
            {
                this.MainWindow.ShowError(ex);
                return false;
            }

            return true;
        }
        private void ExecuteRecordedTemplate(esProjectNode node)
        {
            try
            {
                if (node != null && !node.IsFolder)
                {
                    Root esMeta = Create(node.Settings as esSettings);
                    esMeta.Input = node.Input;

                    Template template = new Template();
                    template.Execute(esMeta, node.Template.Header.FullFileName);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex);
            }
        }
        private void ExecuteRecordedTemplate(TreeNode node)
        {
            try
            {
                if (node != null && node.Tag != null)
                {
                    ProjectNodeData tag = node.Tag as ProjectNodeData;

                    Root esMeta = esMetaCreator.Create(tag.Settings as esSettings);
                    esMeta.Input = tag.Input;

                    Template template = new Template();
                    template.Execute(esMeta, tag.Template.Header.FullFileName);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }