| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Javascript for EMF (JS4EMF)</h1> | |
| </p> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Javascript for EMF (JS4EMF)"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p>Javascript for EMF is a proposed open source component under the | |
| Eclipse Modeling Framework Technology for integrating scripting with | |
| Javascript with EMF. It is in the Project Proposal Phase (as defined in | |
| the Eclipse Development Process document) and is written to declare its | |
| intent and scope. This proposal is written to solicit additional | |
| participation and input from the Eclipse community. You are invited to | |
| comment on and/or join the project. Please send all feedback to the <a | |
| href="http://eclipse.org/forums/eclipse.technology.emft">EMFT forum</a> | |
| with <b>[JS4EMF]</b> as a prefix of the subject line.</p> | |
| <h2>Background</h2> | |
| <p>Scripting of applications is commonly used to describe the use of a | |
| second programming language (the scripting language) for parts of an | |
| application. The scripting language is usually interpreted and well | |
| integrated with the application objects, both in the business layer and | |
| the user interface. Usually the scripted part is considered layered on a | |
| core, but more interleaved models are possible. A scripting language can | |
| be internal, i.e. used only within the application by its developers, or | |
| external, i.e. exposed to the users and used for extending the | |
| application. In both cases, the use of the scripting language gives | |
| added flexibility, since many changes to the application can be made by | |
| replacing or adding scripts and without redeploying the whole | |
| application. This is also an advantage during the initial development, | |
| since interpreted scripts can be modified and executed without a costly | |
| edit-compile-build-run cycle.</p> | |
| <p>EMF currently has a Java API for both static and reflective access to | |
| Ecore objects, resources, viewers, commands etc, making it possible to | |
| create complex EMF-based applications with Java. Modeling and editing | |
| EMF data can be done within the development environment, by using | |
| so-called dynamic EMF objects. However, adding behavior to EMF objects | |
| and adapting the user interface, still requires "static" Java code. | |
| Hence, to develop and test an EMF application you still need to compile, | |
| build and (re)launch Eclipse. Using a scripting language like Javascript | |
| can provide a more flexible development model, where operations and | |
| commands can be programmed without the edit-compile-build-run cycle.</p> | |
| <h2>Scope</h2> | |
| <p>This project will seek to integrate Javascript with all parts of EMF | |
| where it makes sense. It will initially support manipulating Ecore | |
| objects (static and dynamic) with Javascript, validating by means of | |
| constraints and invariants, implementing operations and executing | |
| Javascript code as editing commands. Other opportunities will then be | |
| explored, like extending the editors, computed databinding, etc. The | |
| long term goal is to enable developing complete EMF applications with | |
| Javascript based on EMF's dynamic capabilities, while allowing the | |
| developer to decide where the split between Java and Javascript should | |
| be.</p> | |
| <h2>Initial contribution</h2> | |
| <p>Code has already been contributed to the e4 project, in the context | |
| of the Toolkit Model project. But since it does not depend on e4, and | |
| should be generally useful as part of EMFT, the code will be | |
| appropriately refactored and moved. See <a | |
| href="http://wiki.eclipse.org/E4/UI/Toolkit_Model/org.eclipse.e4.emf.javascript">http://wiki.eclipse.org/E4/UI/Toolkit_Model/org.eclipse.e4.emf.javascript</a> | |
| for a description.</p> | |
| <h2>Relationship with Other Eclipse Projects/Components</h2> | |
| <p>The code depends on various parts of the EMF API.</p> | |
| <h2>Third party libraries</h2> | |
| <ul> | |
| <li>The code uses Mozilla's Rhino Javascript engine, and | |
| implements/extends various interfaces/classes from its library.</li> | |
| </ul> | |
| <h2>Organization</h2> | |
| <h3>Committers</h3> | |
| <ul> | |
| <li>Hallvard Trætteberg (Norwegian University of Science and | |
| Technology).</li> | |
| <li>Gilles Vanwormhoudt (Telecom Lille 1)</li> | |
| </ul> | |
| <h3>Mentors</h3> | |
| <ul> | |
| <li>Cédric Brun</li> | |
| <li>Chris Aniszczyk</li> | |
| </ul> | |
| <h3>Interested Parties</h3> | |
| The e4 contribution has not been heavily marketed, but after the ESE | |
| 2009 presentation of TM, there has been some questions about making it | |
| available outside TM and e4.</div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |