diff options
author | Christian Pontesegger | 2015-11-01 19:02:39 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2015-11-01 19:02:39 +0000 |
commit | 29455ce84da98250d22c155d61a514fa166e8e35 (patch) | |
tree | 315884f4bcdf0e70cfe0253edb0a035da11992d3 | |
parent | 4a82c191c033414ac0fa5469f1be6698634e9570 (diff) | |
parent | 80476ee1d60320bbd08a787c8d318b6b105b6973 (diff) | |
download | org.eclipse.ease.scripts-29455ce84da98250d22c155d61a514fa166e8e35.tar.gz org.eclipse.ease.scripts-29455ce84da98250d22c155d61a514fa166e8e35.tar.xz org.eclipse.ease.scripts-29455ce84da98250d22c155d61a514fa166e8e35.zip |
Merge "add eclipseCon Europe 2015 samples & slides"
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 Binary files differnew file mode 100644 index 0000000..658d126 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/bullet.png 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 Binary files differnew file mode 100644 index 0000000..12c63e2 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_build_module_docs.png 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 Binary files differnew file mode 100644 index 0000000..07087d5 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_charts.png 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 Binary files differnew file mode 100644 index 0000000..70643f2 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_invoke_java.png 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 Binary files differnew file mode 100644 index 0000000..6119987 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_module_extension.png 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 Binary files differnew file mode 100644 index 0000000..6ec0fbf --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/code_simple_module.png 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 Binary files differnew file mode 100644 index 0000000..7c6483e --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/coming_soon.png diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png Binary files differnew file mode 100644 index 0000000..7e5bbdc --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/eclipse256.png diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png Binary files differnew file mode 100644 index 0000000..10bfac1 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/evaluation.png diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png Binary files differnew file mode 100644 index 0000000..b069023 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/java.png 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 Binary files differnew file mode 100644 index 0000000..9ed9246 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/not_supported.png diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png Binary files differnew file mode 100644 index 0000000..dc6fde5 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/script.png 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 Binary files differnew file mode 100644 index 0000000..aaeb908 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_advanced_chart.png 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 Binary files differnew file mode 100644 index 0000000..ad6bfce --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion.png 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 Binary files differnew file mode 100644 index 0000000..d767a0f --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_code_completion_help.png 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 Binary files differnew file mode 100644 index 0000000..7795f1e --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_compile_class.png 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 Binary files differnew file mode 100644 index 0000000..f095e08 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_debugging.png 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 Binary files differnew file mode 100644 index 0000000..9386e78 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_java.png 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 Binary files differnew file mode 100644 index 0000000..223a6e0 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_invoke_result.png 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 Binary files differnew file mode 100644 index 0000000..a267e54 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_launch_configuration.png 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 Binary files differnew file mode 100644 index 0000000..8d2e6a1 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_load_module.png 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 Binary files differnew file mode 100644 index 0000000..e7d4203 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_modules_explorer.png 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 Binary files differnew file mode 100644 index 0000000..b640c78 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_online_help.png 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 Binary files differnew file mode 100644 index 0000000..d5c01d3 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_explorer.png 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 Binary files differnew file mode 100644 index 0000000..f534cc8 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_locations.png 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 Binary files differnew file mode 100644 index 0000000..8a8fa48 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_popup.png 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 Binary files differnew file mode 100644 index 0000000..7655bd9 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_context.png 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 Binary files differnew file mode 100644 index 0000000..7352c81 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_menu.png 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 Binary files differnew file mode 100644 index 0000000..09dbbbf --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_script_ui_toolbar.png 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 Binary files differnew file mode 100644 index 0000000..c5d13b1 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell.png 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 Binary files differnew file mode 100644 index 0000000..f52aaad --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic.png 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 Binary files differnew file mode 100644 index 0000000..be52ade --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_basic_console.png 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 Binary files differnew file mode 100644 index 0000000..3d1e767 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_eclipse.png 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 Binary files differnew file mode 100644 index 0000000..ab33efe --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_shell_jars.png 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 Binary files differnew file mode 100644 index 0000000..714e5a9 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_simple_chart.png 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 Binary files differnew file mode 100644 index 0000000..c8dbf16 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_unit_testing.png 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 Binary files differnew file mode 100644 index 0000000..50b56c3 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/scrn_wrap_instance.png 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 Binary files differnew file mode 100644 index 0000000..bc79603 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_1.png 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 Binary files differnew file mode 100644 index 0000000..054e8d5 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_2.png 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 Binary files differnew file mode 100644 index 0000000..3d13b38 --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/shell_java_3.png diff --git a/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png Binary files differnew file mode 100644 index 0000000..4e491ac --- /dev/null +++ b/presentations/EclipseCon Europe 2015/01 Slides/content/images/supported.png 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); + } + } + } +} |