diff --git a/CSharp/Plugins/UniversalEditor.Essential/ProjectTask.cs b/CSharp/Plugins/UniversalEditor.Essential/ProjectTask.cs index e41e4519..4d8e82f9 100644 --- a/CSharp/Plugins/UniversalEditor.Essential/ProjectTask.cs +++ b/CSharp/Plugins/UniversalEditor.Essential/ProjectTask.cs @@ -73,219 +73,4 @@ namespace UniversalEditor } } } - public abstract class ProjectTaskAction : References - { - public abstract string Title { get; } - protected abstract void ExecuteInternal(ExpandedStringVariableStore variables); - - public void Execute(ExpandedStringVariableStore variables) - { - ExecuteInternal(variables); - } - - public class ProjectTaskActionCollection - : System.Collections.ObjectModel.Collection - { - - } - - public virtual ProjectTaskActionReference MakeReference() - { - return new ProjectTaskActionReference(GetType()); - } - - public void LoadFromMarkup(MarkupTagElement tag) - { - if (tag == null) return; - if (tag.FullName != "Action") return; - LoadFromMarkupInternal(tag); - } - protected abstract void LoadFromMarkupInternal(MarkupTagElement tag); - } - public class ProjectTaskActionReference : ReferencedBy - { - private Guid mvarProjectTaskActionTypeID = Guid.Empty; - public Guid ProjectTaskActionTypeID { get { return mvarProjectTaskActionTypeID; } set { mvarProjectTaskActionTypeID = value; } } - - private string mvarProjectTaskActionTypeName = String.Empty; - public string ProjectTaskActionTypeName { get { return mvarProjectTaskActionTypeName; } set { mvarProjectTaskActionTypeName = value; } } - - private Type mvarProjectTaskActionType = null; - public ProjectTaskActionReference(Type type) - { - mvarProjectTaskActionType = type; - mvarProjectTaskActionTypeName = type.FullName; - } - public ProjectTaskActionReference(Guid id) - { - mvarProjectTaskActionTypeID = id; - } - public ProjectTaskActionReference(string typeName) - { - mvarProjectTaskActionTypeName = typeName; - } - public ProjectTaskAction Create() - { - if (mvarProjectTaskActionType != null) - { - return (ProjectTaskAction)mvarProjectTaskActionType.Assembly.CreateInstance(mvarProjectTaskActionType.FullName); - } - return null; - } - - public string[] GetDetails() - { - throw new NotImplementedException(); - } - - public bool ShouldFilterObject(string filter) - { - throw new NotImplementedException(); - } - - private static Dictionary _dict = null; - - public static ProjectTaskActionReference GetByTypeID(Guid id) - { - if (_dict == null) - { - _dict = new Dictionary(); - Type[] types = Common.Reflection.GetAvailableTypes(); - foreach (Type type in types) - { - if (!type.IsAbstract && type.IsSubclassOf(typeof(ProjectTaskAction))) - { - ProjectTaskAction action = (ProjectTaskAction)type.Assembly.CreateInstance(type.FullName); - ProjectTaskActionReference actionref = action.MakeReference(); - _dict[actionref.ProjectTaskActionTypeID] = actionref; - } - } - } - return _dict[id]; - } - } - public class ProjectTaskActionPackage : ProjectTaskAction - { - private DataFormatReference mvarDataFormatReference = null; - /// - /// The that specifies a compatible with the - /// in which to package the - /// project files. - /// - public DataFormatReference DataFormatReference { get { return mvarDataFormatReference; } } - - private static ProjectTaskActionReference _ptar = null; - public override ProjectTaskActionReference MakeReference() - { - if (_ptar == null) - { - _ptar = base.MakeReference(); - _ptar.ProjectTaskActionTypeID = new Guid("{527B7B07-FB0E-46F2-9EA8-0E93E3B21A14}"); - _ptar.ProjectTaskActionTypeName = "UniversalEditor.ProjectTaskActionPackage"; - } - return _ptar; - } - - private ExpandedString mvarOutputFileName = null; - public ExpandedString OutputFileName { get { return mvarOutputFileName; } set { mvarOutputFileName = value; } } - - public override string Title - { - get { return "Package: "; } - } - protected override void ExecuteInternal(ExpandedStringVariableStore variables) - { - DataFormat df = mvarDataFormatReference.Create(); - - string outputFileName = String.Empty; - if (mvarOutputFileName != null) outputFileName = mvarOutputFileName.ToString(variables); - } - protected override void LoadFromMarkupInternal(MarkupTagElement tag) - { - MarkupTagElement tagDataFormatReference = (tag.Elements["DataFormatReference"] as MarkupTagElement); - if (tagDataFormatReference != null) - { - MarkupAttribute attTypeName = tagDataFormatReference.Attributes["TypeName"]; - MarkupAttribute attTypeID = tagDataFormatReference.Attributes["TypeID"]; - if (attTypeName == null && attTypeID == null) throw new ArgumentNullException("Must specify at least one of 'TypeName' or 'TypeID'"); - - - } - - MarkupTagElement tagOutputFileName = (tag.Elements["OutputFileName"] as MarkupTagElement); - if (tagOutputFileName != null) mvarOutputFileName = ExpandedString.FromMarkup(tagOutputFileName); - } - } - public class ProjectTaskActionExecute : ProjectTaskAction - { - public override string Title - { - get { return "Execute: " + mvarCommandLine.ToString(); } - } - - private static ProjectTaskActionReference _ptar = null; - public override ProjectTaskActionReference MakeReference() - { - if (_ptar == null) - { - _ptar = base.MakeReference(); - _ptar.ProjectTaskActionTypeID = new Guid("{EE505E05-F125-4718-BA0A-879C72B5125A}"); - _ptar.ProjectTaskActionTypeName = "UniversalEditor.ProjectTaskActionExecute"; - } - return _ptar; - } - - private ExpandedString mvarCommandLine = ExpandedString.Empty; - public ExpandedString CommandLine - { - get { return mvarCommandLine; } - set - { - if (value == null) - { - mvarCommandLine = ExpandedString.Empty; - return; - } - mvarCommandLine = value; - } - } - - protected override void ExecuteInternal(ExpandedStringVariableStore variables) - { - string fileNameWithArguments = mvarCommandLine.ToString(variables); - if (String.IsNullOrEmpty(fileNameWithArguments)) return; - - string[] fileNameArgumentsSplit = fileNameWithArguments.Split(new char[] { ' ' }, "\"", StringSplitOptions.None, 2); - string fileName = fileNameArgumentsSplit[0]; - string arguments = fileNameArgumentsSplit[1]; - - if (!System.IO.File.Exists(fileName)) throw new System.IO.FileNotFoundException(fileName); - - System.Diagnostics.Process p = new System.Diagnostics.Process(); - p.StartInfo = new System.Diagnostics.ProcessStartInfo(fileName, arguments); - p.StartInfo.UseShellExecute = false; - p.StartInfo.CreateNoWindow = true; - p.StartInfo.RedirectStandardError = true; - p.StartInfo.RedirectStandardOutput = true; - p.Start(); - p.WaitForExit(); - - string error = p.StandardError.ReadToEnd(); - string output = p.StandardOutput.ReadToEnd(); - - if (!String.IsNullOrEmpty(error)) - { - throw new Exception(error); - } - } - - protected override void LoadFromMarkupInternal(MarkupTagElement tag) - { - MarkupTagElement tagCommandLine = (tag.Elements["CommandLine"] as MarkupTagElement); - if (tagCommandLine != null) - { - mvarCommandLine = ExpandedString.FromMarkup(tagCommandLine); - } - } - } } diff --git a/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskAction.cs b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskAction.cs new file mode 100644 index 00000000..274f2a65 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskAction.cs @@ -0,0 +1,98 @@ + using System; +using System.Collections.Generic; +using UniversalEditor.ObjectModels.Markup; + +namespace UniversalEditor +{ + public abstract class ProjectTaskAction : References + { + public abstract string Title { get; } + protected abstract void ExecuteInternal(ExpandedStringVariableStore variables); + + public void Execute(ExpandedStringVariableStore variables) + { + ExecuteInternal(variables); + } + + public class ProjectTaskActionCollection + : System.Collections.ObjectModel.Collection + { + + } + + public virtual ProjectTaskActionReference MakeReference() + { + return new ProjectTaskActionReference(GetType()); + } + + public void LoadFromMarkup(MarkupTagElement tag) + { + if (tag == null) return; + if (tag.FullName != "Action") return; + LoadFromMarkupInternal(tag); + } + protected abstract void LoadFromMarkupInternal(MarkupTagElement tag); + } + public class ProjectTaskActionReference : ReferencedBy + { + private Guid mvarProjectTaskActionTypeID = Guid.Empty; + public Guid ProjectTaskActionTypeID { get { return mvarProjectTaskActionTypeID; } set { mvarProjectTaskActionTypeID = value; } } + + private string mvarProjectTaskActionTypeName = String.Empty; + public string ProjectTaskActionTypeName { get { return mvarProjectTaskActionTypeName; } set { mvarProjectTaskActionTypeName = value; } } + + private Type mvarProjectTaskActionType = null; + public ProjectTaskActionReference(Type type) + { + mvarProjectTaskActionType = type; + mvarProjectTaskActionTypeName = type.FullName; + } + public ProjectTaskActionReference(Guid id) + { + mvarProjectTaskActionTypeID = id; + } + public ProjectTaskActionReference(string typeName) + { + mvarProjectTaskActionTypeName = typeName; + } + public ProjectTaskAction Create() + { + if (mvarProjectTaskActionType != null) + { + return (ProjectTaskAction)mvarProjectTaskActionType.Assembly.CreateInstance(mvarProjectTaskActionType.FullName); + } + return null; + } + + public string[] GetDetails() + { + throw new NotImplementedException(); + } + + public bool ShouldFilterObject(string filter) + { + throw new NotImplementedException(); + } + + private static Dictionary _dict = null; + + public static ProjectTaskActionReference GetByTypeID(Guid id) + { + if (_dict == null) + { + _dict = new Dictionary(); + Type[] types = Common.Reflection.GetAvailableTypes(); + foreach (Type type in types) + { + if (!type.IsAbstract && type.IsSubclassOf(typeof(ProjectTaskAction))) + { + ProjectTaskAction action = (ProjectTaskAction)type.Assembly.CreateInstance(type.FullName); + ProjectTaskActionReference actionref = action.MakeReference(); + _dict[actionref.ProjectTaskActionTypeID] = actionref; + } + } + } + return _dict[id]; + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionExecute.cs b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionExecute.cs new file mode 100644 index 00000000..8f5e6985 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionExecute.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using UniversalEditor.ObjectModels.Markup; + +namespace UniversalEditor.ProjectTaskActions +{ + public class ProjectTaskActionExecute : ProjectTaskAction + { + public override string Title + { + get { return "Execute: " + mvarCommandLine.ToString(); } + } + + private static ProjectTaskActionReference _ptar = null; + public override ProjectTaskActionReference MakeReference() + { + if (_ptar == null) + { + _ptar = base.MakeReference(); + _ptar.ProjectTaskActionTypeID = new Guid("{EE505E05-F125-4718-BA0A-879C72B5125A}"); + _ptar.ProjectTaskActionTypeName = "UniversalEditor.ProjectTaskActionExecute"; + } + return _ptar; + } + + private ExpandedString mvarCommandLine = ExpandedString.Empty; + public ExpandedString CommandLine + { + get { return mvarCommandLine; } + set + { + if (value == null) + { + mvarCommandLine = ExpandedString.Empty; + return; + } + mvarCommandLine = value; + } + } + + protected override void ExecuteInternal(ExpandedStringVariableStore variables) + { + string fileNameWithArguments = mvarCommandLine.ToString(variables); + if (String.IsNullOrEmpty(fileNameWithArguments)) return; + + string[] fileNameArgumentsSplit = fileNameWithArguments.Split(new char[] { ' ' }, "\"", StringSplitOptions.None, 2); + string fileName = fileNameArgumentsSplit[0]; + string arguments = fileNameArgumentsSplit[1]; + + if (!System.IO.File.Exists(fileName)) throw new System.IO.FileNotFoundException(fileName); + + System.Diagnostics.Process p = new System.Diagnostics.Process(); + p.StartInfo = new System.Diagnostics.ProcessStartInfo(fileName, arguments); + p.StartInfo.UseShellExecute = false; + p.StartInfo.CreateNoWindow = true; + p.StartInfo.RedirectStandardError = true; + p.StartInfo.RedirectStandardOutput = true; + p.Start(); + p.WaitForExit(); + + string error = p.StandardError.ReadToEnd(); + string output = p.StandardOutput.ReadToEnd(); + + if (!String.IsNullOrEmpty(error)) + { + throw new Exception(error); + } + } + + protected override void LoadFromMarkupInternal(MarkupTagElement tag) + { + MarkupTagElement tagCommandLine = (tag.Elements["CommandLine"] as MarkupTagElement); + if (tagCommandLine != null) + { + mvarCommandLine = ExpandedString.FromMarkup(tagCommandLine); + } + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionPackage.cs b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionPackage.cs new file mode 100644 index 00000000..ce886462 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Essential/ProjectTaskActions/ProjectTaskActionPackage.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using UniversalEditor.ObjectModels.Markup; + +namespace UniversalEditor.ProjectTaskActions +{ + public class ProjectTaskActionPackage : ProjectTaskAction + { + private DataFormatReference mvarDataFormatReference = null; + /// + /// The that specifies a compatible with the + /// in which to package the + /// project files. + /// + public DataFormatReference DataFormatReference { get { return mvarDataFormatReference; } } + + private static ProjectTaskActionReference _ptar = null; + public override ProjectTaskActionReference MakeReference() + { + if (_ptar == null) + { + _ptar = base.MakeReference(); + _ptar.ProjectTaskActionTypeID = new Guid("{527B7B07-FB0E-46F2-9EA8-0E93E3B21A14}"); + _ptar.ProjectTaskActionTypeName = "UniversalEditor.ProjectTaskActionPackage"; + } + return _ptar; + } + + private ExpandedString mvarOutputFileName = null; + public ExpandedString OutputFileName { get { return mvarOutputFileName; } set { mvarOutputFileName = value; } } + + public override string Title + { + get { return "Package: "; } + } + protected override void ExecuteInternal(ExpandedStringVariableStore variables) + { + DataFormat df = mvarDataFormatReference.Create(); + + string outputFileName = String.Empty; + if (mvarOutputFileName != null) outputFileName = mvarOutputFileName.ToString(variables); + } + protected override void LoadFromMarkupInternal(MarkupTagElement tag) + { + MarkupTagElement tagDataFormatReference = (tag.Elements["DataFormatReference"] as MarkupTagElement); + if (tagDataFormatReference != null) + { + MarkupAttribute attTypeName = tagDataFormatReference.Attributes["TypeName"]; + MarkupAttribute attTypeID = tagDataFormatReference.Attributes["TypeID"]; + if (attTypeName == null && attTypeID == null) throw new ArgumentNullException("Must specify at least one of 'TypeName' or 'TypeID'"); + + + } + + MarkupTagElement tagOutputFileName = (tag.Elements["OutputFileName"] as MarkupTagElement); + if (tagOutputFileName != null) mvarOutputFileName = ExpandedString.FromMarkup(tagOutputFileName); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj b/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj index 6549eecd..20118887 100644 --- a/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj +++ b/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj @@ -111,6 +111,9 @@ + + +