This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| abstract class InputBoxType[T](val name:String) | |
| case object Num extends InputBoxType[Double]("Number") | |
| case object Str extends InputBoxType[String]("String") | |
| case object StrReporter extends InputBoxType[String]("String (reporter)") | |
| case object StrCommand extends InputBoxType[String]("String (commands)") | |
| case object Col extends InputBoxType[Int]("Color") | |
| case class InputBox[T](left: Int = 0, top: Int = 0, right: Int = 0, bottom: Int = 0, varName: String, value: T, multiline: Boolean = false, boxtype: InputBoxType[T]){ | |
| def say: String = boxtype match { | |
| case c: Col.type => "hello" | |
| case _ => "goodbye" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import AssemblyKeys._ | |
| assemblySettings | |
| val jar = "LevelSpaceGUI.jar" | |
| jarName in assembly := jar | |
| target in assembly := baseDirectory.value |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def compile[T, W <: Widget](model: CompiledModel)(widget: W): CompiledWidget[W] = { | |
| def compileCmd(code: String) = model.compileCommand(sanitizeSource(code)) | |
| def compileRep(code: String) = model.compileReporter(sanitizeSource(code)) | |
| def compilePen(pen: Pen) = CompiledPen(pen, compileCmd(pen.setupCode), compileCmd(pen.updateCode)) | |
| widget match { | |
| case v: View => CompiledView(v) | |
| case b: Button => CompiledButton(b, compileCmd(b.source)) | |
| case p: Plot => CompiledPlot(p, compileCmd(p.setupCode), compileCmd(p.updateCode), p.pens map compilePen) | |
| case p: Pen => compilePen(p) | |
| case t: TextBox => CompiledTextBox(t) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val wolfSheep = Source.fromFile("public/modelslib/Sample Models/Biology/Wolf Sheep Predation.nlogo").mkString | |
| val wsModelV = CompiledModel.fromNlogoContents(wolfSheep) | |
| val wsModel = { | |
| val modelShouldHaveCompiled = (failures: NonEmptyList[CompilerException]) => | |
| s"""|Model should have compiled but failed with the following messages: | |
| |${failures.stream.mkString("\n")}""".stripMargin | |
| wsModelV valueOr { e => fail(modelShouldHaveCompiled(e)) } | |
| } |