blob: c0db2a59ffca1a0fa12a016eb903a7671fc17347 [file] [log] [blame]
<?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");
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/common/project-info.class.php");
$App = new App(); $Nav = new Nav(); $Menu = new Menu();
$projectInfo = new ProjectInfo("modeling.gmf");
$projectInfo->generate_common_nav( $Nav );
include ($App->getProjectCommon());
#*****************************************************************************
#
# gmf-new-1.0M5.php
#
# Author: Richard C. Gronback
# Date: 2006-03-04
#
# Description:
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "What's New and Noteworthy - 1.0M5";
$pageKeywords = "eclipse,project,graphical,modeling,model-driven";
$pageAuthor = "Richard C. Gronback";
# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", "downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
# End: page-specific settings
#
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">
<div id="midcolumn">
<table border="0" cellpadding="10" cellspacing="10" width="100%">
<tbody>
<tr>
<td align="left"><h1>$pageTitle</h1></td>
<td align="right"><img align="right" src="http://www.eclipse.org/gmf/images/logo_banner.png" /></td>
</tr>
</tbody>
</table>
<hr/>
<table border="0" cellspacing="5" cellpadding="2" width="100%">
<tbody>
<tr>
<td width="69%" class="bannertext">
Here are some of the more noteworthy things available in milestone build M5
(March 03, 2006) which is now available for <a href="http://download.eclipse.org/modeling/gmp/downloads/drops/S-1.0M5-200603031600/index.php" target="_self">download</a>.
<br/><br/>See the <a href="http://download.eclipse.org/modeling/gmp/downloads/drops/S-1.0M5-200603031600/buildNotes.php">M5 build notes</a> for details about bugs fixed and other changes.
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="10" cellspacing="0" width="100%">
<tbody>
<tr>
<td colspan="2">
<hr/>
<h2>Runtime Common</h2>
<hr/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>API Work</b>
</td>
<td align="left" valign="top" width="70%">The GMF command API has been reworked to extend the Eclipse undoable operations API. GMF commands are now suitable for execution through the Eclipse operation history. The legacy GMF CommandManager is no longer used to maintain a history of undoable commands. Transactional commands are also provided to manipulate EMF models through the EMFT transaction API.
<br/><br/>
By default, GMF editors use their editing domain as their undo context in the operation history. Any change made to EMF models through the editing domain belonging to a GMF editor will be undoable from that editor's undo menu.
<br/><br/>
File modification approval is achieved through the registration of an IOperationApprover with the operation history. This approver validates the modification of file resources on behalf of any ICommand that is executed, undone and redone through the operation history. Each ICommand declares the file resources that it expects to modify in its #getAffectedFiles() method.
<br/><br/>
The following figure shows the new class diagram for the GMF command API:<br/><br/><center><img src="images1.0m5/GMF Command Class Diagram.gif"></center>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
<h2>Runtime Diagram</h2>
<hr/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>API Work</b>
</td>
<td align="left" valign="top" width="70%">
<i>Diagram plug-in adoption of EMF transaction API enhancements:</i><br/><br/>
Migrated diagram plugins to adopt new APIs in EMF transaction API. By default, two diagrams opened in GMF (e.g. two logic diagrams) now use two different editing domains -- one per editor.
<br/><br/>
Wherever the API needs an editing domain you will need to pass one in. As an example the DiagramEventBroker#getInstance method now requires that an EditingDomain be passed to it. The editing domain is available from an IGraphicalEditPart and an editor. AbstractModelerPropertySection is no longer a IDemuxedMListener. If you are overriding any of the IDemuxedMListener methods you should override getFilter() instead of filter on the event type.
<br/><br/>
<i>RenderedImageFactory extensibility</i>
<br/><br/>
Clients can now supply extensions to support custom graphics formats through the new extension point: org.eclipse.gmf.runtime.draw2d.ui.render.renderedImageFactory.
<br/><br/>
This extension point is used to define an image type to allow auto detection of an image buffer. The image type can instantiate an RenderedImage which can subsequently be rendered using the ScalableImageFigure class.
<br/><br/>
In the extension point, the client points to a factory class which they create implementing the RenderedImageType interface. The RenderedImageFactory static class calls the extension point to compile a list of image types to query. When the client calls the RenderedImageFactory to retrieve the proper RenderedImage, it will ask each type whether it can handle the particular image buffer. If the image buffer is auto-detected by the type, then the type will instatiate and return a RenderedImage object.
<br/><br/>
<i>Notation meta-model support for coordinate systems</i>
<br/><br/>
Added support in the notation meta-model for a measurement unit. This is important for interoperability use-cases between editors to determine how to map coordinates from one editor to another. A new structural feature (unchangeable) was added to the Diagram object that is an enumeration literal representing the coordinate system for the diagram editor.
<br/><br/>
This value is propogated up to the root editpart, consequently it is no longer necessary for clients to initialize the MapMode by overriding the
<br/><br/>
DiagramRootEditPart#getMapMode api. Instead they need to initialize the measurement unit of the notation Diagram object in their view factory. An example can be seen in the geoshapes editor.
<br/><br/>
@see GeoshapesDiagramViewFactory#getMeasurementUnit()
<br/><br/>
<b>Note:</b> clients overriding DiagramRootEditPart#getMapMode will have a compile error since it is now marked as "final".
<br/><br/>
<i>Animated Layout migration</i>
<br/><br/>
Migrated existing animation classes in GMF to new animation classes in GEF (LayoutAnimator, RoutingAnimator). Deprecated unneeded class in GMF: AnimatableLayoutListener. Now clients can use LayoutAnimator and RoutingAnimator from GEF in it's place.
<br/><br/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>PNG Support</b>
</td>
<td align="left" valign="top" width="70%">A new image format PNG is now supported via the "Save as Image File�"
<br/><br/>
First choose the "Save As Image File.." from the right mouse context menu.<br/><br/><center><img src="images1.0m5/image001.jpg"></center>
<br/><br/>
Then choose the drop down to select the image file format. Choose "PNG".<br/><br/>
<center><img src="images1.0m5/image002.jpg"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Improved Layout</b>
</td>
<td align="left" valign="top" width="70%">There is a new layout provider that considers contained children is now available. Previously, the layout providers that were available only operated in a single container context and clients would have to manually select each container they wishes to arrange. Now, this new layout will recursively enter each child in the layout container and arrange it�s contents as well. By default, these CompositeTopDownLayoutProvider and CompositeLeftRightLayoutProvider are not installed as the default layout provider for clients. If clients wish to utilize it, they must create a layout provider that subclasses on these providers and provide for their diagram type and the LayoutType.DEFAULT type. This is instrumented in the logic example.
<br/><br/>
@see org.eclipse.gmf.examples.runtime.diagram.logic.internal.providers.LogicLayoutProvider.
<br/><br/>
Example Layout result
<br/><br/>
Before performing arrange-all action:<br/><br/><center><img src="images1.0m5/image003.gif"></center><br/><br/>
After performing arrange-all action:<br/><br/><center><img src="images1.0m5/image004.gif"></center>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
<h2>Runtime EMF</h2>
<hr/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>API Work</b>
</td>
<td align="left" valign="top" width="70%">The notable change in this milestone is the deprecation of a large portion of the "MSL" (org.eclipse.gmf.runtime.emf.core) API. The deprecated APIs are preserved in M5 in a compatibility plug-in, org.eclipse.gmf.runtime.emf.core.compatibility, in the same package namespaces as previously. All of the public APIs have deprecation warnings indicating the substitutions required in client code. The general theme of the deprecations is to replace calls to MSL APIs with equivalents in the EMF base and EMFT Transaction APIs. The compatibility plug-in will be eliminated in the M6 milestone.
<br/><br/>
This milestone also removes APIs that were deprecated in M4, in particular the ILogicalResource-related APIs and the variants of the ResourceUtil.load(...) method that accept Strings rather than Resources.<br/><br/>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
<h2>Generation Framework</h2>
<hr/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Load Resource</b>
</td>
<td align="left" valign="top" width="70%">A 'Load Resource...' action is added to diagram. The standard EMF dialog allows a user to load resources and reference model elements from them (e.g. in the property view).<br/><br/><center><img src="images1.0m5/LoadResource_1.PNG"><img src="images1.0m5/LoadResourceDialog.PNG"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Containment References</b>
</td>
<td align="left" valign="top" width="70%">It is now possible to visualize containment references as diagram links. All the diagram elements without parents are stored in the resource.<br/><br/><center><img src="images1.0m5/PhantomElements_1.PNG"><img src="images1.0m5/PhantomElements_2.PNG"><img src="images1.0m5/PhantomElements_3.PNG"><img src="images1.0m5/PhantomElements_4.PNG"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Initialize Diagram</b>
</td>
<td align="left" valign="top" width="70%">The 'Initialize diagram file' action dialog was changed to allow for creating a new diagram file in an arbitrary location.<br/><br/><center><img src="images1.0m5/InitDiagramFile.PNG"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Dynamic Templates</b>
</td>
<td align="left" valign="top" width="70%">Dynamic templates are now supported by GMF generation tooling.<br/><br/><center><img src="images1.0m5/DynamicTemplates.PNG"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Template</b>
</td>
<td align="left" valign="top" width="70%">Generated code makes use of the new Transaction API. As a result, each diagram operates with its own EditingDomain, ResourceSet and Resources loaded into it. The problems connected with single EditingDomain/ResourceSet shared across all GMF diagrams was eliminated.<br/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Dashboard</b>
</td>
<td align="left" valign="top" width="70%">A new GMF dashboard view guides a user through the process of diagram editor creation.<br/><br/><center><img src="images1.0m5/dashboard.PNG"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Wizards</b>
</td>
<td align="left" valign="top" width="70%">Improved graphical and tooling definition wizards allow a user to resolve domain elements as a node, link or label.<br/><br/><center><img src="images1.0m5/gdwiz.png"></center>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Links and Labels</b>
</td>
<td align="left" valign="top" width="70%">Links are supported with modeling assistance UI.<br/><br/>
Numerous enhancements in labels:<ul>
<li>Multiple label definitions in mapping and generation models</li>
<li>Labels with fixed text that don't require feature from domain model</li>
<li>Label based on more than one feature from domain model</li>
<li>Parsers are generated for the feature-based labels</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2">
<hr/>
<h2>General</h2>
<hr/>
</td>
</tr>
<tr>
<td align="right" valign="top" width="10%">
<b>Documentation</b>
</td>
<td align="left" valign="top" width="70%">
A new cheatsheet to accompany the tutorial is available from Help | Cheat Sheets...
</td>
</tr>
<tr><td/><td><center><img src="images1.0m5/cheatsheet2.png"></center></td></tr>
</tbody>
</table>
</div>
</div>
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>