summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-10-30 22:37:51 -0700
committerLi Haoyi <haoyi@dropbox.com>2014-10-30 22:37:51 -0700
commit058e9bac2dd8166051bafa16d51f27ee5856929a (patch)
treeb95f12df96a563ea9629912971d3b4f28b255c69 /examples
parente8b38f242876f99966c3d13cefae2f5863c5bb9e (diff)
downloadhands-on-scala-js-058e9bac2dd8166051bafa16d51f27ee5856929a.tar.gz
hands-on-scala-js-058e9bac2dd8166051bafa16d51f27ee5856929a.tar.bz2
hands-on-scala-js-058e9bac2dd8166051bafa16d51f27ee5856929a.zip
web pages
Diffstat (limited to 'examples')
-rw-r--r--examples/build.sbt11
-rw-r--r--examples/src/main/scala/Splash.scala3
-rw-r--r--examples/src/main/scala/canvasapp/Clock.scala (renamed from examples/src/main/scala/Clock.scala)5
-rw-r--r--examples/src/main/scala/canvasapp/FlappyLine.scala (renamed from examples/src/main/scala/FlappyLine.scala)4
-rw-r--r--examples/src/main/scala/canvasapp/ScratchPad.scala (renamed from examples/src/main/scala/ScratchPad.scala)2
-rw-r--r--examples/src/main/scala/webpage/HelloWorld0.scala19
-rw-r--r--examples/src/main/scala/webpage/HelloWorld1.scala18
-rw-r--r--examples/src/main/scala/webpage/Inputs.scala35
-rw-r--r--examples/src/main/scala/webpage/Search0.scala50
-rw-r--r--examples/src/main/scala/webpage/Search1.scala62
10 files changed, 206 insertions, 3 deletions
diff --git a/examples/build.sbt b/examples/build.sbt
new file mode 100644
index 0000000..7e6b685
--- /dev/null
+++ b/examples/build.sbt
@@ -0,0 +1,11 @@
+scalaJSSettings
+
+name := "Example"
+
+version := "0.1-SNAPSHOT"
+
+scalaVersion := "2.11.1"
+
+libraryDependencies += "org.scala-lang.modules.scalajs" %%% "scalajs-dom" % "0.6"
+
+libraryDependencies += "com.scalatags" %%% "scalatags" % "0.4.2" \ No newline at end of file
diff --git a/examples/src/main/scala/Splash.scala b/examples/src/main/scala/Splash.scala
index 1dcc528..c68bdca 100644
--- a/examples/src/main/scala/Splash.scala
+++ b/examples/src/main/scala/Splash.scala
@@ -1,4 +1,5 @@
-import Math._
+import java.lang.Math._
+
import org.scalajs.dom
import scala.scalajs.js.annotation.JSExport
diff --git a/examples/src/main/scala/Clock.scala b/examples/src/main/scala/canvasapp/Clock.scala
index 1db7c23..af9d8aa 100644
--- a/examples/src/main/scala/Clock.scala
+++ b/examples/src/main/scala/canvasapp/Clock.scala
@@ -1,7 +1,10 @@
+package canvasapp
+
import org.scalajs.dom
+
+import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
-import scalajs.js
@JSExport
object Clock extends{
@JSExport
diff --git a/examples/src/main/scala/FlappyLine.scala b/examples/src/main/scala/canvasapp/FlappyLine.scala
index 92583b5..50c9906 100644
--- a/examples/src/main/scala/FlappyLine.scala
+++ b/examples/src/main/scala/canvasapp/FlappyLine.scala
@@ -1,8 +1,10 @@
+package canvasapp
+
import org.scalajs.dom
+
import scala.scalajs.js.annotation.JSExport
import scala.util.Random
-import scalajs.js
@JSExport
object FlappyLine extends{
diff --git a/examples/src/main/scala/ScratchPad.scala b/examples/src/main/scala/canvasapp/ScratchPad.scala
index 225e567..cc3d7e0 100644
--- a/examples/src/main/scala/ScratchPad.scala
+++ b/examples/src/main/scala/canvasapp/ScratchPad.scala
@@ -1,3 +1,5 @@
+package canvasapp
+
import org.scalajs.dom
diff --git a/examples/src/main/scala/webpage/HelloWorld0.scala b/examples/src/main/scala/webpage/HelloWorld0.scala
new file mode 100644
index 0000000..df458ac
--- /dev/null
+++ b/examples/src/main/scala/webpage/HelloWorld0.scala
@@ -0,0 +1,19 @@
+package webpage
+import org.scalajs.dom
+import scala.scalajs.js.annotation.JSExport
+@JSExport
+object HelloWorld0 extends{
+ @JSExport
+ def main(target: dom.HTMLDivElement) = {
+ val (animalA, animalB) = ("fox", "dog")
+ target.innerHTML = s"""
+ <div>
+ <h1>Hello World!</h1>
+ <p>
+ The quick brown <b>$animalA</b>
+ jumped over the lazy <i>$animalB</b>
+ </p>
+ </div>
+ """
+ }
+} \ No newline at end of file
diff --git a/examples/src/main/scala/webpage/HelloWorld1.scala b/examples/src/main/scala/webpage/HelloWorld1.scala
new file mode 100644
index 0000000..1dc77b3
--- /dev/null
+++ b/examples/src/main/scala/webpage/HelloWorld1.scala
@@ -0,0 +1,18 @@
+package webpage
+import org.scalajs.dom
+import scala.scalajs.js.annotation.JSExport
+import scalatags.JsDom.all._
+@JSExport
+object HelloWorld1 extends{
+ @JSExport
+ def main(target: dom.HTMLDivElement) = {
+ val (animalA, animalB) = ("fox", "dog")
+ target.appendChild(
+ div(
+ h1("Hello World!"),
+ p("The quick brown ", b(animalA),
+ " jumped over the lazy ", i(animalB), ".")
+ ).render
+ )
+ }
+} \ No newline at end of file
diff --git a/examples/src/main/scala/webpage/Inputs.scala b/examples/src/main/scala/webpage/Inputs.scala
new file mode 100644
index 0000000..9339e84
--- /dev/null
+++ b/examples/src/main/scala/webpage/Inputs.scala
@@ -0,0 +1,35 @@
+package webpage
+
+import org.scalajs.dom
+import scala.scalajs.js.annotation.JSExport
+import scalatags.JsDom.all._
+
+@JSExport
+object Inputs extends{
+ @JSExport
+ def main(target: dom.HTMLDivElement) = {
+ val box = input(
+ `type`:="text",
+ placeholder:="Type here!"
+ ).render
+
+ val output = span.render
+
+ box.onkeyup = (e: dom.Event) => {
+ output.textContent =
+ box.value.toUpperCase
+ }
+
+ target.appendChild(
+ div(
+ h1("Capital Box!"),
+ p(
+ "Type here and " +
+ "have it capitalized!"
+ ),
+ div(box),
+ div(output)
+ ).render
+ )
+ }
+} \ No newline at end of file
diff --git a/examples/src/main/scala/webpage/Search0.scala b/examples/src/main/scala/webpage/Search0.scala
new file mode 100644
index 0000000..300b506
--- /dev/null
+++ b/examples/src/main/scala/webpage/Search0.scala
@@ -0,0 +1,50 @@
+package webpage
+
+import org.scalajs.dom
+import scala.scalajs.js.annotation.JSExport
+import scalatags.JsDom.all._
+
+@JSExport
+object Search0 extends{
+ @JSExport
+ def main(target: dom.HTMLDivElement) = {
+ val listings = Seq(
+ "Apple", "Apricot", "Banana", "Cherry",
+ "Mango", "Mangosteen", "Mandarin",
+ "Grape", "Grapefruit", "Guava"
+ )
+
+ def renderListings = ul(
+ for {
+ fruit <- listings
+ if fruit.toLowerCase.startsWith(
+ box.value.toLowerCase
+ )
+ } yield li(fruit)
+ ).render
+
+ lazy val box = input(
+ `type`:="text",
+ placeholder:="Type here!"
+ ).render
+
+ val output = div(renderListings).render
+
+ box.onkeyup = (e: dom.Event) => {
+ output.innerHTML = ""
+ output.appendChild(renderListings)
+ }
+
+ target.appendChild(
+ div(
+ h1("Search Box!"),
+ p(
+ "Type here to filter " +
+ "the list of things below!"
+ ),
+ div(box),
+ output
+ ).render
+ )
+ }
+} \ No newline at end of file
diff --git a/examples/src/main/scala/webpage/Search1.scala b/examples/src/main/scala/webpage/Search1.scala
new file mode 100644
index 0000000..1936898
--- /dev/null
+++ b/examples/src/main/scala/webpage/Search1.scala
@@ -0,0 +1,62 @@
+package webpage
+
+import org.scalajs.dom
+import scala.scalajs.js.annotation.JSExport
+import scalatags.JsDom.all._
+
+@JSExport
+object Search1 extends{
+ @JSExport
+ def main(target: dom.HTMLDivElement) = {
+ val listings = Seq(
+ "Apple", "Apricot", "Banana", "Cherry",
+ "Mango", "Mangosteen", "Mandarin",
+ "Grape", "Grapefruit", "Guava"
+ )
+
+ def renderListings = ul(
+ for {
+ fruit <- listings
+ if fruit.toLowerCase.startsWith(
+ box.value.toLowerCase
+ )
+ } yield {
+ val (first, last) = fruit.splitAt(
+ box.value.length
+ )
+ li(
+ span(
+ backgroundColor:="yellow",
+ first
+ ),
+ last
+ )
+ }
+ ).render
+
+
+ lazy val box = input(
+ `type`:="text",
+ placeholder:="Type here!"
+ ).render
+
+ val output = div(renderListings).render
+
+ box.onkeyup = (e: dom.Event) => {
+ output.innerHTML = ""
+ output.appendChild(renderListings)
+ }
+
+ target.appendChild(
+ div(
+ h1("Search Box!"),
+ p(
+ "Type here to filter " +
+ "the list of things below!"
+ ),
+ div(box),
+ output
+ ).render
+ )
+ }
+} \ No newline at end of file