diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/DrawingVerbs/Fill.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/DrawingVerbs/Fill.cs new file mode 100644 index 0000000..4abe97c --- /dev/null +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/DrawingVerbs/Fill.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Advanced_Software_Engineering.Verbs.DrawingVerbs { + class Fill : Verb { + Drawer drawer; + bool enable; + + public Fill(Drawer drawer, bool enable) { + this.drawer = drawer; + this.enable = enable; + } + + public void ExecuteVerb() { + if (enable) drawer.EnableFill(); + else drawer.DisableFill(); + } + + public string GetDescription() { + if (enable) return "Enable fill"; + else return "Disable fill"; + } + } +} diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs index 1ab26d0..0a24200 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs @@ -145,6 +145,16 @@ namespace Advanced_Software_Engineering { return new ResetPen(drawer); } else throw new Exception("Command doesn't take parameters"); + case "fillon": + if (parameters.Length == 0) { + return new Fill(drawer, true); + } else throw new Exception("Command doesn't take parameters"); + + case "filloff": + if (parameters.Length == 0) { + return new Fill(drawer, false); + } else throw new Exception("Command doesn't take parameters"); + case "pen": if (parameters.Length == 1) { return new PenColor(drawer, Value.TextToColor(parameters[0]));