Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--presentations/EclipseCon Europe 2015/.project11
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.pngbin0 -> 804 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.pngbin0 -> 21972 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.pngbin0 -> 13895 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.pngbin0 -> 11927 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.pngbin0 -> 21525 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.pngbin0 -> 14971 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.pngbin0 -> 41541 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.pngbin0 -> 13511 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.pngbin0 -> 1352667 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/java.pngbin0 -> 57223 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.pngbin0 -> 35137 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/script.pngbin0 -> 8793 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.pngbin0 -> 12552 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.pngbin0 -> 19178 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.pngbin0 -> 24334 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.pngbin0 -> 20948 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.pngbin0 -> 50316 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.pngbin0 -> 9489 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.pngbin0 -> 3673 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.pngbin0 -> 29946 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.pngbin0 -> 10304 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.pngbin0 -> 20182 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.pngbin0 -> 71844 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.pngbin0 -> 7867 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.pngbin0 -> 15070 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.pngbin0 -> 4940 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.pngbin0 -> 15198 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.pngbin0 -> 22039 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.pngbin0 -> 6424 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.pngbin0 -> 17383 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.pngbin0 -> 9446 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.pngbin0 -> 6969 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.pngbin0 -> 12056 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.pngbin0 -> 10914 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.pngbin0 -> 17699 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.pngbin0 -> 19181 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.pngbin0 -> 10215 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.pngbin0 -> 1952 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.pngbin0 -> 2350 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.pngbin0 -> 3510 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.pngbin0 -> 32677 bytes
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/index.html415
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/content/style.css783
-rw-r--r--presentations/EclipseCon Europe 2015/01 Slides/open slides.js0
-rw-r--r--presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js15
-rw-r--r--presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js19
-rw-r--r--presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js48
-rw-r--r--presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project (using modules).js22
-rw-r--r--presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js25
-rw-r--r--presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js15
-rw-r--r--presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt3
-rw-r--r--presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js13
-rw-r--r--presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js25
-rw-r--r--presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js13
-rw-r--r--presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js19
-rw-r--r--presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js26
-rw-r--r--presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js31
58 files changed, 1483 insertions, 0 deletions
diff --git a/presentations/EclipseCon Europe 2015/.project b/presentations/EclipseCon Europe 2015/.project
new file mode 100644
index 0000000..ab3c1d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>EclipseCon Europe 2015</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png
new file mode 100644
index 0000000..658d126
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png
new file mode 100644
index 0000000..12c63e2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png
new file mode 100644
index 0000000..07087d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png
new file mode 100644
index 0000000..70643f2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png
new file mode 100644
index 0000000..6119987
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png
new file mode 100644
index 0000000..6ec0fbf
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png
new file mode 100644
index 0000000..7c6483e
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png
new file mode 100644
index 0000000..7e5bbdc
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png
new file mode 100644
index 0000000..10bfac1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png
new file mode 100644
index 0000000..b069023
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png
new file mode 100644
index 0000000..9ed9246
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png
new file mode 100644
index 0000000..dc6fde5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png
new file mode 100644
index 0000000..aaeb908
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png
new file mode 100644
index 0000000..ad6bfce
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png
new file mode 100644
index 0000000..d767a0f
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png
new file mode 100644
index 0000000..7795f1e
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png
new file mode 100644
index 0000000..f095e08
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png
new file mode 100644
index 0000000..9386e78
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png
new file mode 100644
index 0000000..223a6e0
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png
new file mode 100644
index 0000000..a267e54
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png
new file mode 100644
index 0000000..8d2e6a1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png
new file mode 100644
index 0000000..e7d4203
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png
new file mode 100644
index 0000000..b640c78
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png
new file mode 100644
index 0000000..d5c01d3
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png
new file mode 100644
index 0000000..f534cc8
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png
new file mode 100644
index 0000000..8a8fa48
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png
new file mode 100644
index 0000000..7655bd9
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png
new file mode 100644
index 0000000..7352c81
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png
new file mode 100644
index 0000000..09dbbbf
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png
new file mode 100644
index 0000000..c5d13b1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png
new file mode 100644
index 0000000..f52aaad
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png
new file mode 100644
index 0000000..be52ade
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png
new file mode 100644
index 0000000..3d1e767
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png
new file mode 100644
index 0000000..ab33efe
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png
new file mode 100644
index 0000000..714e5a9
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png
new file mode 100644
index 0000000..c8dbf16
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png
new file mode 100644
index 0000000..50b56c3
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png
new file mode 100644
index 0000000..bc79603
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png
new file mode 100644
index 0000000..054e8d5
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png
new file mode 100644
index 0000000..3d13b38
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png
new file mode 100644
index 0000000..4e491ac
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png
Binary files differ
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/index.html b/presentations/EclipseCon Europe 2015/01 Slides/content/index.html
new file mode 100644
index 0000000..b1b4d63
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/index.html
@@ -0,0 +1,415 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="viewport" content="width=1024" />
+<meta name="apple-mobile-web-app-capable" content="yes" />
+<title>I love scripting, EclipseCon Europe 2015</title>
+
+<meta name="description"
+ content="EclipseCon presentation of the Eclipse Advanced Scripting Environment." />
+<meta name="author" content="Christian Pontesegger" />
+
+<link
+ href="http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic"
+ rel="stylesheet" />
+
+<!--
+
+ Impress.js doesn't depend on any external stylesheets. It adds all of the styles it needs for the
+ presentation to work.
+
+ This style below contains styles only for demo presentation. Browse it to see how impress.js
+ classes are used to style presentation steps, or how to apply fallback styles, but I don't want
+ you to use them directly in your presentation.
+
+ Be creative, build your own. We don't really want all impress.js presentations to look the same,
+ do we?
+
+ When creating your own presentation get rid of this file. Start from scratch, it's fun!
+
+ -->
+<link href="style.css" rel="stylesheet" />
+<link rel="shortcut icon" href="favicon.png" />
+<link rel="apple-touch-icon" href="apple-touch-icon.png" />
+
+<link href='https://fonts.googleapis.com/css?family=Marck+Script&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
+</head>
+
+<!--
+
+ Body element is used by impress.js to set some useful class names, that will allow you to detect
+ the support and state of the presentation in CSS or other scripts.
+
+ First very useful class name is `impress-not-supported`. This class means, that browser doesn't
+ support features required by impress.js, so you should apply some fallback styles in your CSS.
+ It's not necessary to add it manually on this element. If the script detects that browser is not
+ good enough it will add this class, but keeping it in HTML means that users without JavaScript
+ will also get fallback styles.
+
+ When impress.js script detects that browser supports all required features, this class name will
+ be removed.
+
+ The class name on body element also depends on currently active presentation step. More details about
+ it can be found later, when `hint` element is being described.
+
+-->
+<body class="impress-not-supported">
+
+ <!--
+ For example this fallback message is only visible when there is `impress-not-supported` class on body.
+-->
+ <div class="fallback-message">
+ <p>
+ Your browser <b>doesn't support the features required</b> by impress.js, so you are presented
+ with a simplified version of this presentation.
+ </p>
+ <p>
+ For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b>
+ browser.
+ </p>
+ </div>
+
+ <div id="impress">
+ <div id="title" class="step slide" data-x="10000" data-y="22000" data-scale="40">
+ <div id="i_love">I love scripting</div>
+ <div id="copyright" class="bottomright">EclipseCon Europe 2015<br />by Christian Pontesegger</div>
+ </div>
+
+ <div id="ide-support" class="step slide" data-x="-55" data-y="45" data-scale="0.52">
+ </div>
+
+ <div id="engines" class="step slide" data-x="60" data-y="45" data-scale="0.52">
+ </div>
+
+ <div id="bigPicture" class="step slide" data-x="0" data-y="0" >
+ <p id="picture_java" class="box eclipse">
+ <img src="images/java.png" />
+ </p>
+
+ <img id="picture_script1" src="images/script.png" />
+ <img id="picture_script2" src="images/script.png" />
+ <img id="picture_script3" src="images/script.png" />
+ <img id="picture_script4" src="images/script.png" />
+ <img id="picture_script5" src="images/script.png" />
+
+ <p id="picture_ease" class="box eclipse">
+ EASE<br />Eclipse Advanced Scripting Environment
+ </p>
+
+ <p id="picture_jsdt" class="ideSupport box eclipse">JSDT</p>
+ <p id="picture_pydev" class="ideSupport box eclipse">PyDev</p>
+ <p id="picture_ggts" class="ideSupport box eclipse">GGTS</p>
+ <p id="picture_rdt" class="ideSupport box eclipse">RDT</p>
+
+ <p id="picture_eclipse" class="box eclipse">
+ Eclipse<br /> <img src="images/eclipse256.png" />
+ </p>
+
+ <p id="picture_rhino" class="engine box eclipse">Rhino</p>
+ <p id="picture_jython" class="engine box eclipse">Jython</p>
+ <p id="picture_groovy" class="engine box eclipse">Groovy</p>
+ <p id="picture_jruby" class="engine box eclipse">JRuby</p>
+ </div>
+
+ <div id="shell_main" class="step slide background" data-x="0" data-y="-1500">
+ <h1>An interactive script shell</h1>
+ <img class="center" src="images/scrn_shell.png" />
+ </div>
+
+ <div id="shell_jre" class="step slide" data-x="0" data-y="-2500">
+ <h1>... with access to the Java runtime</h1>
+ <div id="jre1" class="code">
+ <img src="images/shell_java_1.png" />
+ </div>
+ <div id="jre2" class="code">
+ <img src="images/shell_java_2.png" />
+ </div>
+ <div id="jre3" class="code">
+ <img src="images/shell_java_3.png" />
+ </div>
+ </div>
+
+ <div id="shell_jars" class="step slide" data-x="-700" data-y="-3500">
+ <h1>... your JARs</h1>
+ <img class="center" src="images/scrn_shell_jars.png" />
+ </div>
+
+ <div id="shell_eclipse" class="step slide" data-x="700" data-y="-3500">
+ <h1>... and Eclipse</h1>
+ <img class="center" src="images/scrn_shell_eclipse.png" />
+ <p class="bottomright">with all its plug-ins</p>
+ </div>
+
+ <div id="code_completion" class="step slide background" data-x="1500" data-y="-1200" data-rotate="45">
+ <h1>Powerful code completion</h1>
+ <img class="center" src="images/scrn_code_completion.png" />
+ </div>
+
+ <div id="code_completion_help" class="step slide" data-x="2200" data-y="-1900" data-rotate="45">
+ <h1>... with help tooltips</h1>
+ <img class="center" src="images/scrn_code_completion_help.png" width="880" />
+ <img id="coming_soon" src="images/coming_soon.png" width="300" />
+ </div>
+
+ <div id="modules_explorer" class="step slide background" data-x="2000" data-y="0" data-rotate="90">
+ <h1>Use modules for common tasks</h1>
+ <ul class="left">
+ <li>Launch support</li>
+ <li>Preferences</li>
+ <li>access Services</li>
+ <li>perform UI tasks</li>
+ <li>Script multithreading</li>
+ <li>Resource handling</li>
+ </ul>
+ <img class="right" src="images/scrn_modules_explorer.png" />
+ </div>
+
+ <div id="load_modules" class="step slide" data-x="3000" data-y="0" data-rotate="90">
+ <h1>... loaded dynamically during runtime</h1>
+ <img class="center" src="images/scrn_load_module.png" />
+ </div>
+
+ <div id="wrap_java_instance" class="step slide" data-x="4000" data-y="-1250" data-rotate="90">
+ <h1>Wrap any java object</h1>
+ <img class="center" src="images/scrn_wrap_instance.png" />
+ </div>
+
+ <div id="register_pojo" class="step slide" data-x="4000" data-y="0" data-rotate="90">
+ <h1>Register POJOs</h1>
+ <img id="pojo1" src="images/code_simple_module.png" />
+ <img id="pojo2" src="images/code_module_extension.png" />
+ </div>
+
+ <div id="write_modules" class="step slide" data-x="4000" data-y="1250" data-rotate="90">
+ <h1>or write sophisticated modules</h1>
+ <ul class="center">
+ <li>select methods/fields to export</li>
+ <li>have optional parameters</li>
+ <li>provide method aliases</li>
+ <li>deprecate methods</li>
+ </ul>
+ <a class="centerbottom" href="http://codeandme.blogspot.co.at/2014/10/writing-modules-for-ease.html">Read the
+ detailed tutorial</a>
+ </div>
+
+ <div id="module_docs" class="step slide" data-x="5000" data-y="-625" data-rotate="90">
+ <h1>Consistent documentation</h1>
+ <img class="center" src="images/scrn_online_help.png" />
+ </div>
+
+ <div id="module_docs_build" class="step slide" data-x="5000" data-y="625" data-rotate="90">
+ <h1>created @ build time</h1>
+ <img class="center code" src="images/code_build_module_docs.png" />
+ </div>
+
+ <div id="launch_config" class="step slide background" data-x="1500" data-y="1200" data-rotate="135">
+ <h1>Launch support</h1>
+ <img class="center" src="images/scrn_launch_configuration.png" />
+ </div>
+
+ <div id="debug_config" class="step slide" data-x="2200" data-y="1900" data-rotate="135">
+ <h1>Integrated debugger</h1>
+ <img class="center" src="images/scrn_debugging.png" />
+ </div>
+
+ <div id="script_libraries" class="step slide background" data-x="0" data-y="1500" data-rotate="180">
+ <h1>Create script libraries</h1>
+ <img class="left" src="images/scrn_script_explorer.png" />
+ <ul class="right">
+ <li>record shell scripts</li>
+ <li>load from known location</li>
+ <li>customize display structure</li>
+ <li>modify scripts</li>
+ <li>execute scripts</li>
+ </ul>
+ </div>
+
+ <div id="script_repositories" class="step slide" data-x="0" data-y="2500" data-rotate="180">
+ <h1>Share with colleagues</h1>
+ <img class="center" src="images/scrn_script_locations.png" />
+ <p class="bottomright">... or the world</p>
+ </div>
+
+ <div id="script_ui_integration" class="step slide" data-x="0" data-y="3500" data-rotate="180">
+ <h1>Enhance your UI</h1>
+ <div id="toolbar">
+ <img src="images/scrn_script_ui_toolbar.png" />
+ <p>... toolbars</p>
+ </div>
+ <div id="menu">
+ <img src="images/scrn_script_ui_menu.png" />
+ <p>... view menus</p>
+ </div>
+ <div id="context">
+ <img src="images/scrn_script_ui_context.png" />
+ <p>... context menus</p>
+ </div>
+ <a class="bottomright" href="http://codeandme.blogspot.co.at/2014/12/ease-scripts-conquer-ui.html">Read the
+ detailed tutorial</a>
+ </div>
+
+ <div id="charts" class="step slide background" data-x="-1500" data-y="1200" data-rotate="225" >
+ <p>Live charts</p>
+ <img src="images/code_charts.png" /> <img src="images/scrn_simple_chart.png" /> <img
+ src="images/scrn_advanced_chart.png" /> <a
+ href="http://codeandme.blogspot.co.at/2015/04/live-charting-with-ease.html">Read the
+ detailed tutorial</a>
+ </div>
+
+ <div id="unit_tests" class="step slide background" data-x="-2000" data-y="0" data-rotate="270" >
+ <h1>Scripted unit testing</h1>
+ <img class="left" src="images/scrn_unit_testing.png" />
+ <ul class="right">
+ <li>UI support</li>
+ <li>Error markers in files</li>
+ <li>Reporting</li>
+ <li>integrates with Hudson/Jenkins</li>
+ </ul>
+ <a class="bottomright" href="http://codeandme.blogspot.co.at/2015/05/unit-testing-with-scripts-in-ease.html">Read
+ the detailed tutorial</a>
+ </div>
+
+ <div id="java_code" class="step slide background" data-x="-1500" data-y="-1200" data-rotate="315">
+ <h1>Interact with Java source</h1>
+ <img class="center" src="images/code_invoke_java.png" />
+ </div>
+
+ <div id="java_load" class="step slide" data-x="-2200" data-y="-1900" data-rotate="315">
+ <h1>... load classes from workspace</h1>
+ <img class="center" src="images/scrn_compile_class.png" />
+ </div>
+
+ <div id="java_invoke" class="step slide" data-x="-2900" data-y="-2600" data-rotate="315">
+ <h1>INVOKE !</h1>
+ <img class="center" src="images/scrn_invoke_java.png" />
+ <img id="java_result" src="images/scrn_invoke_result.png" />
+ <p class="bottomright">... and we do not launch a new JRE.</p>
+ </div>
+
+ <div id="engine_integration" class="step slide" data-x="-3000" data-y="-4000" >
+ <h1>Supported engines</h1>
+ <table class="center">
+ <tr>
+ <th class="rotate"></th>
+ <th class="rotate"><div><span>Launch</span></div></th>
+ <th class="rotate"><div><span>Shell</span></div></th>
+ <th class="rotate"><div><span>Modules</span></div></th>
+ <th class="rotate"><div><span>Scripts</span></div></th>
+ <th class="rotate"><div><span>Unit Test</span></div></th>
+ <th class="rotate"><div><span>Debug</span></div></th>
+ </tr>
+ <tr>
+ <td>Rhino</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ </tr>
+ <tr>
+ <td>Nashorn</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ </tr>
+ <tr>
+ <td>Jython</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ </tr>
+ <tr>
+ <td>Groovy</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ </tr>
+ <tr>
+ <td>JRuby</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ </tr>
+ <tr>
+ <td>JVM</td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ <td><img src="images/not_supported.png" width="20" alt="ok"/></td>
+ </tr>
+ </table>
+ </div>
+
+
+
+ <div id="conclusion" class="step slide" data-x="10000" data-y="8000" data-scale="40">
+ <div>That's why</div>
+ </div>
+
+ <div id="get_in_touch" class="step slide" data-x="80000" data-y="8000" data-scale="40">
+ <h1>Get in touch</h1>
+ <p id="link1" class="center"><a href="https://eclipse.org/ease">eclipse.org/ease</a></p>
+ <p id="link2" class="center"><a href="https://codeandme.blogspot.com">codeandme.blogspot.com</a></p>
+ </div>
+
+ <div id="evaluation" class="step slide" data-x="170000" data-y="8000" data-scale="40">
+ <img class="center" src="images/evaluation.png" />
+ </div>
+
+ </div>
+
+ <!--
+
+ Hint is not related to impress.js in any way.
+
+ But it can show you how to use impress.js features in creative way.
+
+ When the presentation step is shown (selected) its element gets the class of "active" and the body element
+ gets the class based on active step id `impress-on-ID` (where ID is the step's id)... It may not be
+ so clear because of all these "ids" in previous sentence, so for example when the first step (the one with
+ the id of `bored`) is active, body element gets a class of `impress-on-bored`.
+
+ This class is used by this hint below. Check CSS file to see how it's shown with delayed CSS animation when
+ the first step of presentation is visible for a couple of seconds.
+
+ ...
+
+ And when it comes to this piece of JavaScript below ... kids, don't do this at home ;)
+ It's just a quick and dirty workaround to get different hint text for touch devices.
+ In a real world it should be at least placed in separate JS file ... and the touch content should be
+ probably just hidden somewhere in HTML - not hard-coded in the script.
+
+ Just sayin' ;)
+
+-->
+ <div class="hint">
+ <p>Use a spacebar or arrow keys to navigate</p>
+ </div>
+ <script>
+ if ("ontouchstart" in document.documentElement) {
+ document.querySelector(".hint").innerHTML = "<p>Tap on the left or right to navigate</p>";
+ }
+ </script>
+
+ <script src="http://impress.github.io/impress.js/js/impress.js"></script>
+ <script>
+ impress().init();
+ </script>
+</body>
+</html>
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/style.css b/presentations/EclipseCon Europe 2015/01 Slides/content/style.css
new file mode 100644
index 0000000..22d53e1
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/content/style.css
@@ -0,0 +1,783 @@
+/*
+ We start with a good ol' reset.
+ That's the one by Eric Meyer http://meyerweb.com/eric/tools/css/reset/
+
+ You can probably argue if it is needed here, or not, but for sure it
+ doesn't do any harm and gives us a fresh start.
+*/
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+ blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn,
+ em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
+ b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
+ table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas,
+ details, embed, figure, figcaption, footer, header, hgroup, menu, nav,
+ output, ruby, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, footer, header, hgroup,
+ menu, nav, section {
+ display: block;
+}
+
+body {
+ line-height: 1;
+}
+
+ol, ul {
+ list-style: none;
+}
+
+blockquote, q {
+ quotes: none;
+}
+
+blockquote:before, blockquote:after, q:before, q:after {
+ content: '';
+ content: none;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/*
+ Now here is when interesting things start to appear.
+
+ We set up <body> styles with default font and nice gradient in the background.
+ And yes, there is a lot of repetition there because of -prefixes but we don't
+ want to leave anybody behind.
+*/
+body {
+ font-family: 'PT Sans', sans-serif;
+ min-height: 740px;
+ background: rgb(215, 215, 215);
+ background: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 500, from(rgb(240, 240,
+ 240)), to(rgb(190, 190, 190)));
+ background: -webkit-radial-gradient(rgb(240, 240, 240),
+ rgb(190, 190, 190));
+ background: -moz-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -ms-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: -o-radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+ background: radial-gradient(rgb(240, 240, 240), rgb(190, 190, 190));
+}
+
+/*
+ ... and give links a nice look.
+*/
+a {
+ color: blue;
+ text-decoration: underline;
+ padding: 0 0.1em;
+ text-shadow: -1px -1px 2px rgba(100, 100, 100, 0.9);
+ border-radius: 0.2em;
+ -webkit-transition: 0.5s;
+ -moz-transition: 0.5s;
+ -ms-transition: 0.5s;
+ -o-transition: 0.5s;
+ transition: 0.5s;
+}
+
+a:hover, a:focus {
+ background: rgba(255, 255, 255, 1);
+ text-shadow: -1px -1px 2px rgba(100, 100, 100, 0.5);
+}
+
+/*
+ All of the content will be still fully accessible for them, but I want
+ them to know that they are missing something - that's what the demo is
+ about, isn't it?
+
+ And then we hide the message, when support is detected in the browser.
+*/
+.fallback-message {
+ font-family: sans-serif;
+ line-height: 1.3;
+ width: 780px;
+ padding: 10px 10px 0;
+ margin: 20px auto;
+ border: 1px solid #E4C652;
+ border-radius: 10px;
+ background: #EEDC94;
+}
+
+.fallback-message p {
+ margin-bottom: 10px;
+}
+
+.impress-supported .fallback-message {
+ display: none;
+}
+
+/*
+ Now let's style the presentation steps.
+
+ We start with basics to make sure it displays correctly in everywhere ...
+*/
+.step {
+ position: relative;
+ width: 900px;
+ padding: 40px;
+ margin: 20px auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -o-box-sizing: border-box;
+ box-sizing: border-box;
+ font-family: 'PT Serif', georgia, serif;
+ font-size: 48px;
+ line-height: 1.5;
+
+ transition: background-color 1s ease-in;
+}
+
+.step.active {
+ background: rgb(232, 232, 202);
+ transition: background-color 1s ease-in;
+
+ border: 1px solid rgba(82, 82, 52, .3);
+ border-radius: 10px;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, .6);
+}
+
+.background {
+ background: rgb(232, 232, 202);
+}
+
+/*
+ ... and we enhance the styles for impress.js.
+
+ Basically we remove the margin and make inactive steps a little bit transparent.
+*/
+.impress-enabled .step {
+ margin: 0;
+}
+
+.impress-enabled .step * {
+ opacity: 0.4;
+ -webkit-transition: opacity 1s;
+ -moz-transition: opacity 1s;
+ -ms-transition: opacity 1s;
+ -o-transition: opacity 1s;
+ transition: opacity 1s;
+}
+
+.impress-enabled .step.active * {
+ opacity: 1;
+ -webkit-transition: opacity 1s;
+ -moz-transition: opacity 1s;
+ -ms-transition: opacity 1s;
+ -o-transition: opacity 1s;
+ transition: opacity 1s;
+}
+
+/*
+ These 'slide' step styles were heavily inspired by HTML5 Slides:
+ http://html5slides.googlecode.com/svn/trunk/styles.css
+*/
+.slide {
+ display: block;
+ width: 900px;
+ height: 700px;
+ padding: 40px 60px;
+
+ color: rgb(102, 102, 102);
+ text-shadow: 0 2px 2px rgba(0, 0, 0, .1);
+ font-family: 'Open Sans', Arial, sans-serif;
+ font-size: 30px;
+ line-height: 36px;
+ letter-spacing: -1px;
+}
+
+/*
+ The last step is an overview.
+ There is no content in it, so we make sure it's not visible because we want
+ to be able to click on other steps.
+
+*/
+#overview {
+ display: none
+}
+
+/*
+ We also make other steps visible and give them a pointer cursor using the
+ `impress-on-` class.
+*/
+.impress-on-overview .step {
+ opacity: 1;
+ cursor: pointer;
+}
+
+/*
+ Now, when we have all the steps styled let's give users a hint how to navigate
+ around the presentation.
+
+ The best way to do this would be to use JavaScript, show a delayed hint for a
+ first time users, then hide it and store a status in cookie or localStorage...
+
+ But I wanted to have some CSS fun and avoid additional scripting...
+
+ Let me explain it first, so maybe the transition magic will be more readable
+ when you read the code.
+
+ First of all I wanted the hint to appear only when user is idle for a while.
+ You can't detect the 'idle' state in CSS, but I delayed a appearing of the
+ hint by 5s using transition-delay.
+
+ You also can't detect in CSS if the user is a first-time visitor, so I had to
+ make an assumption that I'll only show the hint on the first step. And when
+ the step is changed hide the hint, because I can assume that user already
+ knows how to navigate.
+
+ To summarize it - hint is shown when the user is on the first step for longer
+ than 5 seconds.
+
+ The other problem I had was caused by the fact that I wanted the hint to fade
+ in and out. It can be easily achieved by transitioning the opacity property.
+ But that also meant that the hint was always on the screen, even if totally
+ transparent. It covered part of the screen and you couldn't correctly clicked
+ through it.
+ Unfortunately you cannot transition between display `block` and `none` in pure
+ CSS, so I needed a way to not only fade out the hint but also move it out of
+ the screen.
+
+ I solved this problem by positioning the hint below the bottom of the screen
+ with CSS transform and moving it up to show it. But I also didn't want this move
+ to be visible. I wanted the hint only to fade in and out visually, so I delayed
+ the fade in transition, so it starts when the hint is already in its correct
+ position on the screen.
+
+ I know, it sounds complicated ... maybe it would be easier with the code?
+*/
+.hint {
+ /*
+ We hide the hint until presentation is started and from browsers not supporting
+ impress.js, as they will have a linear scrollable view ...
+ */
+ display: none;
+ /*
+ ... and give it some fixed position and nice styles.
+ */
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 200px;
+ background: rgba(0, 0, 0, 0.5);
+ color: #EEE;
+ text-align: center;
+ font-size: 50px;
+ padding: 20px;
+ z-index: 100;
+ /*
+ By default we don't want the hint to be visible, so we make it transparent ...
+ */
+ opacity: 0;
+ /*
+ ... and position it below the bottom of the screen (relative to it's fixed position)
+ */
+ -webkit-transform: translateY(400px);
+ -moz-transform: translateY(400px);
+ -ms-transform: translateY(400px);
+ -o-transform: translateY(400px);
+ transform: translateY(400px);
+ /*
+ Now let's imagine that the hint is visible and we want to fade it out and move out
+ of the screen.
+
+ So we define the transition on the opacity property with 1s duration and another
+ transition on transform property delayed by 1s so it will happen after the fade out
+ on opacity finished.
+
+ This way user will not see the hint moving down.
+ */
+ -webkit-transition: opacity 1s, -webkit-transform 0.5s 1s;
+ -moz-transition: opacity 1s, -moz-transform 0.5s 1s;
+ -ms-transition: opacity 1s, -ms-transform 0.5s 1s;
+ -o-transition: opacity 1s, -o-transform 0.5s 1s;
+ transition: opacity 1s, transform 0.5s 1s;
+}
+
+/*
+ Now we 'enable' the hint when presentation is initialized ...
+*/
+.impress-enabled .hint {
+ display: block
+}
+
+/*
+ There is one funny thing I just realized.
+
+ Thanks to this workaround above everything except #impress element is invisible
+ for click events. That means that the hint element is also not clickable.
+ So basically all of this transforms and delayed transitions trickery was probably
+ not needed at all...
+
+ But it was fun to learn about it, wasn't it?
+*/
+
+/*
+ And now we start to style each step separately.
+
+ I agree that this may be not the most efficient, object-oriented and
+ scalable way of styling, but most of steps have quite a custom look
+ and typography tricks here and there, so they had to be styled separately.
+
+ First is the title step with a big <h1> (no room for padding) and some
+ 3D positioning along Z axis.
+*/
+
+/*
+ Slide: IDE Support (ide-support)
+
+ Display Eclipse & supported scripting IDEs
+*/
+
+.impress-on-ide-support .step #picture_eclipse,
+.impress-on-ide-support .step #picture_eclipse *,
+.impress-on-ide-support .step .ideSupport
+{
+ opacity: 1;
+}
+
+/*
+ Slide: Engine Support (engines)
+
+ Display Eclipse & supported script engines
+*/
+
+.impress-on-engines .step #picture_eclipse,
+.impress-on-engines .step #picture_eclipse *,
+.impress-on-engines .step .engine
+{
+ opacity: 1;
+}
+
+.impress-on-conclusion .step #title,
+.impress-on-conclusion .step #title *
+{
+ opacity: 1;
+}
+
+
+.top {
+ position: absolute;
+ top: 20px;
+}
+.bottom {
+ position: absolute;
+ bottom: 20px;
+}
+.left {
+ position: absolute;
+ left: 80px;
+
+ top: 55%;
+ transform: translate(0%, -50%);
+}
+.right {
+ position: absolute;
+ right: 80px;
+
+ top: 55%;
+ transform: translate(0%, -50%);
+}
+
+.bottomright {
+ position: absolute;
+ right: 80px;
+ bottom: 50px;
+}
+
+h1 {
+ font-size: 1.5em;
+ text-align: center;
+ color: #444466;
+
+ padding-top: 50px;
+}
+
+
+div.code {
+ background-image: url("images/script.png");
+ background-repeat: no-repeat;
+ background-size: 32px 32px;
+ background-position: 10px 10px;
+ padding-left: 60px;
+}
+
+.code {
+ background: white;
+ border: 1px solid black;
+ border-radius: 5px;
+ padding: 5px 10px 5px 10px;
+}
+
+li {
+ margin-top: 10px;
+}
+
+.center {
+ position: fixed;
+ top: 55%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.centerbottom {
+ position: fixed;
+ bottom: 50px;
+ left: 50%;
+ transform: translate(-50%, 0%);
+}
+
+th.rotate {
+ /* Something you can count on */
+ height: 70px;
+ white-space: nowrap;
+}
+
+th.rotate > div {
+ transform:
+ /* Magic Numbers */
+ translate(10px, 20px)
+ /* 45 is really 360 - 45 */
+ rotate(300deg);
+ width: 50px;
+}
+
+th.rotate > div > span {
+ padding: 5px 10px;
+}
+
+table {
+ font-size: 0.6em;
+ border-collapse: collapse;
+}
+
+td {
+ border: 1px solid #ccc;
+ text-align: center;
+ vertical-align: bottom;
+}
+
+td {
+ padding: 5px 20px 5px 20px;
+}
+
+tr:nth-child(even) {
+ background: rgb(212, 212, 162);
+}
+
+img {
+ max-height: 450px;
+}
+
+ul {
+ list-style-image: url('images/bullet.png');
+}
+/*
+ Slide: 'Shell JRE access'
+*/
+#shell_jre #jre1 {
+ position: absolute;
+ top: 250px;
+ left: 100px;
+}
+
+#shell_jre #jre2 {
+ position: absolute;
+ top: 350px;
+ left: 200px;
+}
+#shell_jre #jre3 {
+ position: absolute;
+ top: 450px;
+ left: 300px;
+}
+
+#code_completion_help #coming_soon {
+ position: absolute;
+ top: 370px;
+ left: 650px;
+ transform: rotate(-5deg);
+}
+
+
+/*
+ Slide: 'Register POJOs'
+*/
+
+#pojo1 {
+ position: absolute;
+ top: 150px;
+ left: 40px;
+ width: 400px;
+}
+
+#pojo2 {
+ position: absolute;
+ top: 400px;
+ left: 250px;
+ width: 600px;
+}
+
+/*
+ Slide: 'Script UI integration'
+*/
+#script_ui_integration #toolbar {
+ position: absolute;
+ top: 150px;
+ left: 40px;
+}
+
+#script_ui_integration #menu {
+ position: absolute;
+ top: 320px;
+ left: 40px;
+}
+
+#script_ui_integration #context {
+ position: absolute;
+ top: 200px;
+ right: 40px;
+}
+
+
+/*
+ Slide: 'I love scripting'
+*/
+#title #i_love {
+ font-family: 'Marck Script', cursive;
+ font-size: 2.5em;
+ text-align: center;
+ color: #444466;
+
+ padding-top: 200px;
+}
+
+#title #copyright {
+ font-size: 0.8em;
+}
+
+/*
+ Slide: 'Conclusion'
+*/
+#conclusion > div {
+ font-family: 'Marck Script', cursive;
+ font-size: 2em;
+ text-align: center;
+ color: #444466;
+
+ padding-top: 200px;
+}
+
+
+/*
+ Slide: 'Invoke java'
+*/
+#java_invoke #java_result {
+ position: absolute;
+ top: 400px;
+ left: 600px;
+}
+
+/*
+ Slide: 'Get in touch'
+*/
+
+#get_in_touch #link1 {
+ transform: translate(-50%, -100px);
+}
+
+#get_in_touch #link2 {
+ transform: translate(-50%, 0px);
+}
+
+/*
+ Slide: 'The whole picture' (picture)
+
+ Display how EASE interacts with Eclipse, engines and java
+*/
+
+#picture_eclipse {
+ left: 280px;
+ top: 220px;
+
+ width: 340px;
+ height: 315px;
+
+ font-size: 48px;
+
+ padding-top: 30px;
+}
+
+#picture_eclipse img {
+ margin-top: 70px;
+ width: 40%;
+}
+
+#picture_jsdt {
+ left: 165px;
+ top: 220px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_pydev {
+ left: 165px;
+ top: 309px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_ggts {
+ left: 165px;
+ top: 397px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_rdt {
+ left: 165px;
+ top: 485px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_rhino {
+ left: 635px;
+ top: 220px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_jython {
+ left: 635px;
+ top: 309px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_groovy {
+ left: 635px;
+ top: 397px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_jruby {
+ left: 635px;
+ top: 485px;
+
+ width: 100px;
+ height: 80px;
+}
+
+#picture_java {
+ left: 20px;
+ top: 20px;
+
+ width: 860px;
+ height: 660px;
+
+ border: 1px solid #8C6C9C;
+ background: linear-gradient(to bottom, #FFFFEE, #FFFFCC);
+ color: #330066;
+ font-size: 20px;
+}
+
+#picture_java img {
+ width: 15%;
+ height: 15%;
+
+ margin-top: 550px;
+}
+
+#picture_ease {
+ left: 165px;
+ top: 120px;
+
+ width: 565px;
+ height: 80px;
+}
+
+#picture_script1 {
+ position: absolute;
+ left: 250px;
+ top: 40px;
+ width: 50px;
+
+ transition: all 3s ease-in;
+}
+
+#picture_script2 {
+ position: absolute;
+ left: 350px;
+ top: 40px;
+ width: 50px;
+
+ transition: all 3.5s ease-in;
+}
+
+#picture_script3 {
+ position: absolute;
+ left: 450px;
+ top: 40px;
+ width: 50px;
+
+ transition: all 4s ease-in;
+}
+
+#picture_script4 {
+ position: absolute;
+ left: 550px;
+ top: 40px;
+ width: 50px;
+
+ transition: all 4.5s ease-in;
+}
+
+#picture_script5 {
+ position: absolute;
+ left: 650px;
+ top: 40px;
+ width: 50px;
+
+ transition: all 5s ease-in;
+}
+
+
+
+.blue {
+ color: blue;
+}
+
+.box {
+ display: block;
+ border-radius: 10px;
+ text-align: center;
+ position: absolute;
+}
+
+.eclipse {
+ border: 1px solid #8C6C9C;
+ background: linear-gradient(to bottom, #E1D5E7, #8C6C9C);
+ color: #330066;
+ font-size: 20px;
+}
+
+ \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/01 Slides/open slides.js b/presentations/EclipseCon Europe 2015/01 Slides/open slides.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/01 Slides/open slides.js
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js b/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js
new file mode 100644
index 0000000..f7ace93
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/01 Hello World.js
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Hello World
+ *******************************************************************************/
+
+print("This is EclipseCon Euope 2015");
+print("-----------------------------");
+print();
+print("Thanks for being here to celebrate our 10th birthday!"); \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js b/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js
new file mode 100644
index 0000000..49828a7
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/02 Java class access.js
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Access java classes
+ *******************************************************************************/
+
+// access classes from JRE
+new java.io.File("/");
+root = new java.io.File("/");
+root.exists();
+
+// access classes from eclipse
+org.eclipse.core.runtime.Platform;
+org.eclipse.core.runtime.Platform.getInstallLocation().getURL(); \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js b/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js
new file mode 100644
index 0000000..aefed08
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/03 Create sample project.js
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Script to create a sample project, not meant for productive use
+ *******************************************************************************/
+
+var projectName = "EclipseCon 2015 Sample project";
+var files = [
+ ["Disclaimer.txt", "This is the disclaimer"],
+ ["HowTo.txt", "TODO: write HowTo Content"],
+ ["License.txt", "This project is licensed under the EPL."]
+ ];
+
+print("Creating sample project");
+
+// @type org.eclipse.core.resources.IWorkspaceRoot
+wsRoot = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+
+// @type org.eclipse.core.resources.IProject
+newProject = wsRoot.getProject(projectName);
+
+// create project
+if (!newProject.exists()) {
+ print("\tcreating project");
+ newProject.create(null);
+ newProject.open(null);
+} else
+ print("\tproject already exists");
+
+
+// now create files
+for each (fileDescription in files) {
+
+ // @type org.eclipse.core.resources.IFile
+ file = newProject.getFile(fileDescription[0]);
+ if (!file.exists()) {
+ print("\tcreating file " + fileDescription[0]);
+ fileInput = new java.io.ByteArrayInputStream(new java.lang.String(fileDescription[1]).getBytes());
+ file.create(fileInput, true, null);
+ } else
+ print("\tfile " + fileDescription[0] + " already exists");
+}
+
diff --git a/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project (using modules).js b/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project (using modules).js
new file mode 100644
index 0000000..da16e16
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/02 Script Shell/04 Create sample project (using modules).js
@@ -0,0 +1,22 @@
+var files = [
+ ["Disclaimer.txt", "This is the disclaimer"],
+ ["HowTo.txt", "TODO: write HowTo Content"],
+ ["License.txt", "This project is licensed under the EPL."]
+ ];
+
+
+print("Creating sample project");
+
+loadModule('/System/Resources');
+loadModule('/System/UI');
+
+// create project
+projectName = showInputDialog("Please provide the name of the project to create", "EclipseCon 2015 Sample project", "Create Project");
+if (projectName != null) {
+ createProject(projectName);
+
+ // now create files
+ for each (fileDescription in files)
+ writeFile("workspace://" + projectName + "/" + fileDescription[0], fileDescription[1]);
+}
+
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js b/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js
new file mode 100644
index 0000000..f6fdcbe
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/04 ASCII art.js
@@ -0,0 +1,25 @@
+var libraryURL = "http://central.maven.org/maven2/com/github/lalyos/jfiglet/0.0.7/jfiglet-0.0.7.jar";
+var libraryLocation = "project://03 External libraries/libs/jfiglet-0.0.7.jar";
+
+include("Helpers.js");
+
+// verify that external library is available
+loadModule('/System/Resources');
+if (!fileExists(libraryLocation)) {
+ downloadLibrary(libraryURL, libraryLocation);
+
+ if (!fileExists(libraryLocation)) {
+ printError("jfiglet library not available, please download from "
+ + libraryURL);
+ exit();
+ }
+}
+
+// load external library
+loadJar(libraryLocation);
+// load directly from the web
+// loadJar(libraryURL);
+
+// draw ASCII art
+com.github.lalyos.jfiglet.FigletFont
+ .convertOneLine("I love scripting"); \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js b/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js
new file mode 100644
index 0000000..92f3c2b
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/Helpers.js
@@ -0,0 +1,15 @@
+/**
+ * Download a binary file from the web.
+ * @param link URI to download from
+ * @param targetLocation workspace location to store the file to
+ */
+function downloadLibrary(link, targetLocation) {
+ target = getFile(targetLocation, false);
+ if (!target.exists()) {
+ input = new java.net.URL(link).openStream();
+ target.create(input, true, null);
+ input.close();
+
+ } else
+ printError("target library '" + targetLocation + "' already exists.");
+} \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt b/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt
new file mode 100644
index 0000000..3031e8d
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/03 External libraries/libs/readme.txt
@@ -0,0 +1,3 @@
+This directory should host a file called 'jfiglet-0.0.7.jar'.
+If it is not available and the sample script cannot download the file, try to manually fetch it from
+http://central.maven.org/maven2/com/github/lalyos/jfiglet/0.0.7/jfiglet-0.0.7.jar \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js
new file mode 100644
index 0000000..763c0f2
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/01 Current Time.js
@@ -0,0 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Hello World
+ *******************************************************************************/
+
+var formatter = java.text.SimpleDateFormat("yyyy-MM-dd, HH:mm:ss")
+print(formatter.format(java.lang.System.currentTimeMillis()));
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js
new file mode 100644
index 0000000..252680b
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/02 Title Clock.js
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Hello World
+ * name: Examples/Title Clock
+ *******************************************************************************/
+
+var formatter = java.text.SimpleDateFormat("yyyy-MM-dd, HH:mm:ss")
+time = formatter.format(java.lang.System.currentTimeMillis());
+
+// change application title
+loadModule('/System/UI');
+executeUI('getShell().setText("' + time + '")');
+
+// sleep 1s
+java.lang.Thread.sleep(1000);
+
+// restart script
+loadModule('/System/Scripting');
+fork("02 Title Clock.js"); \ No newline at end of file
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js
new file mode 100644
index 0000000..6a57f03
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/06 Extract HTML anchors.js
@@ -0,0 +1,13 @@
+loadModule('/System/Resources');
+
+content = readStream(new java.net.URL("http://www.eclipse.org").openStream())
+
+// convert to JS string
+content = content + "";
+
+// find anchor tags
+anchors = content.match(/<a\s*href=".*?"\s*>/g);
+
+for each (anchor in anchors)
+ print(anchor);
+
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js
new file mode 100644
index 0000000..973c1f0
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task start.js
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Start a timer
+ * name: Task/start
+ * toolbar: Project Explorer
+ * image: http://files.softicons.com/download/system-icons/crystal-project-icons-by-everaldo-coelho/png/16x16/actions/agt_start_here.png
+ *******************************************************************************/
+
+start = java.lang.System.currentTimeMillis();
+
+loadModule('/System/Scripting');
+setSharedObject("Task/start", start, true, true);
+
diff --git a/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js
new file mode 100644
index 0000000..1fcf240
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/05 Example Scripts/Task stop.js
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Christian Pontesegger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Christian Pontesegger - initial API and implementation
+ * description: Stop timer and display elapsed time
+ * name: Task/stop
+ * toolbar: Project Explorer
+ * image: http://tdiv.free.fr/stop.png
+ *******************************************************************************/
+
+loadModule('/System/UI');
+loadModule('/System/Scripting');
+
+start = getSharedObject("Task/start");
+
+if (start != null) {
+ stop = java.lang.System.currentTimeMillis();
+ showInfoDialog("Your task took " + ((stop - start)/1000) + " seconds");
+ setSharedObject("Task/start", null, true, true);
+
+} else
+ showInfoDialog("No active task available");
diff --git a/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js b/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js
new file mode 100644
index 0000000..ec38efa
--- /dev/null
+++ b/presentations/EclipseCon Europe 2015/06 Cool things/05 Charting.js
@@ -0,0 +1,31 @@
+loadModule('/Charting');
+loadModule('/System/Platform');
+
+var servers = ["localhost", "www.eclipse.org", "www.google.com", "www.adelaidecitycouncil.com"];
+
+figure("Ping Statistics");
+clear();
+setXLabel("Ping attempt")
+setYLabel("Time [ms]")
+
+for each (address in servers) {
+ series(address);
+ for (var count = 1; count < 20; count++) {
+
+ // run 'ping' command
+ process = runProcess("ping", [ "-c 1", address ]);
+ while (!process.isFinished())
+ ;
+
+ // parse output
+ output = process.getOutput();
+ start = output.indexOf("time=");
+ if (start != -1) {
+ end = output.indexOf(" ms", start);
+ if (end != -1) {
+ time = parseFloat(output.substring(start + 5, end));
+ plotPoint(count, time);
+ }
+ }
+ }
+}

Back to the top