blob: 0e0d900e3f6bac5efbfa39aeeeff72f8a41f1125 [file] [log] [blame]
<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Release_Notes_Previous</title>
<link type="text/css" rel="stylesheet" href="resources/bootstrap.css"/>
<link type="text/css" rel="stylesheet" href="resources/custom.css"/>
</head>
<body>
<h1 id="ReleaseNotesforOlderVersionofSirius">Release Notes for Older Version of Sirius</h1>
<ol class="toc" style="list-style: disc;">
<li>
<a href="#ReleaseNotesforOlderVersionofSirius">Release Notes for Older Version of Sirius</a>
<ol style="list-style: disc;">
<li>
<a href="#sirius5.1.1">Changes in Sirius 5.1.1</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges">User-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius5.1.0">Changes in Sirius 5.1.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges2">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges">Specifier-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges2">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius5.0.1">Changes in Sirius 5.0.1</a>
</li>
<li>
<a href="#sirius5.0.0">Changes in Sirius 5.0.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges3">User-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges3">Developer-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges2">Specifier-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius4.1.2">Changes in Sirius 4.1.2</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges4">User-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges4">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius4.1.1">Changes in Sirius 4.1.1</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges5">User-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges5">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius4.1.0">Changes in Sirius 4.1.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges6">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges3">Specifier-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges6">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius4.0.0">Changes in Sirius 4.0.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges7">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges4">Specifier-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges7">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius3.1.0">Changes in Sirius 3.1.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges8">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges5">Specifier-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges8">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius3.0.0">Changes in Sirius 3.0.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges9">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges6">Specifier-Visible Changes</a>
</li>
<li>
<a href="#DeveloperVisibleChanges9">Developer-Visible Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius2.0.0">Changes in Sirius 2.0.0</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges10">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges7">Specifier-Visible Changes</a>
</li>
<li>
<a href="#APIChanges">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius1.0.0">Changes in Sirius 1.0.0 (from Sirius 1.0.0M7)</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges11">User-Visible Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges8">Specifier-Visible Changes</a>
</li>
<li>
<a href="#APIChanges2">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius1.0M7">Changes in Sirius 1.0.0M7 (from Sirius 1.0M6)</a>
<ol style="list-style: disc;">
<li>
<a href="#SpecifierVisibleChanges9">Specifier-Visible Changes</a>
</li>
<li>
<a href="#APIChanges3">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius1.0M6">Changes in Sirius 1.0.0M6 (from Sirius 1.0M5)</a>
<ol style="list-style: disc;">
<li>
<a href="#APIChanges4">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius1.0M5">Changes in Sirius 1.0.0M5 (from Sirius 1.0M4)</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges12">User-Visible Changes</a>
</li>
<li>
<a href="#APIChanges5">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius1.0M4">Changes in Sirius 1.0.0M4 (from Sirius 0.9)</a>
<ol style="list-style: disc;">
<li>
<a href="#UserVisibleChanges13">User-Visible Changes</a>
</li>
<li>
<a href="#APIChanges6">API Changes</a>
</li>
</ol>
</li>
<li>
<a href="#sirius0.9">Changes in Sirius 0.9.0</a>
<ol style="list-style: disc;">
<li>
<a href="#MigratingfromObeoDesignerorViewpointtoSirius">Migrating from Obeo Designer or Viewpoint to Sirius</a>
</li>
<li>
<a href="#Pluginsversionnumbers.">Plug-ins version numbers.</a>
</li>
<li>
<a href="#Majornamespacechanges">Major namespace changes</a>
</li>
<li>
<a href="#NatureID">Nature ID</a>
</li>
<li>
<a href="#OtherAPIChanges">Other API Changes</a>
</li>
<li>
<a href="#SpecifierVisibleChanges10">Specifier-Visible Changes</a>
</li>
<li>
<a href="#UserVisibleChanges14">User-Visible Changes</a>
</li>
</ol>
</li>
</ol>
</li>
</ol>
<p>This document contains the release notes for older versions of of Sirius.</p>
<h2 id="sirius5.1.1">Changes in Sirius 5.1.1</h2>
<h3 id="UserVisibleChanges">User-Visible Changes</h3>
<ul>
<li><span class="label label-info">Modified</span> When exporting a diagram as an image, it is now possible to choose an image size level. Before this, a preference called
<em>AutoScale</em> was available and when it was enable, the diagram was scaled to the maximum size safely allowed by the system. Now, a new preference named
<em>Size of exported images</em> is available in the
<em>Sirius &gt; Sirius Diagram</em> preference page and offer this possibility. Setting size to
<em>Max</em> generates same diagrams as by using the previous preference
<em>AutoScale</em>. This can produce image with big size in long generation time. If
<em>Size of exported images</em> is set to level
<em>Nominal</em>, diagram will be exported with nominal size (quality will be lower but export time will be shorter). This new preference allows you to choose the tradeoff you want. The
<a href="user/diagrams/Diagrams.html#Exportingimages">user documentation </a> details this change with an example.
</li>
<li><span class="label label-info">Modified</span> The "
<em>Auto Size</em>" action can now be applied on region container. Before that, the action was available only for regions.
</li>
<li><span class="label label-info">Modified</span> The "
<em>Make Same Size</em>" action can now be applied on region container. If selected region containers have the same number of regions, the regions will have the same size. If the region container used for reference has more regions than the other(s), the last region of others will have the size of all remaining regions in the one used for reference.
</li>
<li><span class="label label-info">Modified</span> In diagrams, the selection by drawing a rectangle on container (using ALT key) now has the same behaviors than selection by drawing a rectangle on the diagram&#8217;s background. You can refer to
<em>Selection</em> section of the
<a href="user/diagrams/Diagrams.html#standardToolId">Standard Tools</a> chapter for more details on this tool.
</li>
</ul>
<h3 id="DeveloperVisibleChanges">Developer-Visible Changes</h3>
<h4 id="Changesinorg.eclipse.sirius">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.business.api.query.SiriusReferenceFinder.of(EObject)</code> has been added to provide an easy way to get the
<code>SiriusReferenceFinder</code> from an
<code>EObject</code> in the Sirius
<code>Session</code>.
</li>
<li><span class="label label-info">Modified</span> (experimental) The method
<code>org.eclipse.sirius.business.api.query.SiriusReferenceFinder.getReferencingSiriusElements(Collection&lt;EObject&gt;, SearchScope)</code>. The SearchScope.LOADED_REPRESENTATIONS_SCOPE scope covers the search and result scope. Then, no additional resource will be loaded using this scope.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.ui">Changes in
<code>org.eclipse.sirius.diagram.ui</code>
</h4>
<ul>
<li><span class="label label-warning">Deprecated</span> Preference
<code>PREF_SCALE_DIAGRAMS_ON_EXPORT</code> from
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys</code> is now deprecated. User should use new preference
<code>org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys</code>:
<code>PREF_SCALE_LEVEL_DIAGRAMS_ON_EXPORT</code>.
</li>
<li><span class="label label-success">Added</span> A new attribute
<code>margin</code> has been added in
<code>org.eclipse.sirius.diagram.ui.business.api.DiagramExportResult</code>. This attribute indicates what margin has been used to produce a white frame during diagram export. This attribute is available from the getter
<code>getMargin()</code>. A new constructor is also available to pass on the margin
<code>org.eclipse.sirius.diagram.ui.business.api.DiagramExportResult.DiagramExportResult(DDiagram, double, int, Collection&lt;IPath&gt;)</code>.
</li>
<li><span class="label label-info">Modified</span> If you previously override the default Sirius value for
<code>SiriusDiagramUiPreferencesKeys.PREF_SCALE_DIAGRAMS_ON_EXPORT</code>, you must replace this override by an override of the new preference
<code>SiriusUIPreferencesKeys.PREF_SCALE_LEVEL_DIAGRAMS_ON_EXPORT</code>. Example:
</li>
</ul>
<pre>SiriusEditPlugin.getPlugin().getPreferenceStore().setDefault(SiriusUIPreferencesKeys.PREF_SCALE_LEVEL_DIAGRAMS_ON_EXPORT.name(),0);
</pre>
<h4 id="Changesinorg.eclipse.sirius.ui">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A new preference has been added to
<code>org.eclipse.sirius.ui.business.api.preferences.SiriusUIPreferencesKeys</code>:
<code>PREF_SCALE_LEVEL_DIAGRAMS_ON_EXPORT</code>. It is used to control the scaling level behavior when exporting diagrams. Refer to the JavaDoc for the details.
</li>
<li><span class="label label-success">Added</span> The type
<code>org.eclipse.sirius.ui.business.api.dialect.ExportFormat</code> has a new attribute representing the scaling level to use for diagram export. It is defined by an integer type. Refer to the JavaDoc for details on its meaning.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.junit.support">Changes in
<code>org.eclipse.sirius.tests.junit.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>SiriusTestCase.loadModeler(URI, EditingDomain)</code> allows to load the VSM at the specified URI and register all its Viewpoints in the current testcase. There is a new method,
<code>org.eclipse.sirius.tests.support.api.SiriusTestCase.loadModeler(URI, EditingDomain, boolean)</code>, to allow to load the VSM at the specified URI without registering its viewpoints. It can be useful to load a VSM for an editing domain of another session than the current session of the
</li>
</ul>
<p>testcase.</p>
<h2 id="sirius5.1.0">Changes in Sirius 5.1.0</h2>
<h3 id="UserVisibleChanges2">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> When exporting a diagram as an image, it is now possible to choose whether or not the diagram should be scaled. If disabled, the diagram will be exported with its normal size (equivalent to a 100% zoom level). If auto-scaling is enabled, the diagram will be scaled to the maximum size safely allowed by the system (this can be different on different OSes). Note that when auto-scaling is enabled, the image files produced may be larger than without. When exporting very large diagrams it is also possible that the diagram will be scaled
<em>down</em> (i.e. with a zoom level smaller than 100%). Enabling auto-scaling can be chosen on a case by case basis from the export dialog; the initial value in the dialog can be controlled by a new preference available in the
<em>Sirius &gt; Sirius Diagram</em> preference page.
</li>
<li><span class="label label-success">Added</span> The end user can now
<a href="user/diagrams/Diagrams.html#RemoveBendpoints">remove all bend-points</a> on rectilinear edges. It was only possible on oblique edges before. This action is available on edge context menu &#8220;Remove Bend-points&#8221; or by using the shortcut &#8220;Ctrl&#8221; + &#8220;Shift&#8221; + &#8220;-&#8221;. If number of bend-points can not be reduced, remove action will be inefficient.
</li>
<li><span class="label label-success">Added</span> The status Synchronized/Unsynchronized of the diagram is now displayed in the status bar when the diagram editor has the focus or can be directly displayed
<a href="user/diagrams/Diagrams.html#synchronized_diagram">in the diagram</a> with a decorator.
</li>
<li><span class="label label-success">Added</span> The user now have a drop down menu in the tabbar with all available straighten to edge actions. </li>
<li><span class="label label-success">Added</span> Straighten to actions on edge are now available even if the selection contains incompatible elements (edge labels for example). Their execution affects only compatible edges.</li>
<li><span class="label label-success">Added</span> Four new straighten actions are available (with top pinned, with bottom pinned, with left pinned, with right pinned) and allow to straighten edges from the opposed straightening axis point of view.</li>
<li><span class="label label-info">Modified</span> In a diagram, when selecting an edge or a node that are not fully displayed in the editor, now, the reveal is not done anymore, that is, the displayed content of the editor is not moved anymore. If the user want to fully see the selected element, he may drag the editor content using center mouse button. </li>
<li><span class="label label-info">Modified</span> In a diagram with
<em>snapToGrid</em> enabled:
<ul>
<li>When performing a drag and drop from the model explorer or a palette tool to the diagram, the new created element is now snapped to the grid.</li>
<li>When performing an
<em>Arrange all</em> or an
<em>Arrange Linked Border Node</em> action, all diagram elements are now snapped to the grid.
</li>
<li>When performing a drag and drop or a tool that will create multiple elements, all created elements are still visible but now snapped to the grid. </li>
<li>When creating an edge with a tool that also create the associated border nodes, the border nodes are now snapped near the click location. Before, they were created to respect a shortest path.</li>
</ul>
</li>
</ul>
<p>
<img border="0" src="./images/borderNodesWithSnapToGrid.png"/>
</p>
<ul>
<li><span class="label label-info">Modified</span> In a sequence diagram, it is now possible to resize the combined fragment when the first or the last operand is selected (increase the size of the first operand to the top, or increase the size of the last operand to the bottom). Before, it was necessary to select the combined fragment itself to resize it. </li>
<li><span class="label label-info">Modified</span> In a sequence diagram, it is now possible to resize an
<em>Execution</em> contained in an
<em>Operand</em> without previously resize its
<em>Operand</em> if more space is needed. The
<em>Operand</em>, and if necessary the
<em>Combined Fragment</em>, is resized too.
</li>
<li><span class="label label-info">Modified</span> In a diagram, the action
<em>Show/Hide label</em> is now visible even if the selection contains invalid elements (ie elements without label). The action is applied only on valid elements of the selection.
</li>
<li><span class="label label-info">Modified</span> In a diagram, the Line Style actions (Tree, Oblique or Rectilinear Routing Style) is now visible in the contextual menu even if the selection contains invalid elements (other elements than edges). The action is applied only on valid elements of the selection.</li>
<li><span class="label label-info">Modified</span> When an user defines a custom bundled image shape for a figure (
<a href="developer/extensions-provide_custom_bundled_image_shape.html#bundleImageShape">bundleImageShape</a> ), opening or refreshing a diagram will not display exception anymore when the bundleImageShape extension is not valid. A warning is now displayed in the Error Log view to inform user of which attribute of the extension is not correct.
</li>
</ul>
<h3 id="SpecifierVisibleChanges">Specifier-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> An
<a href="./user/general/Modeling%20Project.html#Migration">automatic migration</a> has been added in this version to fix diagram with edge labels corrupted (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=518870">bugzilla #518870</a> for more details). Contrary to all previous migrations, this one logs an information in the
<em>Error Log</em> view to inform how many labels have been fixed in concerned diagrams. If detected as &#8220;corrupted label&#8221;, the label is reset to its default location (as if you launch the &#8220;Snap Back&#8221; action of it). If at least one label is detected as &#8220;corrupted label&#8221;, the layout is also potentially corrupted (nodes, children of the diagram, with x or y coordinate very big). In this case, the concerned nodes are moved near 5000 (or -5000) as new coordinate. A message is added in this case:
<em>Some nodes have also been moved as the layout of this diagram is corrupted. A Reset Origin and/or manual layout is probably needed for this diagram.</em> The rules applied to detect a corrupted label are the following:
<ul>
<li>If the label is less than 250 pixels away from the reference point on its corresponding edge, the label is not considered as distant.</li>
<li>If the label is more than 1000 pixels away from the reference point on its corresponding edge, the label is considered as distant.</li>
<li>Between these 2 limits, the label is considered as distant if the distance between the center of the label and the edge is higher than &#8220;four times the size of the nearest segment&#8221;.</li>
</ul>
</li>
<li><span class="label label-info">Modified</span> In manual refresh mode (
<em>Automatic Refresh</em> Sirius preference disabled), when the
<em>Force Refresh</em> option of a tool is enabled in your VSM, only the current representation is refreshed when the tool is applied. Before this version, all open representations were refreshed.
</li>
<li><span class="label label-info">Modified</span> The filtering expression variables available in the properties view definition in the &#8216;Extends&#8217; tab were renamed to match the following pattern: featureName+&#8216;Description&#8217;.</li>
<li><span class="label label-info">Modified</span> The
<em>Reference Name</em> field of
<em>Create instance</em> completion will display only features with a consistent type with the one specified in
<em>Type Name</em> field (if a type has been specified).
</li>
<li><span class="label label-info">Modified</span> The
<em>Type Name</em> field of
<em>Create instance</em> completion will display only types consistent with the feature type specified in
<em>Reference Name</em> field (if a valid feature has been specified).
</li>
</ul>
<h3 id="DeveloperVisibleChanges2">Developer-Visible Changes</h3>
<h4 id="Migrations">Migrations</h4>
<ul>
<li><span class="label label-success">Added</span> A migration has been added to fix diagram with edge labels corrupted (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=518870">bugzilla #518870</a> for more details). The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is
<em>12.1.0.201706291600</em>.
</li>
<li><span class="label label-success">Added</span> A new class
<code>org.eclipse.sirius.ext.gmf.runtime.gef.ui.figures.SiriusDefaultSizeNodeFigure</code> has been added in plugin
<code>org.eclipse.sirius.ext.gmf.runtime</code>. The goal of the class is to workaround a
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=519250">GMF bug</a>. So if you have created class which inherits from
<code>org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure</code>, you must now use the new
<code>SiriusDefaultSizeNodeFigure</code> instead.
</li>
<li><span class="label label-success">Added</span> A migration has been added to add an
<code>uid</code> to all instances of type DRepresentation. This
<code>uid</code> is used to reference the DRepresentation from the DRepresentationDescriptor.
<code>DRepresentationDescriptor.repPath</code> has been changed to have
<code>uid</code> as fragment. The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is
<em>12.1.0.201707281200</em>.
</li>
<li><span class="label label-success">Added</span> A migration has been added to fix diagram with edge bend-points corrupted (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=519044">bugzilla #519044</a> for more details). The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is
<em>12.1.0.201708031200</em>.
</li>
</ul>
<h4 id="TranslationKeysChanges">Translation Keys Changes</h4>
<p>See
<a href="i18n_changes.html#sirius51">this document</a> for the complete list of message keys added or removed in Sirius 5.0.
</p>
<h4 id="replazyloading">Representations lazy loading (experimental).</h4>
<p>A new mode (currently experimental) is available to load representations on demand and not during session opening. This feature implies to serialize Sirius representations in separate resources. This mode can be activated by setting the system property
<code>createLocalRepresentationInSeparateResource</code> at true. For more detail, see the developer documentation:
<a href="./developer/representations_lazy_loading.html">Representations lazy loading (experimental)</a>.
</p>
<h4 id="Changesinorg.eclipse.sirius2">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A new convenience static method has been added on the
<code>org.eclipse.sirius.business.api.session.Session</code> interface to retrieve the session an arbitrary
<code>EObject</code> is part of:
<code>Optional&lt;Session&gt; s = Session.of(myObject);</code>. It returns a
<code>java.util.Optional&lt;Session&gt;</code> so all the usual patterns apply, e.g.
<code>Session.of(obj).ifPresent(s -&gt; doSomething(s));</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor.isLoadedRepresentation()</code> has been added to know if the representation linked with this {@link DRepresentationDescriptor} is loaded. By default, all representations are held in the same resource than the DRepresentationDescriptor, in that case the method will always return true.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.session.danalysis.DAnalysisSession.allAnalyses()</code> has been added in the interface to reflect the already existing
<code>org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.allAnalyses()</code> implementation.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.DialectManager.getLoadedRepresentations(EObject, Session)</code> has been added to get all loaded representations in the given session with the given EObject as target.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getAllLoadedRepresentations(Session)</code> has been added to get all loaded representations in the given session.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.helper.SiriusUtil.REPRESENTATIONS_FOLDER_NAME</code> constant has been added. This is the default folder where representations file (*.srm) are located if the system property &#8220;createLocalRepresentationInSeparateResource&#8221; is set at true.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.tools.api.command.ui.UICallBack.shouldDeleteRepresentation(Set&lt;DRepresentationDescriptor&gt;)</code> has been added to be called when the user interface should prompt for a choice about the representation deletion.
</li>
<li><span class="label label-success">Added</span> (experimental) The new API
<code>org.eclipse.sirius.business.api.query.SiriusReferenceFinder</code> and
<code>org.eclipse.sirius.business.api.query.EObjectQuery.getSiriusReferenceFinder()</code> method to get it have been added. This API allows getting the DRepresentations or DRepresentationElements that reference the provided semantic object. It also allows getting the DRepresentationDescriptor which associated DRepresentation is or contains elements that reference the provided semantic object. This API will be useful for
<a href="#replazyloading">representation lazy loading</a> as it may, in the future, not need to load all not yet loaded representations. For now, the use of this API will load all not loaded representations.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getRepresentationDescriptors(EObject, Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getAllRepresentationDescriptors(Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getRepresentationDescriptors(RepresentationDescription, Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>.
</li>
<li><span class="label label-danger">Removed</span> The implementations of
<code>getRepresentationDescriptors(EObject, Session)</code>,
<code>getAllRepresentationDescriptors(Session)</code> and
<code>getRepresentationDescriptors(RepresentationDescription, Session)</code> have been removed from
<code>AbstractRepresentationDialectServices</code>. They are implemented in
<code>DialectManagerImpl</code>.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getRepresentations(EObject, Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getAllRepresentations(Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getRepresentations(RepresentationDescription, Session)</code> has been moved to
<code>org.eclipse.sirius.business.api.dialect.DialectManager</code>
</li>
<li><span class="label label-danger">Removed</span> The implementations of
<code>getRepresentations(EObject, Session)</code>,
<code>getAllRepresentations(Session)</code> and
<code>getRepresentations(RepresentationDescription, Session)</code> have been removed from
<code>AbstractRepresentationDialectServices</code>. They are implemented in
<code>DialectManagerImpl</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.common">Changes in
<code>org.eclipse.sirius.common</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.common.tools.api.util.LazyCrossReferencer.setEObjectToBeIgnored(Predicate&lt;EObject&gt;)</code> has been added to filter inverse references to prevent some references resolution.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getFilesFromWorkspace(Collection&lt;IProject&gt;, String)</code> signature has been modified in
<code>getFilesFromWorkspace(Collection&lt;IContainer&gt;, String)</code> to be more generic.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A new query has been added in
<code>org.eclipse.sirius.diagram.business.api.query.DDiagramQuery</code>. This query,
<code>getAllActivatedLayers</code>, returns all the activated layers (transient or not) of the given diagram. It should replace
<code>DDiagram.getActivatedLayers</code> in several cases if you directly use it.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.ui2">Changes in
<code>org.eclipse.sirius.diagram.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> Three new preferences have been added to
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys</code>:
<code>PREF_SCALE_DIAGRAMS_ON_EXPORT</code>,
<code>PREF_MAXIMUM_EXPORT_BUFFER_SIZE</code>,
<code>PREF_MAXIMUM_EXPORT_BUFFER_SIZE_WINDOWS</code>. They are used to control the auto-scaling behavior when exporting diagrams. Refer to the JavaDoc for the details.
</li>
<li><span class="label label-success">Added</span> In
<code>org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService</code>, two new methods have been added:
<ul>
<li>
<code>setAllowDownScaling(boolean)</code>: when auto-scaling is enabled (which is controlled by the already existing
<code>setAutoScalingEnabled()</code>), this is used to control if down-scaling is allowed or not.
</li>
<li>
<code>getScalingFactor()</code>: after the export has been performed, this can be used to obtain the scaling factor that was effectively used.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.diagram.ui.business.api.DiagramExportResult</code> has been added, which inherits from
<code>ExportResult</code>. It is returned by the
<code>DialectManager.exportWithResult()</code> methods when the representation exported is a diagram, and in addition to the information provided by
<code>ExportResult</code> gives access to the scaling factor that was used when exporting the diagram.
</li>
<li><span class="label label-success">Added</span> The new preference
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys.PREF_SHOW_SYNCHRONIZE_STATUS_DECORATOR</code> has been added to say if the
<a href="user/diagrams/Diagrams.html#synchronized_diagram">synchronize status</a> decorator must be shown or not.
</li>
<li><span class="label label-success">Added</span> A new method
<code>checkShapesIntersect()</code> has been added in
<code>org.eclipse.sirius.diagram.ui.business.api.query.ConnectionEditPartQuery</code> to check if source and target of the connection intersect (only intersect &#8211; not one contained in another).
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ext.emf.edit">Changes in
<code>org.eclipse.sirius.ext.emf.edit</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.ext.emf.edit.EditingDomainServices</code> does not use
<code>Collection</code> anymore as return type or parameter type in its services.
<code>java.util.Collection</code> has been replaced by
<code>java.util.List</code>. As mentioned in the
<a href="./specifier/general/Writing_Queries.html#service_methods">specifier documentation</a>, it is recommended to use List or Set instead of Collection in java services signature.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui2">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> In
<code>org.eclipse.sirius.ui.tools.api.dialogs.AbstractExportRepresentationsAsImagesDialog</code> a new method
<code>isAutoScaleDiagram()</code> has been added to indicate (once the dialog has been closed) if the user has requested to enable auto-scaling on diagram export.
</li>
<li><span class="label label-success">Added</span> In
<code>org.eclipse.sirius.ui.tools.api.actions.export.ExportAction</code>, a new method
<code>setAutoScaleDiagram(boolean)</code> to ask for automatic scaling of diagrams on export.
</li>
<li><span class="label label-success">Added</span> In
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIServices</code>, two new methods
<code>exportWithResult()</code> have been added. They are equivalent to the existing
<code>export()</code> methods (which return
<code>void</code>) except that they return an instance of the new type
<code>org.eclipse.sirius.ui.business.api.dialect.ExportResult</code>. This gives access to the list of all the actual files produced by the export operation. Note that in the case of the diagram dialect,
<code>exportWithResult()</code> actually returns a more specific
<code>DiagramExportResult</code> with additional diagram-specific information.
</li>
<li><span class="label label-success">Added</span> The type
<code>org.eclipse.sirius.ui.business.api.dialect.ExportFormat</code> has a new attribute representing the scaling policy to use for diagram. It is defined by a new enumerated type
<code>ExportFormat.ScalingPolicy</code> which can have four different values:
<code>WORKSPACE_DEFAULT</code>,
<code>AUTO_SCALING</code>,
<code>NO_SCALING</code>,
<code>AUTO_SCALING_IF_LARGER</code>. Refer to the JavaDoc for details on their meanings.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.tools.api.wizards.CreateEMFModelWizard</code> is a new wizard that can be invoked to create instances of any metamodel. It will ask the end-user for a metamodel (
<code>EPackage</code>), a concrete type to instanciate as root element, and finally the local path of the file to create. See the class Javadoc for sample usage. Note that the first two pages of the wizard (EPackage and root type selection) can be customized through the
<code>org.eclipse.sirius.common.package_meta_data</code> extension point to provide user-oriented name and documentation for an EPackage, and to suggest specific EClasses as good root candidates.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback.shouldDeleteRepresentation(Set&lt;DRepresentationDescriptor&gt;)</code> default implementation has been added to prompt the confirm dialog.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.business.api.session.SessionEditorInput.SessionEditorInput(URI, URI, String, Session)</code> has been added to provide the
<code>DRepresentationDescriptor</code> URI to retrieve the
<code>DRepresentation</code> from the
<code>DRepresentationDescriptor.getRepresentation()</code> method instead of performing a direct load.
</li>
<li><span class="label label-info">Modified</span> The org.eclipse.sirius.ui.tools.api.assist.TextContentProposalProvider.getSelectedElement() method is now protected instead of private to let sub-classes retrieving the selected element.</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui.editor">Changes in
<code>org.eclipse.sirius.ui.editor</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> New classes have been added in package
<code>org.eclipse.sirius.ui.editor.api.pages</code>. They are the following:
<code>AbstractSessionEditorPage</code>,
<code>PageProvider</code>,
<code>PageUpdateCOmmand</code>,
<code>PositioningKind</code>,
<code>PageUpdateCommandFactory</code>. These classes allow to provide custom pages to session editor instances.
</li>
<li><span class="label label-success">Added</span> An extension point
<code>org.eclipse.sirius.ui.editor.sessionEditorPageProvider</code> has been added to allow custom page providing for session editor instances.
</li>
</ul>
<h2 id="sirius5.0.1">Changes in Sirius 5.0.1</h2>
<p>Sirius 5.0.1 is a maintenance release with only bugfixes and small tweaks to the UI of
<a href="user/general/Aird_Editor.html">the aird editor</a>.
</p>
<h2 id="sirius5.0.0">Changes in Sirius 5.0.0</h2>
<h3 id="UserVisibleChanges3">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> An new
<em>aird editor</em> is available on
<em>.aird</em> files. It provides an alternative, form-based GUI to visualize and manipulate sirius sessions which is not tied to the Modeling perspective or Model Explorer view. See
<a href="user/general/Aird_Editor.html">the editor&#8217;s documentation</a> for more details.
</li>
<li><span class="label label-info">Modified</span> The label alignment of Notes from the Palette has been modified from Juno to Luna or newer versions of Eclipse. The label alignment had changed from
<em>TOP</em> &amp;
<em>CENTER</em> to
<em>MIDDLE</em> &amp;
<em>LEFT</em> (respectively). The initial alignment (
<em>TOP</em> &amp;
<em>CENTER</em>) has been restored. This is done with an
<a href="./user/general/Modeling%20Project.html#Migration">automatic migration</a> of the aird file.
</li>
<li><span class="label label-info">Modified</span> The
<em>Export diagram as images</em> action now adatps the output resolution based on the diagram size. This leads to better resolution for small to medium diagrams (and also bigger file) and to an operation which is no longer failing with out of memory errors in case of very big diagrams.
</li>
<li><span class="label label-info">Modified</span> The &#8220;straighten to&#8221; actions previously had a limitation concerning overlap detection. This is no longer the case. The previous known limitation has been removed from the documentation (
<i>In case of multi-selection, the overlap check is done in the current context of existing border nodes and not in the context of location of border nodes after each straighten edges.</i>).
</li>
<li><span class="label label-info">Modified</span> Decorators on diagram elements are drawn on top of other figures. If there is an overlap between a decorator of a figure A and another figure B that is over figure A, when user clicks on the decorator, the figure B is now selected (before it was the parent figure A).</li>
</ul>
<h3 id="DeveloperVisibleChanges3">Developer-Visible Changes</h3>
<h3 id="SpecifierVisibleChanges2">Specifier-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> It is now possible to automatically create one or several pre-configured widget(s) in a group if its domain class and if the meta-models of the properties view containing it have been specified. The widget(s) created will be infered from the features in the domain class (e.g. a properly configured
<em>Checkbox</em> widget will be created for boolean attributes).
</li>
<li><span class="label label-success">Added</span> Property Views definitions now support extending and overriding Properties View Descriptions without modifying the original. See
<a href="specifier/properties/Properties_View_Description.html#extensibility_features">the documentation</a> for details.
</li>
<li><span class="label label-success">Added</span> New model operations are available. You can now open a
<a href="specifier/general/Model_Operations.html#dialog">dialog</a> or a
<a href="specifier/general/Model_Operations.html#wizard">wizard</a> thanks to new dedicated model operations leveraging the Properties View language. You can also create new variable with the new
<em>Let</em> model operation, see its
<a href="specifier/general/Model_Operations.html#let">documentation</a> for more details.
</li>
<li><span class="label label-success">Added</span> In Property Views definitions, you can now create
<em>Toolbar Actions</em> on pages and groups in order to define small buttons in their toolbars.
</li>
<li><span class="label label-success">Added</span>
<em>Buttons</em> and
<em>Widget Actions</em> can now use an image along with a label thanks to the new
<em>Image expression</em>.
</li>
<li><span class="label label-success">Added</span> It is now possible to execute some behavior when the end users will click on the
<em>Reference Widget</em> thanks to the addition of an
<em>Initial Operation</em>.
</li>
<li><span class="label label-success">Added</span> You can indicate that a
<em>Dynamic Mapping For</em> should force the refresh of the user interface with the
<em>Force Refresh</em> property.
</li>
<li><span class="label label-success">Added</span>
<em>Categories</em> have been added in order to organize the pages and groups of the
<em>Properties</em> DSL.
</li>
<li><span class="label label-info">Modified</span> The notion of transient layer has been introduced in Sirius 5.0. (Refer to
<a href="specifier/diagrams/Diagrams.html#Transientlayer">Sirius Specifier</a> and
<a href="user/diagrams/Diagrams.html#transientLayer">Sirius User</a> documentation in Diagram chapter). A transient layer is an additional layer containing only decorations or tools. If you have such layer in your VSM, users may encounter some unexpected behaviors. If the layer is not
<em>active by default</em>, its activation state will not be persisted at session close. In other words, if a transient layer is enabled in a diagram and then the session is closed, at the next diagram opening, the layer will be disabled. If users have existing representations file, made with previous version, with such kind of layers activated, they will no longer enabled at the next opening in Sirius 5.0.0. If the layer is
<em>active by default</em> then it will be automatically applied when opening your diagram. We consider this behavior as a known limitation and an enhancement may be done in a further release. In the meantime, there is a workaround which consists to add a fake mapping (that is any mapping with its fields empty) so that the layer will not be considered as transient.
</li>
<li><span class="label label-info">Modified</span> The tab used to configure the metamodels used by the Properties view description is now using the same interface as the metamodels tab used to configure the representations.</li>
<li><span class="label label-info">Modified</span> The
<code>package::Class</code> syntax for domain classes and type names in the VSM is now fully supported and the new default. It means this syntax is interpreted by Sirius and completion is provided for it when the first
<code>:</code> character is entered. The legacy syntax
<code>package.Class</code> is still supported for compatibility.
</li>
<li><span class="label label-info">Modified</span> The organization of the contextual actions in the odesign for the
<em>Properties</em> DSL has been improved.
</li>
<li><span class="label label-info">Modified</span> Most of the concepts of the
<em>Properties</em> DSL can now have an identifier, a label and some documentation.
</li>
</ul>
<h4 id="Migrations2">Migrations</h4>
<ul>
<li><span class="label label-success">Added</span> A migration is added in this version to fix the alignment of the text in notes (as explained in user visible changes). The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is
<em>12.0.0.201704070000</em>.
</li>
</ul>
<h4 id="TranslationKeysChanges2">Translation Keys Changes</h4>
<p>See
<a href="i18n_changes.html#sirius50">this document</a> for the complete list of message keys added or removed in Sirius 5.0.
</p>
<h4 id="Changesinorg.eclipse.sirius.common2">Changes in
<code>org.eclipse.sirius.common</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.common.tools.api.util.SiriusCrossReferenceAdapterImpl.setFeatureToBeCrossReferencedWhiteList(Collection&lt;EReference&gt;)</code> to set a white list of references that must be referenced even if the reference is derived.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.common.tools.api.util.SiriusCrossReferenceAdapterImpl.isIncluded(EReference)</code> has been overridden to consider features in the white list.
</li>
<li><span class="label label-success">Added</span> A new extension point,
<code>org.eclipse.sirius.common.package_meta_data</code> has been added. It can be used to associate user-oriented meta-data to Ecore metamodels, identified by their
<code>nsURI</code>: a user-oriented name/label (as opposed to the technical nsURI), a (short) description/documentation, and a list of suggested EClasses defined in the EPackage that are good candidates as root model elements. These meta-data are currently used only in the generic model creation wizard integrated in the aird editor.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.common.ui">Changes in
<code>org.eclipse.sirius.common.ui</code>
</h4>
<ul>
<li><span class="label label-danger">Removed</span> The
<code>org.eclipse.sirius.common.ui.tools.api.dialog.FeatureEditorDialog</code> class has been removed; use the
<code>org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog</code> equivalent provided by EMF directly instead.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius3">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> An experimental mode to serialize representations in a different file is available with system property
<code>createRepresentationInSeparateResource=true</code>. That means all new representations will be saved, when this property is enabled, in a separate file with
<code>*.srm</code> extension.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.business.api.dialect.DialectServices.canCreate(EObject, RepresentationDescription, boolean)</code> has been added to better control the checks done by already existing
<code>org.eclipse.sirius.business.api.dialect.DialectServices.canCreate(EObject, RepresentationDescription)</code> method. The new boolean allow to deactivate the check verifying that the viewpoint of the given description must be activated so the method can return true.
</li>
<li><span class="label label-success">Added</span> The
<code>org.eclipse.sirius.viewpoint.description.DAnnotation.references</code> feature has been added. It allows to have some information without having to search them into the entire model of the Sirius session. Ideally only elements from semantic resources of the session should be referenced or else it may broke the session behavior either because resolving too soon EObject in the session or because adding a resource that is not known by Sirius session.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.EObjectQuery.getImpactedRepDescriptorFromDAnnotationData()</code> method has been added to help retrieve the
<code>DRepresentationDescriptors</code> which owned
<code>DAnnotation</code> are referencing a given
<code>EObject</code> with
<code>DAnnotation.references</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor#repPath</code> attribute has been added to hold the representation path since the
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor#representation</code> feature is derived. This attribute is not intended to be modified by client. You should use
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor.setRepresentation(DRepresentation)</code> or
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor.updateRepresentation(DRepresentation)</code> instead.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor.updateRepresentation(DRepresentation)</code> has been added to update the repPath attribute according to the given representation. This method is intended to be called if the representation instance is still the same but requires to recompute the repPath.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.FileQuery.isSrmFile()</code> has been added to indicate if the file extension is dedicated to a file containing representations.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.dRepresentationLocationRule</code> extension point has been added to customize the resource location of new representations. See
<a href="extensions-provide_representation_location_rule.html">Provide representation location rule (experimental)</a> for more details.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.session.danalysis.DRepresentationLocationRule</code> interface has been added to provide a customized rule to the
<code>org.eclipse.sirius.dRepresentationLocationRule</code> extension point.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.helper.SiriusUtil.REPRESENTATION_FILE_EXTENSION</code> constant has been added to reference the new *.srm extension.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.session.Session.getSrmResources()</code> has been added to provide the list of representation resources (serialized as *.srm files by default).
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.ResourceQuery.isAirdOrSrmResource()</code> has been added to know whether the resource is a srm resource (
<code>org.eclipse.sirius.business.api.query.ResourceQuery.isSrmResource()</code>) or an aird resource.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.ResourceQuery.isSrmResource()</code> has been added to know whether the resource contains a
<code>DRepresentation</code> as root element.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.migration.DiagramCrossReferencer.DiagramCrossReferencer(Collection&lt;Resource&gt;)</code> constructor has been added to compute the cross references on a list of resources.
</li>
<li><span class="label label-success">Added</span> A new
<code>org.eclipse.sirius.modelOperationManager</code> extension point has been addded. It allows the contribution of new types of
<em>Model Operations</em> which are then usable in modeler definitions (
<code>*.odesign</code>).
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor#representation</code> feature is now derived, transient and volatile. The representation is compute by using the
<code>org.eclipse.sirius.viewpoint.DRepresentationDescriptor#repPath</code> attribute.
</li>
<li><span class="label label-info">Modified</span> The
<code>org.eclipse.sirius.business.api.query.DViewQuery.getAllContentInRepresentations(Predicate&lt;? super EObject&gt;)</code> now takes a
<code>java.util.Predicate</code> (from Java 8) as argument instead of a
<code>com.google.common.base.Predicate</code>.
</li>
<li><span class="label label-info">Modified</span> The extension point
<code>org.eclipse.sirius.ui.modelingprojectresourcelistener</code> is no longer expected to be used. It is an internal extension point. Clients using this extension point to ignore some files as potential semantic models must now use the extension point
<code>org.eclipse.sirius.resourceStrategy</code>. This extension point existed before Sirius 5.0.0 but was not API. It becomes API with Sirius 5.0.0, see the
<a href="developer/extensions-provide_resource_strategy.html">developer documentation</a> for more details.
<ul>
<li>If you used to override protected methods
<code>boolean isPotentialSemanticResource(IFile)</code> and
<code>boolean isLoadableModel(IFile, Session)</code> of class
<code>org.eclipse.sirius.ui.tools.api.views.modelexplorerview.resourcelistener.DefaultModelingProjectResourceListener</code>, you can now create a
<code>resourceStrategy</code> of type
<code>org.eclipse.sirius.business.api.resource.strategy.ResourceStrategy.ResourceStrategyType.SEMANTIC_RESOURCE</code> and respectively override
<code>boolean isPotentialSemanticResource(URI)</code> and
<code>boolean isLoadableModel(URI,Session)</code>. As a reminder, to get an URI from an IFile, you can use:
<code>URI.createPlatformResourceURI(iFile.getFullPath().toString(), true)</code>. And to get an IFile from an URI, you can use:
<code>ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri.toPlatformString(true)))</code>.
</li>
<li>If you used to override protected methods
<code>boolean isRepresentationsModel(IFile)</code> and
<code>boolean isVsmModel(IFile)</code> of class
<code>org.eclipse.sirius.ui.tools.api.views.modelexplorerview.resourcelistener.DefaultModelingProjectResourceListener</code>, they no longer exist. They correspond to core API and is not supposed to be overridden. They are accessible through API
<code>org.eclipse.sirius.business.api.query.FileQuery.FileQuery(IFile)</code>.
</li>
<li>All necessary classes for extension point
<code>org.eclipse.sirius.resourceStrategy</code> are now APIs:
<ul>
<li>
<code>org.eclipse.sirius.business.api.resource.strategy.ResourceStrategyRegistry</code>: Registry to have access to all overridable services through a
<code>ResourceStrategy</code>
</li>
<li>
<code>org.eclipse.sirius.business.api.resource.strategy.ResourceStrategy</code>: Interface implemented by all resource strategies
</li>
<li>
<code>org.eclipse.sirius.business.api.resource.strategy.AbstractResourceStrategyImpl</code>: Default implementation of above interface. All resource strategies contributed with the extension need to extend it.
</li>
<li>
<code>org.eclipse.sirius.business.api.resource.strategy.LegacyReleaseResourceStrategyImpl</code> (previously named
<code>DefaultResourceStrategyImpl</code>): A resource strategy with the code used before the optimization concerning the
<code>org.eclipse.sirius.business.api.resource.strategy.ResourceStrategy.ResourceStrategyType.RELEASE_RESOURCE_AT_RESOURCESET_DISPOSE</code>. It is not used but can be quickly contributed by someone that want the previous behavior (before Sirius 4.0.0 M6).
</li>
</ul>
</li>
</ul>
</li>
<li><span class="label label-danger">Removed</span> The already deprecated constructor of
<code>org.eclipse.sirius.business.api.control.SiriusUncontrolCommand</code> with signature
<code>SiriusUncontrolCommand(EObject, boolean, IProgressMonitor)</code> has been removed; instead, use the alternate constructor with an additional explicit
<code>boolean shouldEndBySaving</code> parameter (set it to
<code>true</code> to obtain the same behavior as the removed constructor).
</li>
<li><span class="label label-danger">Removed</span> In
<code>org.eclipse.sirius.business.api.dialect.DialectServices</code>, methods
<code>canCreateIdentifier</code> and
<code>createIdentifier</code> have been removed.
</li>
<li><span class="label label-danger">Removed</span> The
<code>org.eclipse.sirius.business.api.dialect.identifier</code> package and all its content (
<code>AbstractRepresentationElementIdentifier</code> and
<code>RepresentationElementIdentifier</code>) have been removed.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui3">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> Two new methods have been added to the interface
<code>org.eclipse.sirius.ui.business.api.viewpoint.ViewpointSelection.Callback</code>:
<code>selectViewpoint(Viewpoint, Session, boolean, Set&lt;Viewpoint&gt;, IProgressMonitor)</code> and
<code>deselectViewpoint(Viewpoint, Session, Set&lt;Viewpoint&gt;, IProgressMonitor)</code>. These methods add a new parameter that is a set of viewpoints compared to the same methods without these parameters. These set contains all viewpoints that will be deactivated/activated in addition of the one that is asked to be deactivated/activated. It allows the callback implementation to better handle viewpoint dependencies interaction by being able to know if missing dependencies will be activated or deactivated.
</li>
<li><span class="label label-success">Added</span> An interface
<code>org.eclipse.sirius.ui.business.api.editor.ISiriusEditor</code> has been added to gather
<code>org.eclipse.sirius.ui.editor.SessionEditor</code> and
<code>org.eclipse.sirius.ui.business.api.dialect.DialectEditor</code> under the same abstraction. It allows to provide
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code> saving functionalities for session editor or any new editor that is not a dialect editor.
</li>
<li><span class="label label-success">Added</span> A method
<code>getSiriusEditors()</code> has been added to interface
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code>. It allows to retrieve all
<code>org.eclipse.sirius.ui.business.api.editor.ISiriusEditor</code> that are registered in the session.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.refreshEditor(DialectEditor, IProgressMonitor)</code> has been added to allow specifiers to do a full refresh of its dialect editor easily.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getDefaultFontWithRuntimeSizeAndFromLabelFormat(List&lt;FontFormat&gt;)</code> has been added to allow to retrieve a font using the given format and the default Sirius font (arial) and the runtime height.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getFontFromNameAndLabelFormatAndWithDefaultSize(List&lt;FontFormat&gt;, String)</code> has been added to allow to retrieve a font using the given format and the given font name and the runtime height.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.wizards.page.ViewpointsSelectionWizardPage.setBrowserMinWidth(int)</code> has been added to allow modification of the minimum width (with default value &#8220;0&#8221;) of the browser part of the viewpoint selection wizard.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.wizards.page.ViewpointsSelectionWizardPage.setColumnWidthEquality(boolean)</code> has been added to allow modification of column width equality (with default value &#8220;false&#8221;) of the root composite of the viewpoint selection wizard.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getDefaultFontWithRuntimeSizeAndFromLabelFormat(List&lt;FontFormat&gt;)</code> has been added to allow to retrieve a font using the given format and the default Sirius font (arial) and the runtime height.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getFontFromNameAndLabelFormatAndWithDefaultSize(List&lt;FontFormat&gt;, String)</code> has been added to allow to retrieve a font using the given format and the given font name and the runtime height.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.dialogs.AbstractExportRepresentationsAsImagesDialog.isExportDecorations()</code> has been added to know if decorations are displayed in the exported image.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.export(DRepresentation, Session, IPath, ExportFormat, IProgressMonitor, boolean)</code> method has been added. Compared to the previous method signature, the boolean parameter
<code>exportDecorations</code> has been added to allow to choose if the diagram element decorations will be exported or not.
</li>
<li><span class="label label-info">Modified</span> The boolean parameter
<code>exportDecorations</code> has been added to
<code>org.eclipse.sirius.ui.tools.api.actions.export.ExportAction.ExportAction(Session, Collection&lt;DRepresentation&gt;, IPath, ImageFileFormat, boolean, boolean)</code> constructor. It allows to choose if the diagram element decorations will be exported or not.
</li>
<li><span class="label label-info">Modified</span> The method
<code>attachEditor(DialectEditor)</code> from the interface
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code> has its parameter type modified from
<code>DialectEditor</code> to the new abstraction
<code>ISiriusEditor</code> to provide saving capabilities with other editors than the dialect ones.
</li>
<li><span class="label label-info">Modified</span> The method
<code>detachEditor(DialectEditor)</code> from the interface
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code> has its parameter type modified from
<code>DialectEditor</code> to the new abstraction
<code>ISiriusEditor</code> to provide saving capabilities with other editors than the dialect ones.
</li>
<li><span class="label label-info">Modified</span> The method
<code>detachEditor(DialectEditor, boolean)</code> from the interface
<code>org.eclipse.sirius.ui.business.api.session.IEditingSession</code> has its first parameter type modified from
<code>DialectEditor</code> to the new abstraction
<code>ISiriusEditor</code> to provide saving capabilities with other editors than the dialect ones.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.ui.tools.api.assist.TextContentProposalProvider.getContentContext(String, int)</code> has been made protected instead of private to allow to use it for sub types.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.ui.tools.api.assist.TextContentProposalProvider.removeDuplicatedProposals(List&lt;ContentProposal&gt;)</code> has been made protected instead of private to allow to use it in sub types.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.ui.tools.api.project.ModelingProjectManager.createLocalRepresentationsFile(IProject, IProgressMonitor)</code> has its return type changed from
<code>void</code> to
<code>Session</code> to allow callers to have access to the newly created session directly.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.ui.tools.api.views.ViewHelper.getContentProvider()</code> has been renamed into
<code>createContentProvider()</code> and now returns a new instance on each invocation.
</li>
<li><span class="label label-danger">Removed</span> The old
<em>Model Request Interpreter</em> view is not available anymore. It is superseded by the
<em>Interpreter</em> view, which comes from the Acceleo project but does not actually depend on Acceleo or AQL and can be installed separately (using the feature
<code>org.eclipse.acceleo.ui.interpreter</code>, which is available directly from the Sirius update-sites). The corresponding interface
<code>org.eclipse.sirius.ui.tools.api.views.interpreterview.InterpreterView</code> has been removed. Technically, the implementation code for the old
<em>Model Request Interpreter</em> view is still present if needed during the transition, but not exposed or used anywhere. It will be removed in a future version.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram2">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The utility class
<code>org.eclipse.sirius.diagram.business.api.helper.decoration.DecorationHelper</code> has been added. It provides
<code>updateDecorations(List&lt;Layer&gt;)</code> and
<code>updateAllDecorations</code> methods that allow to update only decorations in a diagram.
</li>
<li><span class="label label-info">Moved</span> The method
<code>org.eclipse.sirius.diagram.business.api.refresh.IRefreshOverride.aroundRefresh(DDiagram)</code> has been moved to
<code>org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtension</code> to unify methods handling refresh extension under one interface.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtension.aroundRefresh(DDiagram)</code> has been modified with a default behavior that is the one before introduction of the method to avoid breaking compatibility.
</li>
<li><span class="label label-danger">Removed</span> The interface
<code>org.eclipse.sirius.diagram.business.api.refresh.IRefreshOverride</code> has been removed because its only method has been moved into
<code>org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtension</code> interface
</li>
<li><span class="label label-danger">Removed</span> The
<code>org.eclipse.sirius.diagram.business.internal.dialect.identifier</code> package and all its content (
<code>DiagramIdenttifier</code>,
<code>NodeIdentifier</code>,
<code>EdgeIdentifier</code>,
<code>NodeContainerIdentifier</code>, and
<code>NodeStyleIdentifier</code>) have been removed.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.ui3">Changes in
<code>org.eclipse.sirius.diagram.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> Constants
<code>org.eclipse.sirius.diagram.ui.business.api.query.ViewQuery.SPECIFIC_STYLES</code> &amp;
<code>org.eclipse.sirius.diagram.ui.business.api.query.ViewQuery.VERTICAL_ALIGNMENT</code> have been added to retrieve the initial label alignment of Notes from the Palette (see
<a href="Release_Notes.html#UserVisibleChanges">user-visible changes</a> ). Currently the vertical alignment can not be changed (potential new feature later).
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.diagram.ui.graphical.edit.policies.SiriusDecoratorEditPolicy</code> has been added to improve the behavior of decorator selection.
</li>
<li><span class="label label-success">Added</span> A new decoration mechanism has been implemented. Now, Sirius uses a single
<code>IDecorator</code> to decorate EditPart in diagram. That allows Sirius to manage the relative positioning between decorations.
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.decoration.SiriusDecorationDescriptorProvider</code> represents a provider able to give the decoration descriptors.
<code>org.eclipse.sirius.diagram.ui.tools.api.decoration.AbstractSiriusDecorationDescriptorProvider</code> is an abstract class that can be inherited to implement
<code>SiriusDecorationDescriptorProvider</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.decoration.DecorationDescriptor</code> is a simple POJO that contains information needed to display decoration.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.decoration.SiriusDecorationProviderRegistry</code> allows to register and get
<code>SiriusDecorationDescriptorProvider</code>.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> The preference
<code>SiriusDiagramUiPreferencesKeys.PREF_AUTHORIZE_DECORATION_OVERLAP</code> has been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys</code>. If true, the overlap is authorized between decoration group on diagram element.
<ul>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin.Implementation.DynamicDiagramUIPreferences</code> and the method
<code>org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin.Implementation.getDynamicPreferences()</code> have been added to have good performances in getting the preference value.
</li>
</ul>
</li>
<li><span class="label label-info">Modified</span> The preference
<code>SiriusDiagramUiPreferencesKeys.PREF_PRINT_DECORATION</code> has been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys</code>. If true, the decorations of the diagram elements of a diagram will be printed, when printing a diagram.
</li>
<li><span class="label label-info">Modified</span> The
<code>org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService.DiagramEditPartService</code> class which can be used to export diagrams as images is now automatically adapting the output resolution for raster image based on maximum buffer size specified through the
<code>plugin.propeties</code> file of the
<code>org.eclipse.sirius.diagram.ui</code> plugin. This leads to a noticeable increase of the export image size (you can expect a 10 factor on small diagrams) and the method will no longer fail with OutOfMemory errors as bigger diagrams will lead to a lower output resolution. Implementers using this class can override the
<code>DiagramEditPartService.getMaximumTotalSize()</code> method to return their own limit or
<code>DiagramEditPartService.getExportResolutionFactor(DiagramEditPart, SiriusDiagramImageGenerator)</code> and return
<code>1.0</code> to get back to the previous behavior.
</li>
<li><span class="label label-info">Moved</span> The methods of interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping</code> that are
<code>getFormatData(FormatDataKey, RepresentationElementMapping)</code> and
<code>addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)</code> have been moved into the interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code> to reduce interface numbers for less complexity.
</li>
<li><span class="label label-info">Moved</span> The methods of interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping</code> that are
<code>getFormatData(FormatDataKey, RepresentationElementMapping)</code> and
<code>addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)</code> have been moved into the interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code> to reduce interface numbers for less complexity.
</li>
<li><span class="label label-danger">Removed</span> The methods
<code>getFormatData(FormatDataKey key)</code> and
<code>addFormatData(FormatDataKey key, AbstractFormatData formatData)</code> have been removed from interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code> because they were deprecated.
</li>
<li><span class="label label-danger">Removed</span> The interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping</code> has been removed because all its methods have been moved into interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code>
<ul>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.decoration.AbstractSiriusDecorator</code> is removed because now useless.
</li>
</ul>
</li>
<li><span class="label label-danger">Removed</span> The methods
<code>getFormatData(FormatDataKey key)</code> and
<code>addFormatData(FormatDataKey key, AbstractFormatData formatData)</code> have been removed from interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code> because they were deprecated.
</li>
<li><span class="label label-danger">Removed</span> The interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping</code> has been removed because all its methods have been moved into interface
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code>
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.table">Changes in
<code>org.eclipse.sirius.table</code>
</h4>
<ul>
<li><span class="label label-danger">Removed</span> The
<code>DTableElementSynchronizer</code>
<em>EClass</em> has been removed from the table meta-model. It only defined
<em>EOperations</em> and has been replaced with an equivalent (internal) plain Java class.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tree.ui">Changes in
<code>org.eclipse.sirius.tree.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The enum class for Sirius tree preferences
<code>org.eclipse.sirius.tree.ui.tools.api.preferences.SiriusTreeUiPreferencesKeys</code> has been added with the enum value
<code>SiriusTreeUiPreferencesKeys.PREF_ALWAYS_USE_STANDARD_FONT_SIZE</code>. This enum value is the preference when true allowing to use runtime font height when displaying Sirius tree editor&#8217;s items instead of the one specified in the VSM.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui.editor2">Changes in
<code>org.eclipse.sirius.ui.editor</code>
</h4>
<p>This plugin is new in Sirius 5.0. It provides a session editor showing loaded models, representations and viewpoint activation status of the session. It has functionalities allowing to change the viewpoint activation status, to create/remove representations or to load unload external models. The graphical block showing loaded models is integrated with CNF. You can provide content extension to its viewer by using an id matching the pattern
<code>org.eclipse.sirius.ui.editor.graphicalcomponents.semanticModelsViewer.contentExtension.*</code>. You also can provide action extension by using an id matching the pattern
<code>org.eclipse.sirius.ui.editor.graphicalcomponents.semanticModelsViewer.actionExtension.*</code>. The extension will be selectable/unselectable by using a
<code>Customize View</code> button on the models block header.
</p>
<h4 id="Changesinorg.eclipse.sirius.properties.core">Changes in
<code>org.eclipse.sirius.properties.core</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.properties.core.internal.converter.ViewDescriptionConverter</code> has been moved as an API to
<code>org.eclipse.sirius.properties.core.api.ViewDescriptionConverter</code>.
</li>
<li><span class="label label-success">Added</span> The classes necessary to support the preprocessing of the odesign for the inheritance in its Properties parts are available in the API package
<code>org.eclipse.sirius.properties.core.api</code>.
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.properties.core.internal.SiriusInterpreter</code> has been moved as an API to
<code>org.eclipse.sirius.properties.core.api.SiriusInterpreter</code>. This class could be used by those who want to create custom model operations using the Properties framework.
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.properties.core.api.SiriusDomainClassTester</code> has been added as an API for those who want to create custom model operations using the Properties framework.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ext.emf.edit.EditingDomainServices.createInstance(EClass)</code> has been added to allow the creation of a new instance from an EClass in the interpreters.
</li>
<li><span class="label label-info">Modified</span> The default rules have been transfered to a new dedicated plugin named
<code>org.eclipse.sirius.properties.defaultrules</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui.properties">Changes in
<code>org.eclipse.sirius.ui.properties</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span> All the content related to the IDescriptionConverter and ILinkResolver has been moved from the plugin
<code>org.eclipse.sirius.ui.properties</code> to the newly created plugin
<code>org.eclipse.sirius.properties.core</code>. It includes all the APIs and both extension points.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.editor.properties">Changes in
<code>org.eclipse.sirius.editor.properties</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span> In the package
<code>org.eclipse.sirius.editor.properties.sections.description.representationdescription</code> the class
<code>RepresentationDescriptionMetamodelsUpdater</code> has been replaced by
<code>DescriptionMetamodelsUpdater</code> which can now be used with any EObject with a many-valued EReference to EPackages. The behavior of the class
<code>RepresentationDescriptionMetamodelPropertySectionSpec</code> has been transfered to an abstract class independent of
<code>RepresentationDescription</code> named
<code>AbstractMetamodelPropertySectionSpec</code>. Those classes are now used for the edition of the metamodels of both the Properties view description and the various representations.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.junit.support2">Changes in
<code>org.eclipse.sirius.tests.junit.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The utility method
<code>org.eclipse.sirius.tests.support.api.TestsUtil.setTargetPlatform()</code> has been added to allow to load a PDE target platform according to all known OSGi bundles. It is useful to compile a plug-in in the execution runtime of the tests.
</li>
<li><span class="label label-success">Added</span> The utility class
<code>org.eclipse.sirius.tests.support.api.OpenedSessionsCondition</code> has been extracted from a junit test to be used by multiple junit tests. It allows to wait until a session is in opened state.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.swtbot.support">Changes in
<code>org.eclipse.sirius.tests.swtbot.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>getTreeItem(SWTBotTreeItem[], String, boolean, boolean)</code> has been added in
<code>org.eclipse.sirius.tests.swtbot.support.utils</code> to retrieve recursively a
<code>SWTBotTreeItem</code> in a
<code>SWTBotTreeItem</code> array. Compared to
<code>getTreeItem(SWTBotTreeItem[], String)</code>, it adds the capability to control if the search must be done on enabled items or enabled and disabled items and if the tree must be expanded during the search to check non displayed items.
</li>
<li><span class="label label-success">Added</span> A new utility method
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.dragCentered(String, Class&lt;? extends EditPart&gt;, int, int)</code> improving the dragCentered method by adding the aimed Class in parameter.
</li>
<li><span class="label label-info">Modified</span> A new AtomicBoolean parameter has been added to the utility method
<code>mouseDragWithKey(int, int, int, int, int)</code> in classes
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor</code>,
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusGefViewer</code> and
<code>org.eclipse.sirius.tests.swtbot.support.api.widget.SWTBotSiriusFigureCanvas</code>. This allows to correctly wait the end of the drag&#8217;n&#8217;drop.
<ul>
<li>Sample of code to use:</li>
</ul>
</li>
</ul>
<pre>final AtomicBoolean dragFinished = new AtomicBoolean(false);
editor.dragWithKey(start.x, start.y, endpoint.x, endpoint.y, SWT.F3, dragFinished);
// Wait that the drag is done (the async Runnable simulating the
// drag)
bot.waitUntil(new ICondition() {
@Override
public boolean test() throws Exception {
return dragFinished.get();
}
@Override
public void init(SWTBot bot) {
}
@Override
public String getFailureMessage() {
return "The drag'n'drop operation has not finished.";
}
});
// Wait that the figures are redrawn. In a fast environment, figures
// are not really redrawn and the rest of the test is not reliable.
SWTBotUtils.waitAllUiEvents();
</pre>
<h2 id="sirius4.1.2">Changes in Sirius 4.1.2</h2>
<h3 id="UserVisibleChanges4">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> A new preference named
<em>Maximum size of tabs name</em> is available in the Sirius Properties View preference page. This preference is used to shorten the tabs names when the default rules are used to render the properties view.
</li>
</ul>
<p>
<img border="0" src="./images/PreferencePageMaxTabName.png"/>
</p>
<h3 id="DeveloperVisibleChanges4">Developer-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping</code> class has been added to handle copy/paste format with mapping information when an element target of a format pasting has many source diagram format corresponding to its key. In this case, we use the mapping information to get the more precise data format. And if no result matched, then we return the first found by using the key.
</li>
</ul>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.getFormatData(FormatDataKey, RepresentationElementMapping)</code> method has been added to retrieve during format pasting the data format corresponding to the given key and mapping when more than one result correspond to the key. If no result matches the mapping, then the first result found by using the key is returned.
</li>
</ul>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)</code> method has been added to allow data format manager to register data format with mapping information when copying format.
</li>
</ul>
<ul>
<li><span class="label label-success">Deprecated</span></li>
</ul>
<p>
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.getFormatData(FormatDataKey)</code> It is replaced by
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.getFormatData(FormatDataKey, RepresentationElementMapping)</code> to better handle copy/paste format cases.
</p>
<ul>
<li><span class="label label-success">Deprecated</span></li>
</ul>
<p>
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.addFormatData(FormatDataKey, AbstractFormatData)</code> It is replaced by
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)</code> to better handle copy/paste format cases.
</p>
<h2 id="sirius4.1.1">Changes in Sirius 4.1.1</h2>
<h3 id="UserVisibleChanges5">User-Visible Changes</h3>
<ul>
<li><span class="label label-info">Modified</span>The &#8220;straighten to&#8221; actions were previously disabled when an edge is connected to border nodes that have several edges. It is now allowed.</li>
</ul>
<h3 id="DeveloperVisibleChanges5">Developer-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.table.business.api.helper.TableHelper.getEStructuralFeature(DLine, DColumn)</code> method has been added to retrieve the EStructuralFeature associated to a table column.
</li>
</ul>
<h2 id="sirius4.1.0">Changes in Sirius 4.1.0</h2>
<h3 id="UserVisibleChanges6">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> Copy/Paste Layout has been completed with Copy/Paste Style and Copy/Paste Format.
<em>Paste Format</em> is equivalent to paste
<em>Layout</em> and
<em>Style</em> action. See chapter
<a href="./user/diagrams/Diagrams.html#copy_paste_format">
<em>Copy/paste of format</em>
</a> in
<em>User Manual</em> for more details.
</li>
<li><span class="label label-success">Added</span> The
<a href="./user/diagrams/Diagrams.html#snap_to_shapes">snap to shape</a> feature is now available on border nodes.
</li>
<li><span class="label label-success">Added</span> It is now possible to display an attachment link between an edge and its labels when label or edge is selected. This is not the default behavior but it can be activated by a preference in
<em>Sirius/Sirius Diagram/Connections</em> preference page. See chapter
<a href="./user/diagrams/Diagrams.html#edge_label_attachment">
<em>Display attachment link between edge and its labels</em>
</a> in
<em>User Manual</em> for more details.
</li>
<li><span class="label label-success">Added</span> It is now possible to straighten an edge to top, bottom, left or right. These actions are available on edge contextual menu
<em>Layout/Straighten</em>. See chapter
<a href="./user/diagrams/Diagrams.html#straighten_an_edge">
<em>Straighten an edge</em>
</a> in
<em>User Manual</em> for more details.
</li>
<li><span class="label label-success">Added</span> It is now possible to disable the
<em>Default</em> and
<em>Semantic</em> properties tabs (visible when selecting and element from the
<em>Model Explorer</em> or from a Sirius editor, respectively) when using modelers which provide fully-functional replacements defined directly with Sirius. This is controled in the new
<em>Sirius &gt; Sirius Properties View</em> preference page.
</li>
<li><span class="label label-success">Added</span> Sirius-defined properties view are now enabled for semantic elements selected directly from inside the
<em>Model Explorer</em> (as long as the selected element is from inside an open Sirius session/project). Previously only elements selected from inside a Sirius editor were supported.
</li>
<li><span class="label label-info">Modified</span> In the Sirius-provided
<em>Properties View</em>, the edition of a text field is only taken into account when pressing
<em>Enter</em> or leaving the field. Previously it was triggered asynchronously after a small delay without activity, which could be confusing.
</li>
<li><span class="label label-info">Modified</span> When trying to open a session which holds a representation resource or a VSP which was saved using a more recent version of Sirius than the one you are using, the session will be automatically closed displaying an error message. You can overload this behavior by providing you own implementation of
<code>UICallBack</code> in which you can have an UI feedback letting you choose if you want to open the session anyway. Warning: if you choose to proceed, there is no guarantee that the resulting session will be usable. It may even lead to data loss or corruption; use at your own risk.
</li>
</ul>
<p>If a viewpoint has been defined with a more recent version of Sirius than the one you are using, the
<code>ViewpointRegistry</code> will not register it and a warning is logged in the error log view to inform the user.
</p>
<ul>
<li><span class="label label-info">Modified</span> The
<a href="./user/diagrams/Diagrams.html#move_edge_group">move edge group</a> feature now also work for a selection of edge group.
</li>
<li><span class="label label-info">Modified</span> In a diagram editor, the zoom with mouse wheel is now zooming on mouse location instead of center of the editor. See
<a href="./user/diagrams/Diagrams.html#zooming_diagram_id">user documentation</a> .
</li>
<li><span class="label label-info">Modified</span> The direct edit on a Note or Text is now accessible by a slow double click like any other diagram element.</li>
<li><span class="label label-info">Modified</span> The shortcut
<em>Ctrl+&amp;</em>, for
<a href="./user/diagrams/Diagrams.html#reset_origin">
<em>Reset Origin</em>
</a> action, has been replaced by
<em>Ctrl+HOME</em>.
</li>
</ul>
<h3 id="SpecifierVisibleChanges3">Specifier-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> It is now possible to inline a copy of the default Properties Views model inside the VSM. This is a copy of the model Sirius would use if no
<em>Properties View Description</em> was specified. It can be used as a starting point for manual customization, or as a complement for elements for which you do not provide any custom rules.
</li>
<li><span class="label label-success">Added</span> In the definition of the Properties view, hyperlink and label widgets can now have widget actions.</li>
<li><span class="label label-success">Added</span> Hyperlink and label widgets now have a
<code>displayExpression</code>, if blank the result of the value expression will be used after a call to the method
<code>java.lang.Object#toString()</code>.
</li>
<li><span class="label label-success">Added</span> Hyperlink and label widgets now support optional associated actions (visible as buttons on the right of the widget).</li>
<li><span class="label label-success">Added</span> A new widget named List with the same behavior as the multiple reference widget.</li>
<li><span class="label label-success">Added</span>
<em>Page</em> and
<em>Group</em> descriptions in
<em>Properties View</em> models now support a
<code>preconditionExpression</code>, which behaves in the same way as preconditions for mappings on representation descriptions.
</li>
<li><span class="label label-info">Modified</span> The rules concerning the layout of compartments have been changed/completed. You can have a look at the
<a href="specifier/diagrams/Diagrams.html#compartments_layout">dedicated chapter</a> in the specifier documentation for more details.
</li>
<li><span class="label label-info">Modified</span> In the VSM editor, all dialogs which ask for selecting elements from the VSM will now show the fully qualified path of each element, instead of just their name, to allow distinguishing elements with the same name appearing in different places.</li>
<li><span class="label label-info">Modified</span> The properties
<code>fontSize</code> and
<code>labelFontSize</code> have been renamed into
<code>fontSizeExpression</code> and
<code>labelFontSizeExpression</code> since both of them were already treated as expression.
</li>
<li><span class="label label-info">Modified</span> In the VSM editor, the
<em>Identifier</em> attribute of many
<em>Prroperties View</em> related elements has been moved into the
<em>Advanced</em> tab and renamed
<em>Extension Id</em>, as it is not actually required on common use cases but only for extensibility purposes.
</li>
<li><span class="label label-info">Modified</span> The property
<code>Domain Class Expression</code> in
<code>DynamicMappingFor</code> elements (in properties views definitions) has been renamed into
<code>Iterable Expression</code>.
</li>
<li><span class="label label-info">Modified</span> The
<em>Properties View</em> widget which was named
<em>Reference</em> in Sirius 4.0 has been renamed as
<em>List</em>, as it corresponds to an arbitrary list of elements with customizable buttons for acting on them. A new
<em>Reference</em> widget was added for handling plain
<em>EReference</em> edition with minimal configuration needed.
</li>
<li><span class="label label-info">Modified</span> When opening a VSM, the editor now automatically expands the first few levels to immediatly reveal the interesting elements (representation descriptions).</li>
<li><span class="label label-warning">Deprecated</span> The extension point
<code>org.eclipse.sirius.diagram.ui.layoutDataManager</code> is deprecated. It is replaced by the new extension point
<code>org.eclipse.sirius.diagram.ui.formatDataManager</code>. The deprecated extension point will be removed in the next 5.0 Sirius major release. Several classes associated with this deprecated extension point are also deprecated (see Developer-Visible Changes for details).
</li>
</ul>
<h3 id="DeveloperVisibleChanges6">Developer-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> As the first step to save the DRepresentation in its own resource,
<code>org.eclipse.sirius.viewpoint.DView.getOwnedRepresentationDescriptors()</code> has been added as a wrapper of the
<code>DRepresentation</code>. The
<code>DRepresentationDescriptor</code> is contained by the
<code>DView</code> and the
<code>DRepresentationDescriptor</code> have a reference to the
<code>DRepresentation</code>. In this step, the main impact is that the Sirius common navigator does not display the
<code>DRepresentation</code> anymore but the
<code>DRepresentationDescriptor</code> instead. All the actions and commands are then based on
<code>DRepresentationDescriptor</code>.
</li>
<li><span class="label label-success">Added</span> As the second step to save the DRepresentation in its own resource,
<code>org.eclipse.sirius.viewpoint.DView.getOwnedRepresentations()</code> has been removed. The
<code>DRepresentation</code> is now created as root element of the representations resource. The main impact is on the core of Sirius but also potentially on client Sirius customization. Each peace of code that makes the supposition that the
<code>DView</code> is the container of the
<code>DRepresentation</code> must be reworked. The code using methods in the following list may be concerned by the rework:
<ul>
<li>
<code>EObject.eContainer()</code>. If the object is a
<code>DRepresentation</code>, its container is now null.
</li>
<li>
<code>EcoreUtil.getRootContainer(xxx)</code>. The root container of a DDiagramElement is the
<code>DRepresentation</code> and not the
<code>DAnalysis</code> any more.
</li>
<li>
<code>EcoreUtil.isAncestor(xxx)</code>. the
<code>DView</code> is not an ancestor of a
<code>DRepresentation</code> (or its content) anymore.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> As a developer, the followings utility methods will help you to migrate your code following the second step described above:
<ul>
<li>
<code>org.eclipse.sirius.business.api.query.DViewQuery.getLoadedRepresentations()</code> replaces the removed
<code>DView.getOwnedRepresentations()</code> method. It provides all the loaded representations holds by a
<code>DView</code>. In this step, all that representations are always loaded as they are into the .aird resource.
</li>
<li>
<code>org.eclipse.sirius.business.api.query.DViewQuery.getAllContentInRepresentations(final Predicate&lt;? super EObject&gt;)</code> provides the content of a
<code>DView</code> according to a predicate.
</li>
<li>
<code>org.eclipse.sirius.business.api.query.DRepresentationQuery.getRepresentationDescriptor()</code> provides the
<code>DRepresentationDescriptor</code> which references the
<code>DRepresentation</code>.
</li>
<li>
<code>org.eclipse.sirius.business.api.query.EObjectQuery.getDAnalysis()</code> allows to retrieve a DAnalysis from a
<code>DRepresentationElement</code>
</li>
</ul>
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius4">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A new extension point named
<code>org.eclipse.sirius.interpretedExpressionQueryProvider</code> (with the associated new interface
<code>org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionQueryProvider</code>) allows external contribution of
<code>IInterpretedExpressionQuery</code> specific to some particular expression occurrences in the VSM. This is used in particular for VSM extensions which do not fit well into the hard-coded assumptions about
<code>IInterpretedExpressionQuery</code>. In Sirius 4.1, this is used to add completion and validation support for expressions used in properties views descriptions.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.migration.AirdResourceVersionMismatchException</code> exception has been added to cancel Sirius session opening due to an .aird version mismatch, i.e. when one the of the loaded Representation resources is coming from a newer Sirius release.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.DView.getOwnedRepresentationDescriptors()</code> has been added as the first step to save the DRepresentation in its own resource. In this step, the DRepresentationDescriptor life cycle is the same as the associated DRepresentation.
<ul>
<li>
<code>org.eclipse.sirius.business.api.dialect.command.RenameRepresentationCommand</code>
</li>
<li>
<code>org.eclipse.sirius.business.api.dialect.command.DeleteRepresentationCommand</code>
</li>
<li>
<code>org.eclipse.sirius.business.api.dialect.command.MoveRepresentationCommand</code>
</li>
<li>
<code>org.eclipse.sirius.business.api.dialect.command.CopyRepresentationCommand</code>
</li>
</ul>
</li>
<li><span class="label label-success">Added</span>
<code>getAvailableRepresentationDescriptions(Collection&lt;Viewpoint&gt;, EObject)</code>,
<code>getAllRepresentationDescriptors(Session )</code>,
<code>getRepresentationDescriptors(EObject, Session)</code> and
<code>getRepresentationDescriptors(RepresentationDescription, Session )</code> have been added in
<code>org.eclipse.sirius.business.api.dialect.DialectServices</code> and implemented in
<code>org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices</code>. These methods are used, instead of their equivalent with DRepresentation, for every functionality which relies on
<code>DRepresentationDescriptor</code> instead of
<code>DRepresentation</code> such as actions, wizards or views.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.isSupported(DRepresentationDescriptor)</code> has been added because actions, wizards or views that were related to
<code>DRepresentation</code> are now related to
<code>DRepresentationDescriptor</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.canHandle(DRepresentationDescriptor)</code> has been added because actions, wizards or views that were related to
<code>DRepresentation</code> are now related to
<code>DRepresentationDescriptor</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIManager.canExport(DRepresentationDescriptor, ExportFormat)</code> has been added because actions, wizards or views that were related to
<code>DRepresentation</code> are now related to
<code>DRepresentationDescriptor</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.DRepresentationQuery.getRepresentationDescriptor()</code> has been added to retrieve the
<code>DRepresentationDescriptor</code> that references the
<code>DRepresentation</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.session.CustomDataConstants.DREPRESENTATION_DESCRIPTOR_FROM_DESCRIPTION</code> and
<code>org.eclipse.sirius.business.api.session.CustomDataConstants.DREPRESENTATION_DESCRIPTOR</code> have been added. They are used to get or put
<code>DRepresentationDescriptor</code> in the model managed by the
<code>Session</code> through the
<code>org.eclipse.sirius.business.api.session.SessionService.putCustomData(String, EObject, EObject)</code> and
<code>SessionService.getCustomData(String, EObject)</code> methods.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.query.EObjectQuery.getDAnalysis()</code> has been added to retrieve a DAnalysis from a
<code>DRepresentationElement</code>
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper.findContainerForAddedRepresentation(DAnalysis, DRepresentation)</code> has been changed to
<code>findDViewForRepresentationDescription(DAnalysis , final RepresentationDescription)</code> because that API was previously badly defined.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.deleteRepresentation(DRepresentation, Session)</code> has been changed to
<code>deleteRepresentation(DRepresentationDescriptor, Session)</code> because now the
<code>DRepresentationDescriptor</code> is the entry point to delete the
<code>DRepresentation</code> and itself.
</li>
<li><span class="label label-info">Modified</span>
<code>DRepresentationDescriptor</code> is now the entry point to move, control or uncontrol a
<code>DRepresentation</code> instead of the
<code>DRepresentation</code> itself. Accordingly, the return type or parameter of the followings have changed to switch from
<code>DRepresentation</code> to
<code>DRepresentationDescriptor</code>
<ul>
<li>constructors of
<code>org.eclipse.sirius.business.api.control.SiriusControlCommand</code>
</li>
<li>the constructor
<code>org.eclipse.sirius.business.api.dialect.command.MoveRepresentationCommand.MoveRepresentationCommand(Session, DAnalysis, Collection&lt;DRepresentationDescriptor&gt;)</code>
</li>
<li>the method
<code>org.eclipse.sirius.business.api.session.danalysis.DAnalysisSession.moveRepresentation(DAnalysis, DRepresentationDescriptor)</code>
</li>
</ul>
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper.updateModelsReferences(DView)</code> has replaced
<code>updateModelsReferences(DAnalysis, Iterator&lt;DSemanticDecorator&gt;)</code> because it is more suited to the client needs.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui4">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.ui.business.api.dialect.HierarchyLabelProvider</code> has been added to provide a generic label provider for VSM model element giving hierarchical label. This label provider replaces the one returned by deprecated method
<code>DialectUIServices.getHierarchyLabelProvider()</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>AbstractSWTCallback</code> provides a default implementation of
<code>UICallBack.askSessionReopeningWithResourceVersionMismatch()</code> method to give feedback about version mismatch and give the choice to reopen session despite a potential corruption.
</li>
<li><span class="label label-info">Modified</span> The method
<code>org.eclipse.sirius.ui.tools.api.control.SiriusControlHandler.getRepresentationsToMove(Shell, Session, EObject)</code> and
<code>SiriusControlHandler.collectExistingRepresentations</code> have been renamed to
<code>getRepresentationDescriptorsToMove(Shell, Session, EObject)</code> and
<code>SiriusControlHandler.collectExistingRepresentationDescriptors</code>. The return type of both that methods and
<code>SiriusControlHandler.askUserWhichRepresentationToSplit</code> has been changed to
<code>DRepresentationDescriptor</code> as
<code>DRepresentationDescriptor</code> is the entry point to work with a
<code>DRepresentation</code> instead of DRepresentation itself.
</li>
<li><span class="label label-warning">Deprecated</span> The method
<code>org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.getHierarchyLabelProvider()</code> has been deprecated in favor of generic label provider
<code>HierarchyLabelProvider</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram3">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramDescriptionProvider.allowsCopyPasteFormat(DSemanticDecorator)</code> has been added in replacement of
<code>allowsCopyPasteLayout(DSemanticDecorator)</code> that is now deprecated. This 2 methods must return the same result.
<code>allowsCopyPasteLayout(DSemanticDecorator)</code> will be removed in the new major version.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.ui4">Changes in
<code>org.eclipse.sirius.diagram.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The constant
<code>EDGE_SNAP_BACK</code> has been added in class
<code>org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds</code>. It corresponds to the new snap back label action id that is present on edges.
</li>
<li><span class="label label-success">Added</span> 2 methods are added in
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManager</code> (and also in
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.AbstractSiriusLayoutDataManager</code>):
<ul>
<li>
<code>applyFormat(IGraphicalEditPart)</code>: Apply the current format data (layout data and style data) to the given edit part.
</li>
<li>
<code>applyStyle(IGraphicalEditPart)</code>: Apply the current style data to the give edit part.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> 2 methods are added in
<code>org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.AbstractTabbarContributor</code>:
<ul>
<li>
<code>createCopyFormatContribution(IDiagramWorkbenchPart)</code>: In replacement of
<code>createCopyLayoutContribution(IDiagramWorkbenchPart)</code> that is now deprecated.
</li>
<li>
<code>createPasteFormatContribution(IDiagramWorkbenchPart)</code>: In replacement of
<code>createPasteLayoutContribution(IDiagramWorkbenchPart)</code> that is now deprecated.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> New action ids have been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds</code>:
<ul>
<li>
<code>COPY_FORMAT</code>: Action contribution id for the copy format. It replaces the old
<code>COPY_LAYOUT</code>.
</li>
<li>
<code>PASTE_FORMAT</code>: Action contribution id for the paste format. It does not replace the old
<code>PASTE_LAYOUT</code>. The paste format paste the layout and the style. The paste layout only paste layout.
</li>
<li>
<code>PASTE_STYLE</code>: Action contribution id for the paste style.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.business.api.query.NodeQuery.isDescendantOf(View)</code> has been added to know if a view is a descendant of another view.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.business.api.query.ViewQuery.getAncestor(int...)</code> has been added to retrieve the first ancestor of the view, or itself, that has at least one of the visualID passed as parameter.
</li>
<li><span class="label label-success">Added</span> The new preference key
<code>PREF_SHOW_LINK_EDGE_LABEL_ON_SELECTION</code> has been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys</code>. It corresponds to the preference shown in
<em>Sirius/Sirius Diagram/Connections</em> Eclipse preferences.
</li>
<li><span class="label label-success">Added</span> The new figure
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SiriusWrapLabelWithAttachment</code> is a specific
<code>SiriusWrapLabel</code> that allows to show an attachment between the label and its edge.
</li>
<li><span class="label label-success">Added</span> A new kind of request,
<code>org.eclipse.sirius.diagram.ui.tools.api.requests.StraightenToRequest</code>, has been added to handle the new
<em>Straighten to</em> actions. The corresponding id has also been added:
<code>org.eclipse.sirius.diagram.ui.tools.api.requests.RequestConstants.REQ_STRAIGHTEN</code>.
</li>
<li><span class="label label-success">Added</span> 4 action ids have been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds</code>:
<ul>
<li>
<code>STRAIGHTEN_TO_TOP</code>: For
<em>Straighten to top</em> action,
</li>
<li>
<code>STRAIGHTEN_TO_BOTTOM</code>: For
<em>Straighten to bottom</em> action,
</li>
<li>
<code>STRAIGHTEN_TO_LEFT</code>: For
<em>Straighten to left</em> action,
</li>
<li>
<code>STRAIGHTEN_TO_RIGHT</code>: For
<em>Straighten to right</em> action.
</li>
</ul>
</li>
<li><span class="label label-success">Added</span> Constants have been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath</code> for the icon path of the four new straighten actions.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.AbstractSiriusLayoutDataManager</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.AbstractSiriusFormatDataManager</code> instead.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.ILayoutDataManagerProvider</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.IFormatDataManagerProvider</code> instead.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.LayoutDataHelper</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.FormatDataHelper</code> instead.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.LayoutDataKey</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.FormatDataKey</code> instead.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManager</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager</code> instead.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManagerForSemanticElementsFactory</code> is deprecated, use
<code>org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerForSemanticElementsFactory</code> instead.
</li>
<li><span class="label label-info">Moved</span> The translation key
<code>HierarchyLabelProvider_elementWihtoutNameLabel</code> has been removed from the
<code>org.eclipse.sirius.diagram.ui</code> plug-in&#8217;s
<code>Messages</code> class, and moved into the
<code>org.eclipse.sirius.ui</code>'s
<code>Messages</code> class.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ext.gmf.runtime">Changes in
<code>org.eclipse.sirius.ext.gmf.runtime</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The class
<code>SiriusSnapFeedbackPolicy</code> has been copied from
<code>org.eclipse.sirius.ext.gef.editpolicies</code> to
<code>org.eclipse.sirius.ext.gmf.runtime.editpolicies</code>. The old class in plug-in
<code>org.eclipse.sirius.ext.gef</code> is deprecated and will be removed in the next version.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.junit.support3">Changes in
<code>org.eclipse.sirius.tests.junit.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The utility methods
<code>getRepresentationDescriptors(final String)</code>,
<code>getRepresentationDescriptors(final String , final Session )</code> and
<code>getRepresentationDescriptorFromRepresentation(DRepresentation)</code> have been added in class
<code>org.eclipse.sirius.tests.support.api.SiriusTestCase</code> to adapt tests considering the
<code>DView.ownedRepresentationDescriptors</code> addition.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.swtbot.support2">Changes in
<code>org.eclipse.sirius.tests.swtbot.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The utility method
<code>mouseScrollWithKey(int, int, int, int)</code>, has been added in classes
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor</code>,
<code>org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusGefViewer</code> and
<code>org.eclipse.sirius.tests.swtbot.support.api.widget.SWTBotSiriusFigureCanvas</code> to allow testing events occurring after a mouse scroll combined to a keyboard key pressed at a given absolute position.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.properties">Changes in
<code>org.eclipse.sirius.properties</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span> The property
<code>domainClassExpression</code> has been renamed into
<code>iterableExpression</code>.
</li>
<li><span class="label label-info">Modified</span> The properties
<code>fontSize</code> and
<code>labelFontSize</code> have been renamed into
<code>fontSizeExpression</code> and
<code>labelFontSizeExpression</code> since both of them were already treated as expression.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui.properties2">Changes in
<code>org.eclipse.sirius.ui.properties</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> Four utility classes have been added as API in the package
<code>org.eclipse.sirius.ui.properties.api</code> in order to help with the transformation of the description of custom widgets. The class
<code>AbstractDescriptionConverter</code> can now be used as superclass for all the converters. The classes
<code>DefautDescriptionConverter</code>,
<code>DefautStyleDescriptionConverter</code> and
<code>DefautDescriptionWithInitialOperationConverter</code>, now accessible, should handle most of the use cases.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ecore.extender">Changes in
<code>org.eclipse.sirius.ecore.extender</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span> The message
<code>org.eclipse.sirius.ecore.extender.business.api.permission.exception.LockedInstanceException.PERMISSION_ISSUE_MESSAGE</code> has been modified. You should now use the
<code>MessageFormat</code>. Example:
<code>LockedInstanceException.PERMISSION_ISSUE_MESSAGE + getText(lockedElements)</code> must be replaced by
<code>MessageFormat.format(LockedInstanceException.PERMISSION_ISSUE_MESSAGE, getText(lockedElements))</code>.
</li>
<li><span class="label label-info">Modified</span> The
<code>org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessorsRegistry</code> has been refactored to avoid problem with
<code>ModelAccessor</code> lifecycle. The constructor has no longer a parameter.
</li>
</ul>
<h2 id="sirius4.0.0">Changes in Sirius 4.0.0</h2>
<h3 id="UserVisibleChanges7">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> The user can now filter elements according to a Typed variable (String, Integer, EEnum or any EDataType). If a user applies a filter containing Typed Variables, a dialog is displayed to allow user entering the Typed Variable values. That values can be used as variables in the Condition Expression of the Variable Filter.</li>
<li><span class="label label-success">Added</span> When the diagram is larger than the editor, you can move it in all directions pressing the middle-button and dragging the mouse (keeping the button pressed).</li>
<li><span class="label label-info">Modified</span> Now if an object is locked and cannot be modified according to
<code>IPermissionAuthority</code>, the properties view will not be editable if this locked object is selected from the Model Explorer view.
</li>
<li><span class="label label-info">Modified</span> When trying to reconnect an edge end on another edge, the edge is now highlighted only if a reconnect tool is found (the precondition of the tool is not tested here).</li>
<li><span class="label label-info">Modified</span> List items now have the same margin whichever their parent is a simple list or a compartmentalized list. The margin in compartmentalized list was incorrectly set to 0 pixel.</li>
<li><span class="label label-info">Modified</span> The wizard to ask the new representation name has been changed. These concerns the title of the wizard and the input label. Example with a new Entities diagram for EcoreTools:</li>
</ul>
<p>
<img border="0" src="images/representationNameWizardChange.png"/>
</p>
<ul>
<li><span class="label label-info">Modified</span> The export of diagram as image handles the gradient color for container background for BMP, JPG, PNG and SVG formats. Before, it only works for JPG format.</li>
<li><span class="label label-info">Modified</span> The <img src="images/ApplyAppearanceProperties.png" style="box-shadow:none;display:inline;margin:0px;padding:0px;"/>
<code>Apply Appearance Properties</code> action has been modified to use the last selected element as base style instead of the first one.
</li>
</ul>
<h3 id="SpecifierVisibleChanges4">Specifier-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> Sirius 4.0 introduces
<strong>experimental</strong> support for specifying the properties views of your modelers directly from inside the VSM. This feature uses the same dynamic approach as for specifying diagrams, tables and trees, with a very flexible configuration language and no code generation involved (including live preview of any change). As of Sirius 4.0, this feature should be considered in an experimental state with details subject to changes until Sirius 4.1, and is not installed by default. To install it, make sure either
<a href="http://download.eclipse.org/releases/neon">the Eclipse Neon repositry</a> or the
<a href="http://download.eclipse.org/sirius/updates/releases/4.0.0/neon">Sirius 4.0</a> and
<a href="http://download.eclipse.org/modeling/emft/eef/updates/releases/1.6.0">EEF 1.6</a> repositories are available, and then to install the following features (from in the
<em>Modeling</em> category of Neon, or
<em>Sirius Experimental Features</em> of the Sirius repository ):
<ul>
<li>
<em>Sirius Properties Views &#8211; Runtime Support</em> (
<code>org.eclipse.sirius.properties.feature.feature.group</code>): needed at runtime for deployed modelers which have properties views defined in their specification.
</li>
<li>
<em>Sirius Properties Views &#8211; Specifier Support</em> (
<code>org.eclipse.sirius.specifier.properties.feature.feature.group</code>): provides support for editing the configuration model directly inside the VSM editor and the specifier documentation.
</li>
</ul>
</li>
</ul>
<p>Once this is done, you can find the actual documentation in the
<em>Sirius Specifier Manual</em>, under the
<a href="specifier/properties/Properties_View_Description.html">
<em>Properties View</em>
</a> section.
</p>
<ul>
<li><span class="label label-success">Added</span> All static strings defined in the VSMs which are visible to the end-user of the modeler, like viewpoint and tools names, can now be internationalized. Simply replace the name with a translation key reference of the form
<code>%myUniqueKey</code> in the VSM, and define the value in the
<em>Viewpoint Specification Project</em>'s
<code>plugin.properties</code> (for the default value), or
<code>plugin_XX.properties</code> for locale
<code>XX</code>. The underlying mechanism is the same as for Eclipse/OSGi plug-ins, so translations can even be contributed by physically separate plug-in fragments. See
<a href="specifier/general/Specifying_Viewpoints.html#translatable_messages">the corresponding section</a> in the documentation for more details.
</li>
<li><span class="label label-success">Added</span> It is possible to create
<a href="specifier/diagrams/Diagrams.html#filter_with_typed_variable">Typed Variable</a> under Variable Filter.
</li>
<li><span class="label label-success">Added</span> A new class
<code>org.eclipse.sirius.ext.emf.edit.EditingDomainServices</code> (from plug-in
<code>org.eclipse.sirius.ext.emf.edit</code>) has been added with a complete set of service methods to leverage most of the features of the &#8220;EMF Edit&#8221; framework, for example the various
<em>Item Providers</em> associated to semantic elements. See
<a href="specifier/general/Writing_Queries.html#editing_domain_services">the documentation</a> for details.
</li>
<li><span class="label label-success">Added</span> The specifier can now restrict the border node authorized sides. This new option is available in the advanced tab of the border node style. See the
<a href="specifier/diagrams/Diagrams.html#authorizedsides">specifier documentation</a> for more details.
</li>
<li><span class="label label-info">Modified</span> The use of type literals in operations like
<code>filter()</code> or
<code>oclIsKindOf()</code> requires to explicitly add the domain meta-models plug-ins to the dependencies of the
<em>Viewpoint Specification Project</em>. The documentation has been modified to recommend this.
</li>
<li><span class="label label-info">Modified</span>
<strong>Warning</strong>: Before this version, a style customization of an
<code>EEnum</code> attribute, like
<code>labelFormat</code>, worked with a value expression using a Java service returning a
<code>EEnumLiteral</code>. It is now forbidden. You must return an
<code>Enumerator</code>. The documentation about
<a href="specifier/diagrams/Diagrams.html#enum_customization">Styles Customization</a> now details this case.
</li>
<li><span class="label label-info">Modified</span> The
<code>BorderSizeComputationExpression</code> migration has been corrected to recursively handle the sub container mappings. VSM created or migrated with Sirius 3.1.0, 3.1.1 or 3.1.2 might require a manual modification for the style descriptions of sub container mappings with border size computation equals to 0 as we cannot determine if they were added (or updated) after or before the migration: starting with Sirius 3.1.0, no border will be displayed for a 0 pixel value whereas with older version container always had at least a 1 pixel border.
</li>
<li><span class="label label-info">Modified</span> The variable under VariableFilter, previously named &#8220;Variable&#8221;, is renamed to &#8220;Select Model Element Variable&#8221;. It is functionally equivalent.</li>
</ul>
<h3 id="DeveloperVisibleChanges7">Developer-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> It is now possible to provide a full customized tab-bar by implementing the
<code>ITabbarContributor</code> through the
<code>org.eclipse.sirius.diagram.ui.tabbarContributor</code> extension-point. See the
<a href="developer/extensions-provide_tabbar_extensions.html#contributeFullTabbar">developer documentation</a> for more details.
</li>
<li><span class="label label-success">Added</span> It is now possible to provide new shapes for basic shape styles through the
<code>org.eclipse.sirius.diagram.bundledImageShape</code> extension-point. See the
<a href="developer/extensions-provide_custom_bundled_image_shape.html">developer documentation</a> for more details.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius5">Changes in
<code>org.eclipse.sirius</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.business.api.session.SessionEditorInput.getStatus()</code> has been added to have the status about session opening, i.e. if it has been correctly opened, cancelled or an exception has occurred.
</li>
<li><span class="label label-success">Added</span> A new variant of
<code>org.eclipse.sirius.business.api.helper.task.TaskHelper.buildTaskFromModelOperation(EObject, ModelOperation)</code> has been added, which does not require to specify a
<code>DRepresentation</code> in the context. It allows the creation of a task which executes a behavior specified by
<code>ModelOperations</code> outside of the context of a specific representation, provided the
<code>ModelOperations</code> work in that context.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.description.TypedVariable</code> has been created.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code> has been created as tag interface for variables that require user interaction to be valued.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.tools.api.command.ui.UICallBack.askForTypedVariable(List&lt;TypedVariable&gt;, List&lt;String&gt;)</code> has been created.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.tools.api.command.ui.NoUICallback.askForTypedVariable(List&lt;TypedVariable&gt;, List&lt;String&gt;)</code> has been created.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.DialectServices.getRequiredViewpoints(DRepresentation)</code> has been added to have mean to get required viewpoints to use a representation.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.getRequiredViewpoints(DRepresentation)</code> has been added to have a default implementation of
<code>DialectServices.getRequiredViewpoints(DRepresentation)</code> method.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.isRelatedViewpointSelected(Session, RepresentationDescription)</code> protected method has been added to check if a
<code>RepresentationDescription</code> is usable in the context of the specified session.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.tools.api.command.ui.UICallBack.askForDetailName(String, String, String)</code> method has been added to replace the deprecated
<code>org.eclipse.sirius.tools.api.command.ui.UICallBack.askForDetailName(String, String)</code>. This method now uses the description name as title for the wizard. This new method has been implemented by
<code>org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback</code> and
<code>org.eclipse.sirius.tools.api.command.ui.NoUICallback</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.tools.api.project.ModelingProjectManager.loadAndOpenRepresentationsFile(URI, boolean)</code> has been added to specify if job used to open a session must be considered as launched by the user or not, because by default with
<code>ModelingProjectManager.loadAndOpenRepresentationsFile(URI)</code> the job was not considered as launched by the user.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable</code> now implements
<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.viewpoint.description.tool.AbstractVariable</code> has been moved to
<code>org.eclipse.sirius.viewpoint.description.AbstractVariable</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.viewpoint.description.tool.SubVariable</code> has been moved to
<code>org.eclipse.sirius.viewpoint.description.SubVariable</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI()</code> methods no more update workspace resource about markers, now this must be done in caller on IllegalArgumentException catch in a workspace aware operation.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.canExecute()</code> now returns false if a
<code>DRepresentation</code> cannot be refreshed, by calling
<code>DialectManager.canRefresh(DRepresentation)</code>.
</li>
<li><span class="label label-info">Modified</span> Several methods of
<code>org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper</code> now return a
<code>fr.obeo.dsl.viewpoint.DView</code> instead of a
<code>fr.obeo.dsl.viewpoint.DRepresentationContainer</code>: *
<code>findContainer(EObject, Viewpoint, Collection&lt;DAnalysis&gt;, DAnalysisSelector)</code>,
<ul>
<li>
<code>findContainerForAddedRepresentation(EObject, Viewpoint, Collection&lt;DAnalysis&gt;, DAnalysisSelector, DRepresentation)</code>,
</li>
<li>
<code>findContainerForAddedRepresentation(DAnalysis, DRepresentation)</code>,
<code>findFreeContainer(Viewpoint, Collection&lt;DAnalysis&gt;, DAnalysisSelector)</code>
</li>
<li>
<code>findFreeContainer(Viewpoint, Collection&lt;DAnalysis&gt;, DAnalysisSelector)</code>.
</li>
</ul>
</li>
<li><span class="label label-danger">Removed</span> The
<code>org.eclipse.sirius.viewpoint.DRepresentationContainer</code> EClass have been removed. It used to be the only implementation of
<code>org.eclipse.sirius.viewpoint.DView</code>, the
<code>models</code> derived transient reference has been moved to
<code>DView</code>. An automatic migration has been added during the loading of the representation to handle this change.
</li>
<li><span class="label label-danger">Removed</span> The class
<code>org.eclipse.sirius.business.api.extender.MetamodelDescriptorProvider2</code> has been deleted and is now
<code>MetamodelDescriptorProvider</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.common3">Changes in
<code>org.eclipse.sirius.common</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A method
<code>getInferredVariableTypes(Boolean value)</code> in
<code>org.eclipse.sirius.common.tools.api.interpreter.ValidationResult</code> so that
<code>IInterpreter</code> implementations able to infer more specific types based on predicates result provides this information to Sirius which will then use it for validating other expressions. You might want to look at
<code>org.eclipse.sirius.common.acceleo.aql.business.internal.AQLSiriusInterpreter</code> which is an implementation providing this type inference.
</li>
<li><span class="label label-success">Added</span> A helper
<code>org.eclipse.sirius.common.tools.api.util.MessageTranslator</code> providing
<code>getMessage(EObject, String)</code> and
<code>getMessage(Bundle, String)</code> service dedicated into processing a translatable message to return the translation in the active language when available. This service returns the String without modification if not translatable or no translation is available.
</li>
<li><span class="label label-success">Added</span> The &#8220;INFO&#8221; severity has been added to
<code>org.eclipse.sirius.common.tools.api.interpreter.IInterpreterStatus</code> to reflect all kind of language validation severity (of AQL for example).
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram4">Changes in
<code>org.eclipse.sirius.diagram</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.VariableValue</code>,
<code>org.eclipse.sirius.diagram.TypedVariableValue</code> and
<code>org.eclipse.sirius.diagram.EObjectVariableValue</code> has been created.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()</code> has been created to indicate that variables have to be computed again.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.description.style.Side</code> EEnum has been added to define a border node side on the parent.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.description.style.NodeStyleDescription#forbiddenSides</code> attribute has been added to set the border node forbidden sides on the parent.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.business.api.query.DNodeQuery.getForbiddenSide()</code> has been added to retrieve the forbidden sides of a DNode (make sense only for Border Nodes).
</li>
<li><span class="label label-info">Modified</span> The type of
<code>org.eclipse.sirius.diagram.description.filter.VariableFilter.ownedVariable</code> has been changed to
<code>org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription</code>.
</li>
<li><span class="label label-info">Modified</span> The type of
<code>org.eclipse.sirius.diagram.FilterVariableHistory.ownedValues</code> has been changed to
<code>org.eclipse.sirius.diagram.VariableValue</code>.
</li>
<li><span class="label label-info">Modified</span> The return type of
<code>org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil.findRepresentationContainer(DDiagram)</code> has been changed from
<code>org.eclipse.sirius.viewpoint.DRepresentationContainer</code> to
<code>org.eclipse.sirius.viewpoint.DView</code>.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.diagram.description.filter.FilterVariable</code> has been removed. It is replaced by
<code>org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable</code>.
</li>
<li><span class="label label-danger">Removed</span>
<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.setFilterContext()</code> has been removed. This method was, in part, useless and is replaced by
<code>org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()</code>.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui5">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback.askForTypedVariable(List&lt;TypedVariable&gt;, List&lt;String&gt;)</code> has been created.
</li>
<li><span class="label label-success">Added</span> The new internationalizable label
<code>Messages_createRepresentationInputDialog_DefaultRepresentationDescName</code> has been added (available through
<code>org.eclipse.sirius.ui.tools.api.Messages.createRepresentationInputDialog_DefaultRepresentationDescName</code>. Its value is &#8220;Representation&#8221;.
</li>
<li><span class="label label-info">Modified</span> The internationalizable label
<code>Messages_createRepresentationInputDialog_NewRepresentationNameLabel</code> has been replaced by &#8220;Name:&#8221; (previous value was &#8220;Representation name:&#8221;).
</li>
<li><span class="label label-info">Modified</span> The internationalizable label
<code>Messages_createRepresentationInputDialog_RepresentationDescriptionLabel</code> has been replaced by &#8220;Representation description: {0}&#8221; (previous value was &#8220;Representation description: &#8221;).
</li>
<li><span class="label label-info">Modified</span> The internationalizable label
<code>Messages_createRepresentationInputDialog_Title</code> has been replaced by &#8220;New {0}&#8221; (previous value was &#8220;New Representation&#8221;).
</li>
<li><span class="label label-danger">Removed</span> The internationalizable label
<code>org.eclipse.sirius.viewpoint.provider.Messages.OpenRepresentationsFileJob_initModelingProjectsTask</code> has been removed as this message is no more used.
</li>
<li><span class="label label-danger">Removed</span> The class
<code>org.eclipse.sirius.ui.business.api.editor.SpecificSessionManager</code> has been removed.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.diagram.ui5">Changes in
<code>org.eclipse.sirius.diagram.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> A new system property named
<code>org.eclipse.sirius.diagram.ui.svg.maxCacheSizeMB</code> has been added. It can be used to tweak the maximum size (in megabytes) of pre-rendered SVG images to keep in cache. The default is 50, corresponding to 50MB of bitmaps of 4 8-bit channels. Increasing the limit can improve performance when using diagrams with a lot of SVG images, at the cost of increased memory usage.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.ITabbarContributor</code> interface has been added to provide a customized tab-bar for a specific selection.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.AbstractTabbarContributor</code> is an abstract implementation of
<code>ITabbarContributor</code> that allows reusing one or several of the default Sirius contribution items.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.editor.properties.sections.style.bundledimagedescription.BundledImageDescriptionShapePropertySectionSpec</code> has been added to have a custom display in the VSM for provided basic shape.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramBorderNodeEditPart.createNodeFigure()</code> has been created to factorize the
<code>DNode2EditPart</code> and
<code>DNode4EditPart</code> constructors.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.DBorderedNodeFigure.setForbiddenSides(int...)</code> has been added to set the figure forbidden sides on its parent.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.DBorderedNodeFigure.getAuthorizedSides()</code> has been added to retrieve the figure authorized side (by default all sides).
</li>
<li><span class="label label-success">Added</span> The following protected methods have been added to
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure</code> :
<code>String getKey(Graphics)</code>,
<code>Image getImage(Rectangle, Graphics)</code>,
<code>static boolean doRemoveFromCache(String)</code>.
</li>
<li><span class="label label-success">Added</span> 2 methods are added in
<code>org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService</code> to manage gradient color in export to PNG or SVG formats:
<code>DiagramEditPartService.saveSVGToFile(IPath, SiriusDiagramSVGGenerator, IProgressMonitor)</code> and
<code>org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService.saveToFile(IPath, SiriusDiagramSVGGenerator, ImageFileFormat, IProgressMonitor)</code>. These 2 methods are copy of parent methods with
<code>SiriusDiagramSVGGenerator</code> as parameter instead of a
<code>DiagramSVGGenerator</code>.
</li>
<li><span class="label label-success">Added</span> The method
<code>org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getGradientPaintFromValue(int, int, int, int, Color, Color)</code> has been added to handle a cache for
<code>java.awt.GradientPaint</code> as it is the case for
<code>org.eclipse.swt.graphics.Pattern</code> with
<code>getPatternFromValue()</code>.
</li>
<li><span class="label label-success">Added</span> Methods have been added in
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.GradientHelper</code> to handle
<code>java.awt.GradientPaint</code> as
<code>org.eclipse.swt.graphics.Pattern</code>:
<code>getGradientPaintDiag(Rectangle, Color, Color)</code>,
<code>getGradientPaintLeftToRight(Rectangle, Color, Color)</code>,
<code>getGradientPaintTopToBottom(Rectangle, Color, Color)</code> and
<code>getGradientPaint(int, Rectangle, Color, Color)</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ACTION_SIRIUS_COPY_APPEARANCE_PROPERTIES</code> has been added to identify the new
<em>Sirius Copy Appearence Properties</em> action.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.BundleImageFigure</code> now overrides the method
<code>setBorder(Border border)</code>. It also provides the accessors for the new field
<code>mainBorderSize</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.BundledImageFigure</code> now inherits directly from
<code>SVGFigure</code> instead of
<code>AbstractCachedSVGFigure</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure</code> now inherits directly from
<code>SVGFigure</code> instead of
<code>AbstractCachedSVGFigure</code>.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure</code> now implements interfaces
<code>StyledFigure</code>,
<code>ITransparentFigure</code> and
<code>ImageFigureWithAlpha</code>.
</li>
<li><span class="label label-danger">Removed</span> The following mehtods have been removed from
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure</code>:
<code>NodeList getNodes(String)</code>,
<code>Color getColor(Element, String)</code>,
<code>void updateRenderingHints(Graphics)</code>,
<code>staticImage toSWT(Device, BufferedImage)</code>,
<code>boolean checkContentAvailable()</code>,
<code>Rectangle2D getAreaOfInterest()</code>,
<code>void setAreaOfInterest(Rectangle2D)</code>,
<code>boolean isSpecifyCanvasWidth()</code>,
<code>void setSpecifyCanvasWidth(boolean)</code>,
<code>boolean isSpecifyCanvasHeight()</code>,
<code>void setSpecifyCanvasHeight(boolean)</code>,
<code>boolean getSpecifyCanvasWidth()</code>,
<code>boolean getSpecifyCanvasHeight()</code>.
</li>
<li><span class="label label-danger">Removed</span> The class
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.AbstractCachedSVGFigure</code> has been removed. Its functionality was merged directly into
<code>SVGFigure</code>.
</li>
<li><span class="label label-danger">Removed</span> The static
<code>org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.createImageFigure(ContainerStyle)</code> method has been removed; it was broken and not called anywhere.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ext.emf.ui">Changes in
<code>org.eclipse.sirius.ext.emf.ui</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.ext.emf.ui.properties.ExtensiblePropertySource.collector</code> field is now in protected visibility to be modifiable and accessible by subclass.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ext.gmf.runtime2">Changes in
<code>org.eclipse.sirius.ext.gmf.runtime</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The interface
<code>org.eclipse.sirius.ext.gmf.runtime.diagram.ui.tools.MoveInDiagramDragTracker</code> has been added to declare states used by all DragTrackers which manage move in diagram using mouse middle click.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.ui6">Changes in
<code>org.eclipse.sirius.ui</code>
</h4>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ui.tools.api.properties.SiriusExtensiblePropertyDescriptor</code> has been added to provide a specific
<code>ExtensiblePropertyDescriptor</code> which test
<code>IPermissionAuthority</code> to make properties view editable or not.
</li>
<li><span class="label label-info">Modified</span>
<code>org.eclipse.sirius.ui.tools.api.properties.SiriusExtensiblePropertySource</code> has been modified to use
<code>SiriusExtensiblePropertyDescriptor</code> to provide not editable properties view when the object, selected from the Model Explorer view, cannot be modified.
</li>
<li><span class="label label-danger">Removed</span> The
<code>org.eclipse.sirius.ui</code>, and thus the whole
<code>org.eclipse.sirius.runtime</code> feature no longer depends on the JDT (technically the dependency towards
<code>org.eclipse.jdt.core</code> has been removed). If you need the JDT Core in your environment, you will need to add the dependency explicitly. The Sirius specification environment (
<code>org.eclipse.sirius.editor</code>) still depends on PDE (and thus indirectly the JDT too).
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.junit.support4">Changes in
<code>org.eclipse.sirius.tests.junit.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.tests.support.api.DefaultTestMemento</code> has been created. It help to simulate a real
<code>IMemento</code> for editor restoration.
</li>
<li><span class="label label-success">Added</span> The method
<code>SiriusTestCase.initViewpoint(String, Session, boolean)</code> has been added to allow viewpoint activation without creating representations.
</li>
<li><span class="label label-success">Added</span> The methods
<code>initLoggers()</code> and
<code>disposeLoggers()</code> of class
<code>org.eclipse.sirius.tests.support.api.SiriusTestCase</code> have now a protected visibility (instead of private) to allow subclasses to use this logger without all the
<code>genericSetUp</code> behavior.
</li>
<li><span class="label label-warning">Deprecated</span> The method
<code>SiriusTestCase.initViewpoint(String, Session, EObject)</code> has been deprecated because the last parameter is useless to activate a viewpoint.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.tests.swtbot.support3">Changes in
<code>org.eclipse.sirius.tests.swtbot.support</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>getTreeItem(final SWTBotTreeItem[], final String)</code> has been added in
<code>org.eclipse.sirius.tests.swtbot.support.utils</code> to retrieve recursively a
<code>SWTBotTreeItem</code> in a
<code>SWTBotTreeItem</code> array.
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.tests.swtbot.support.api.condition.ShellChangedCondition</code> has been added to wait until the current active shell has changed.
</li>
<li><span class="label label-success">Added</span> The class
<code>org.eclipse.sirius.tests.swtbot.support.api.condition.TreeItemWithImageCondition</code> has been added to wait until the given treeItem has the expected image.
</li>
<li><span class="label label-info">Modified</span> A second
<code>String</code> parameter has been added to the method
<code>org.eclipse.sirius.tests.swtbot.support.api.business.UILocalSession.newDiagramRepresentation(String, String)</code>. This parameter is the label of the representation description. It is necessary since the change of the wizard to ask the new representation name (see User-Visible Changes for detail).
</li>
<li><span class="label label-info">Modified</span> A third
<code>String</code> parameter has been added to the constructor of
<code>org.eclipse.sirius.tests.swtbot.support.api.business.UINewRepresentationBuilder</code> for the same above reasons.
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.common.xtext">Changes in
<code>org.eclipse.sirius.common.xtext</code>
</h4>
<ul>
<li><span class="label label-info">Modified</span> The dependency from
<code>org.eclipse.sirius.common.xtext</code> to the JDT plug-in
<code>org.eclipse.jdt.core</code> is now optional. If you need the JDT Core in your environment, you will need to add the dependency explicitly. The Sirius specification environment (
<code>org.eclipse.sirius.editor</code>) still depends on PDE (and thus indirectly the JDT too).
</li>
</ul>
<h4 id="Changesinorg.eclipse.sirius.editor">Changes in
<code>org.eclipse.sirius.editor</code>
</h4>
<ul>
<li><span class="label label-success">Added</span> The method
<code>bindCompletionProcessor(AbstractPropertySection, IAssistContentProvider, Text)</code> has been added to the class
<code>org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider</code> to allow to bind a specific IAssistContentProvider to the text.
</li>
</ul>
<h2 id="sirius3.1.0">Changes in Sirius 3.1.0</h2>
<h3 id="UserVisibleChanges8">User-Visible Changes</h3>
<ul>
<li><span class="label label-success">Added</span> A new feature allows to snap to all shapes (instead of just to snap to sibling shapes). The <kdb>F4</kdb> shortcut key activates this mode when you resize a node, move a node or move a bendpoint of an edge, see
<a href="./user/diagrams/Diagrams.html#snap_to_shapes">the documentation</a> for details.
</li>
<li><span class="label label-success">Added</span> A new feature allows to move the edge group (Edge, Label, Border Nodes) if the <kdb>F3</kdb> shortcut is pressed during the edge moving/dragging. This feature is only available for the case of edges with border node as source and target. See
<a href="./user/diagrams/Diagrams.html#move_edge_group">documentation</a> for more details.
</li>
<li><span class="label label-success">Added</span> The label of edges now stays as much as possible near the edge when it is moved.</li>
</ul>
<p>Sample before Sirius 3.1:
<br/>
<img border="0" src="images/edgeLabelMoveBeforeSirius3.1.gif"/>
<br/>Same sample since Sirius 3.1:
<br/>
<img border="0" src="images/edgeLabelMoveAfterSirius3.1.gif"/>
</p>
<ul>
<li><span class="label label-success">Added</span> It is now possible to collapse compartments using the handle visible on the following illustrations. The handle&#8217;s position varies depending on the label alignment to avoid overlapping (depending on the list elements alignment for a list with an hidden label).</li>
</ul>
<p>
<img border="0" src="images/compartments_collapse.png"/>
<br/>
<img border="0" src="images/compartments_collapse2.png"/>
</p>
<ul>
<li><span class="label label-info">Modified</span> The
<em>Snap to Grid</em> and
<em>Snap to Shapes</em> features are now automatically disabled on Sequence diagrams. As indicated
<a href="./user/sequences/Sequence%20Diagrams.html#introduction">in the user documentation</a>, to work correctly, Sirius sequence diagrams must have a tight control on where the graphical elements are placed on the diagram and on their synchronization with the underlying semantic model. Previously, the user had to explicitely disable the snap features.
</li>
<li><span class="label label-info">Modified</span> The
<em>Link with Editor</em> behavior has changed. The link with editor was previously unidirectional from the Common Navigator (Model Explorer view or Project view) toward the active representation. Now, when selecting one or several elements in the representation, the corresponding semantic elements are selected in the Common Navigator.
</li>
<li><span class="label label-info">Modified</span> The
<em>Arrange Linked Bordered Nodes</em> tabbar action has been renamed to
<em>Arrange Linked Border Nodes</em> as it is border nodes which are layouted and not bordered nodes.
</li>
</ul>
<h3 id="SpecifierVisibleChanges5">Specifier-Visible Changes</h3>
<ul>
<li><span class="label label-info">Modified</span> The
<em>Acceleo Query Language</em> (AQL) interpreter has been improved. AQL, and its support in Sirius, is no longer considered experimental, and instead is now the recommended query language to use for new VSMs. Improvements mostly concern better completion and validation, and more precise error reporting. In particular AQL expressions will now be able to display warnings and errors in the Interpreter view. The message displayed in the Interpreter view after an evaluation has also been improved to display the qualified name of the type of the value computed (
<code>ePackageName::eClassName</code>). The improvements realized can be viewed by clicking on the image below (click to zoom).
</li>
</ul>
<p>
<a href="images/improvedsiriusinterpreter.png">
<img border="0" src="images/improvedsiriusinterpreter_thumbnail.png"/>
</a>
</p>
<ul>
<li><span class="label label-info">Modified</span> Related to the previous point, the projects created by the
<em>Viewpoint Specification Project</em> wizard are now configured to use AQL by default (instead of Acceleo 3/MTL before). They depend on
<code>org.eclipse.sirius.common.acceleo.aql</code> instead of
<code>org.eclipse.sirius.common.acceleo.mtl</code>, and do not have the Acceleo nature anymore (it is not needed by AQL). If you want to use another language in your queries, make sure you set the appropriate dependencies so that the Sirius support for that language will be present at runtime to interpret the queries.
</li>
<li><span class="label label-info">Modified</span> The support for containers with vertical or horizontal
<em>compartments</em> on diagrams was introduced in Sirius 3.0.0 as an experimental feature. Several improvements and corrections have been done around the behaviors of this feature which is no longer considered experimental. Validation rules and tooltips in the VSM editor are here to help the specifier create a consistent mapping structure.
</li>
<li><span class="label label-info">Modified</span> <span class="label label-info">Experimental</span> New, experimental support for recursive
<em>compartments</em> on diagrams: the
<em>children presentation</em> property of a
<em>Container Mapping</em>, which is defined as a
<em>compartment</em> (its parent
<em>ContainerMapping</em> has a
<em>VerticalStack</em> or
<em>HorizontalStack</em>
<em>children presentation</em>), can now also be set to
<em>Vertical Stack</em> and
<em>Horizontal Stack</em>. It allows to define complex stacks of
<em>compartments</em> mixing both stack directions. While working reliably, this support is marked experimental in Sirius 3.1.0 as there are still some behaviors which do not behave as expected. If you make use of this feature, be aware that some details may still change in future releases, including 3.1.x maintenance releases.
</li>
<li><span class="label label-info">Modified</span> You now really have the capability to set the
<code>BorderSizeComputationExpression</code> as 0 for style of
<code>ContainerMapping</code>. Before Sirius 3.1.0, a size of 0 was interpreted as 1 at runtime. For compatibility reason, all existing
<code>BorderSizeComputationExpression</code> equals to 0 for style of
<code>ContainerMapping</code> are automatically set to 1 (ditto for results of this expression in representations file for container elements). For
<code>ContainerMapping</code>, the default value of
<code>BorderSizeComputationExpression</code> for new style is now 1, except for
<em>Worskpace Image</em> where the value is 0.
</li>
<li><span class="label label-info">Modified</span> The delete command availability computation has been changed. In case of a delete tool, the availability is now computed considering first the precondition of the tool and then the delete authorisation (using
<code>IPermissionAuthority</code>) of the potential to delete objects. This is the reverse order of what was done before, and can have performance impacts if the precondition is slow. The specifier will to take care to ensure a good performance for the precondition expression of the delete tool.
</li>
</ul>
<h3 id="DeveloperVisibleChanges8">Developer-Visible Changes</h3>
<h4 id="Partialsupportforinternationalization">Partial support for internationalization</h4>
<p>Sirius 3.1 introduces partial support for internationalization: all literal strings from the runtime part of Sirius are now externalized and can be localized by third parties by providing the appropriate &#8220;language packs&#8221; as OSGi fragments. Note that this does not concern the VSM editor&#8217;s UI, the VSMs themselves, or the parts of the UI inherited from Eclipse/EMF/GEF/GMF and other libraries and frameworks used by Sirius.</p>
<p>Some API changes were required to enable this. While technically breaking changes if interpreting strictly the OSGi versioning rules, the major version number of the impacted bundles was not incremented as the changes only concern classes that should not impact the vast majority of users. Most breaking changes concern the plug-in/activator classes from each bundle. They are:</p>
<ul>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.layoutdata.LayoutDataPlugin</code>, a subclass of
<code>org.eclipse.emf.common.EMFPlugin</code> has been added. The corresponding OSGi bundle activator is the internal class
<code>LayoutDataPlugin.Implementation</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.diagram.sequence.SequenceDiagramPlugin</code>, a subclass of
<code>org.eclipse.emf.common.EMFPlugin</code> has been added. The corresponding OSGi bundle activator is the internal class
<code>SequenceDiagramPlugin.Implementation</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.common.xtext.internal.XtextIntegrationPlugin</code>, a subclass of
<code>org.eclipse.emf.common.EMFPlugin</code> has been added. The corresponding OSGi bundle activator is the internal class
<code>XtextIntegrationPlugin.Implementation</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ext.base.BasePlugin</code>, a subclass of
<code>org.eclipse.emf.common.EMFPlugin</code> has been added. The corresponding OSGi bundle activator is the internal class
<code>BasePlugin.Implementation</code>.
</li>
<li><span class="label label-success">Added</span>
<code>org.eclipse.sirius.ext.draw2d.Draw2DExtPlugin</code>, a subclass of
<code>org.eclipse.emf.common.EMFPlugin</code> has been added. The corresponding OSGi bundle activator is the internal class