h1. Release Notes for Sirius {toc:style=disc|minLevel=2|maxLevel=3} This document contains the release notes for recent major releases of Sirius. See also "the release notes from previous versions":Release_Notes_Previous.html for details about older releases. h2(#sirius5.0.0). Changes in Sirius 5.0.0 h3. Specifier-Visible Changes * Modified 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. h3. Developer-Visible Changes h4. Changes in @org.eclipse.sirius.tests.junit.support@ * Added The utility method @org.eclipse.sirius.tests.support.api.TestsUtil.setTargetPlatform()@ has been added to allow to load a PDE target platform according to all known OSGi bundles. It is usefull to compile a plug-in in the execution runtime of the tests. h4. Changes in @org.eclipse.sirius.tests.swtbot.support@ * Modified A new AtomicBoolean parameter has been added to the utility method @mouseDragWithKey(int, int, int, int, int)@ in classes @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor@, @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusGefViewer@ and @org.eclipse.sirius.tests.swtbot.support.api.widget.SWTBotSiriusFigureCanvas@. This allows to correctly wait the end of the drag'n'drop. ** Sample of code to use: 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(); h4. Changes in @org.eclipse.sirius.editor.properties@ * Modified In the package @org.eclipse.sirius.editor.properties.sections.description.representationdescription@ the class @RepresentationDescriptionMetamodelsUpdater@ has been replaced by @DescriptionMetamodelsUpdater@ which can now be used with any EObject with a many-valued EReference to EPackages. The behavior of the class @RepresentationDescriptionMetamodelPropertySectionSpec@ has been transfered to an abstract class independent of @RepresentationDescription@ named @AbstractMetamodelPropertySectionSpec@. Those classes are now used for the edition of the metamodels of both the Properties view description and the various representations. h2(#sirius4.1.2). Changes in Sirius 4.1.2 h3. User-Visible Changes * Added A new preference named _Maximum size of tabs name_ 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. !./images/PreferencePageMaxTabName.png! h3. Developer-Visible Changes * Added @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping@ 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. * Added @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.getFormatData(FormatDataKey, RepresentationElementMapping)@ 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. * Added @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)@ method has been added to allow data format manager to register data format with mapping information when copying format. * Deprecated @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.getFormatData(FormatDataKey)@ It is replaced by @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.getFormatData(FormatDataKey, RepresentationElementMapping)@ to better handle copy/paste format cases. * Deprecated @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager.addFormatData(FormatDataKey, AbstractFormatData)@ It is replaced by @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerWithMapping.addFormatData(FormatDataKey, RepresentationElementMapping, AbstractFormatData)@ to better handle copy/paste format cases. h2(#sirius4.1.1). Changes in Sirius 4.1.1 h3. User-Visible Changes * ModifiedThe "straighten to" actions were previously disabled when an edge is connected to border nodes that have several edges. It is now allowed. h3. Developer-Visible Changes * Added @org.eclipse.sirius.table.business.api.helper.TableHelper.getEStructuralFeature(DLine, DColumn)@ method has been added to retrieve the EStructuralFeature associated to a table column. h2(#sirius4.1.0). Changes in Sirius 4.1.0 h3. User-Visible Changes * Added Copy/Paste Layout has been completed with Copy/Paste Style and Copy/Paste Format. _Paste Format_ is equivalent to paste _Layout_ and _Style_ action. See chapter "_Copy/paste of format_":./user/diagrams/Diagrams.html#copy_paste_format in _User Manual_ for more details. * Added The "snap to shape":./user/diagrams/Diagrams.html#snap_to_shapes feature is now available on border nodes. * Added 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 _Sirius/Sirius Diagram/Connections_ preference page. See chapter "_Display attachment link between edge and its labels_":./user/diagrams/Diagrams.html#edge_label_attachment in _User Manual_ for more details. * Added It is now possible to straighten an edge to top, bottom, left or right. These actions are available on edge contextual menu _Layout/Straighten_. See chapter "_Straighten an edge_":./user/diagrams/Diagrams.html#straighten_an_edge in _User Manual_ for more details. * Added It is now possible to disable the _Default_ and _Semantic_ properties tabs (visible when selecting and element from the _Model Explorer_ or from a Sirius editor, respectively) when using modelers which provide fully-functional replacements defined directly with Sirius. This is controled in the new _Sirius > Sirius Properties View_ preference page. * Added Sirius-defined properties view are now enabled for semantic elements selected directly from inside the _Model Explorer_ (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. * Modified In the Sirius-provided _Properties View_, the edition of a text field is only taken into account when pressing _Enter_ or leaving the field. Previously it was triggered asynchronously after a small delay without activity, which could be confusing. * Modified 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 @UICallBack@ 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. If a viewpoint has been defined with a more recent version of Sirius than the one you are using, the @ViewpointRegistry@ will not register it and a warning is logged in the error log view to inform the user. * Modified The "move edge group":./user/diagrams/Diagrams.html#move_edge_group feature now also work for a selection of edge group. * Modified In a diagram editor, the zoom with mouse wheel is now zooming on mouse location instead of center of the editor. See "user documentation":./user/diagrams/Diagrams.html#zooming_diagram_id . * Modified The direct edit on a Note or Text is now accessible by a slow double click like any other diagram element. * Modified The shortcut _Ctrl+&_, for "_Reset Origin_":./user/diagrams/Diagrams.html#reset_origin action, has been replaced by _Ctrl+HOME_. h3. Specifier-Visible Changes * Added 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 _Properties View Description_ 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. * Added In the definition of the Properties view, hyperlink and label widgets can now have widget actions. * Added Hyperlink and label widgets now have a @displayExpression@, if blank the result of the value expression will be used after a call to the method @java.lang.Object#toString()@. * Added Hyperlink and label widgets now support optional associated actions (visible as buttons on the right of the widget). * Added A new widget named List with the same behavior as the multiple reference widget. * Added _Page_ and _Group_ descriptions in _Properties View_ models now support a @preconditionExpression@, which behaves in the same way as preconditions for mappings on representation descriptions. * Modified The rules concerning the layout of compartments have been changed/completed. You can have a look at the "dedicated chapter":specifier/diagrams/Diagrams.html#compartments_layout in the specifier documentation for more details. * Modified 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. * Modified The properties @fontSize@ and @labelFontSize@ have been renamed into @fontSizeExpression@ and @labelFontSizeExpression@ since both of them were already treated as expression. * Modified In the VSM editor, the _Identifier_ attribute of many _Prroperties View_ related elements has been moved into the _Advanced_ tab and renamed _Extension Id_, as it is not actually required on common use cases but only for extensibility purposes. * Modified The property @Domain Class Expression@ in @DynamicMappingFor@ elements (in properties views definitions) has been renamed into @Iterable Expression@. * Modified The _Properties View_ widget which was named _Reference_ in Sirius 4.0 has been renamed as _List_, as it corresponds to an arbitrary list of elements with customizable buttons for acting on them. A new _Reference_ widget was added for handling plain _EReference_ edition with minimal configuration needed. * Modified When opening a VSM, the editor now automatically expands the first few levels to immediatly reveal the interesting elements (representation descriptions). * Deprecated The extension point @org.eclipse.sirius.diagram.ui.layoutDataManager@ is deprecated. It is replaced by the new extension point @org.eclipse.sirius.diagram.ui.formatDataManager@. 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). h3. Developer-Visible Changes * Added As the first step to save the DRepresentation in its own resource, @org.eclipse.sirius.viewpoint.DView.getOwnedRepresentationDescriptors()@ has been added as a wrapper of the @DRepresentation@. The @DRepresentationDescriptor@ is contained by the @DView@ and the @DRepresentationDescriptor@ have a reference to the @DRepresentation@. In this step, the main impact is that the Sirius common navigator does not display the @DRepresentation@ anymore but the @DRepresentationDescriptor@ instead. All the actions and commands are then based on @DRepresentationDescriptor@. * Added As the second step to save the DRepresentation in its own resource, @org.eclipse.sirius.viewpoint.DView.getOwnedRepresentations()@ has been removed. The @DRepresentation@ 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 @DView@ is the container of the @DRepresentation@ must be reworked. The code using methods in the following list may be concerned by the rework: ** @EObject.eContainer()@. If the object is a @DRepresentation@, its container is now null. ** @EcoreUtil.getRootContainer(xxx)@. The root container of a DDiagramElement is the @DRepresentation@ and not the @DAnalysis@ any more. ** @EcoreUtil.isAncestor(xxx)@. the @DView@ is not an ancestor of a @DRepresentation@ (or its content) anymore. * Added As a developer, the followings utility methods will help you to migrate your code following the second step described above: ** @org.eclipse.sirius.business.api.query.DViewQuery.getLoadedRepresentations()@ replaces the removed @DView.getOwnedRepresentations()@ method. It provides all the loaded representations holds by a @DView@. In this step, all that representations are always loaded as they are into the .aird resource. ** @org.eclipse.sirius.business.api.query.DViewQuery.getAllContentInRepresentations(final Predicate)@ provides the content of a @DView@ according to a predicate. ** @org.eclipse.sirius.business.api.query.DRepresentationQuery.getRepresentationDescriptor()@ provides the @DRepresentationDescriptor@ which references the @DRepresentation@. ** @org.eclipse.sirius.business.api.query.EObjectQuery.getDAnalysis()@ allows to retrieve a DAnalysis from a @DRepresentationElement@ h4. Changes in @org.eclipse.sirius@ * Added A new extension point named @org.eclipse.sirius.interpretedExpressionQueryProvider@ (with the associated new interface @org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionQueryProvider@) allows external contribution of @IInterpretedExpressionQuery@ 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 @IInterpretedExpressionQuery@. In Sirius 4.1, this is used to add completion and validation support for expressions used in properties views descriptions. * Added @org.eclipse.sirius.business.api.migration.AirdResourceVersionMismatchException@ 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. * Added @org.eclipse.sirius.viewpoint.DView.getOwnedRepresentationDescriptors()@ 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. ** @org.eclipse.sirius.business.api.dialect.command.RenameRepresentationCommand@ ** @org.eclipse.sirius.business.api.dialect.command.DeleteRepresentationCommand@ ** @org.eclipse.sirius.business.api.dialect.command.MoveRepresentationCommand@ ** @org.eclipse.sirius.business.api.dialect.command.CopyRepresentationCommand@ * Added @getAvailableRepresentationDescriptions(Collection, EObject)@, @getAllRepresentationDescriptors(Session )@, @getRepresentationDescriptors(EObject, Session)@ and @getRepresentationDescriptors(RepresentationDescription, Session )@ have been added in @org.eclipse.sirius.business.api.dialect.DialectServices@ and implemented in @org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices@. These methods are used, instead of their equivalent with DRepresentation, for every functionality which relies on @DRepresentationDescriptor@ instead of @DRepresentation@ such as actions, wizards or views. * Added @org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.isSupported(DRepresentationDescriptor)@ has been added because actions, wizards or views that were related to @DRepresentation@ are now related to @DRepresentationDescriptor@. * Added @org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.canHandle(DRepresentationDescriptor)@ has been added because actions, wizards or views that were related to @DRepresentation@ are now related to @DRepresentationDescriptor@. * Added @org.eclipse.sirius.ui.business.api.dialect.DialectUIManager.canExport(DRepresentationDescriptor, ExportFormat)@ has been added because actions, wizards or views that were related to @DRepresentation@ are now related to @DRepresentationDescriptor@. * Added @org.eclipse.sirius.business.api.query.DRepresentationQuery.getRepresentationDescriptor()@ has been added to retrieve the @DRepresentationDescriptor@ that references the @DRepresentation@. * Added @org.eclipse.sirius.business.api.session.CustomDataConstants.DREPRESENTATION_DESCRIPTOR_FROM_DESCRIPTION@ and @org.eclipse.sirius.business.api.session.CustomDataConstants.DREPRESENTATION_DESCRIPTOR@ have been added. They are used to get or put @DRepresentationDescriptor@ in the model managed by the @Session@ through the @org.eclipse.sirius.business.api.session.SessionService.putCustomData(String, EObject, EObject)@ and @SessionService.getCustomData(String, EObject)@ methods. * Added @org.eclipse.sirius.business.api.query.EObjectQuery.getDAnalysis()@ has been added to retrieve a DAnalysis from a @DRepresentationElement@ * Modified @org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper.findContainerForAddedRepresentation(DAnalysis, DRepresentation)@ has been changed to @findDViewForRepresentationDescription(DAnalysis , final RepresentationDescription)@ because that API was previously badly defined. * Modified @org.eclipse.sirius.business.api.dialect.DialectServices.deleteRepresentation(DRepresentation, Session)@ has been changed to @deleteRepresentation(DRepresentationDescriptor, Session)@ because now the @DRepresentationDescriptor@ is the entry point to delete the @DRepresentation@ and itself. * Modified @DRepresentationDescriptor@ is now the entry point to move, control or uncontrol a @DRepresentation@ instead of the @DRepresentation@ itself. Accordingly, the return type or parameter of the followings have changed to switch from @DRepresentation@ to @DRepresentationDescriptor@ ** constructors of @org.eclipse.sirius.business.api.control.SiriusControlCommand@ ** the constructor @org.eclipse.sirius.business.api.dialect.command.MoveRepresentationCommand.MoveRepresentationCommand(Session, DAnalysis, Collection)@ ** the method @org.eclipse.sirius.business.api.session.danalysis.DAnalysisSession.moveRepresentation(DAnalysis, DRepresentationDescriptor)@ * Modified @org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper.updateModelsReferences(DView)@ has replaced @updateModelsReferences(DAnalysis, Iterator)@ because it is more suited to the client needs. h4. Changes in @org.eclipse.sirius.ui@ * Added The class @org.eclipse.sirius.ui.business.api.dialect.HierarchyLabelProvider@ 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 @DialectUIServices.getHierarchyLabelProvider()@. * Modified @AbstractSWTCallback@ provides a default implementation of @UICallBack.askSessionReopeningWithResourceVersionMismatch()@ method to give feedback about version mismatch and give the choice to reopen session despite a potential corruption. * Modified The method @org.eclipse.sirius.ui.tools.api.control.SiriusControlHandler.getRepresentationsToMove(Shell, Session, EObject)@ and @SiriusControlHandler.collectExistingRepresentations@ have been renamed to @getRepresentationDescriptorsToMove(Shell, Session, EObject)@ and @SiriusControlHandler.collectExistingRepresentationDescriptors@. The return type of both that methods and @SiriusControlHandler.askUserWhichRepresentationToSplit@ has been changed to @DRepresentationDescriptor@ as @DRepresentationDescriptor@ is the entry point to work with a @DRepresentation@ instead of DRepresentation itself. * Deprecated The method @org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.getHierarchyLabelProvider()@ has been deprecated in favor of generic label provider @HierarchyLabelProvider@. h4. Changes in @org.eclipse.sirius.diagram@ * Added @org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramDescriptionProvider.allowsCopyPasteFormat(DSemanticDecorator)@ has been added in replacement of @allowsCopyPasteLayout(DSemanticDecorator)@ that is now deprecated. This 2 methods must return the same result. @allowsCopyPasteLayout(DSemanticDecorator)@ will be removed in the new major version. h4. Changes in @org.eclipse.sirius.diagram.ui@ * Added The constant @EDGE_SNAP_BACK@ has been added in class @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds@. It corresponds to the new snap back label action id that is present on edges. * Added 2 methods are added in @org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManager@ (and also in @org.eclipse.sirius.diagram.ui.tools.api.layout.AbstractSiriusLayoutDataManager@): ** @applyFormat(IGraphicalEditPart)@: Apply the current format data (layout data and style data) to the given edit part. ** @applyStyle(IGraphicalEditPart)@: Apply the current style data to the give edit part. * Added 2 methods are added in @org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.AbstractTabbarContributor@: ** @createCopyFormatContribution(IDiagramWorkbenchPart)@: In replacement of @createCopyLayoutContribution(IDiagramWorkbenchPart)@ that is now deprecated. ** @createPasteFormatContribution(IDiagramWorkbenchPart)@: In replacement of @createPasteLayoutContribution(IDiagramWorkbenchPart)@ that is now deprecated. * Added New action ids have been added in @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds@: ** @COPY_FORMAT@: Action contribution id for the copy format. It replaces the old @COPY_LAYOUT@. ** @PASTE_FORMAT@: Action contribution id for the paste format. It does not replace the old @PASTE_LAYOUT@. The paste format paste the layout and the style. The paste layout only paste layout. ** @PASTE_STYLE@: Action contribution id for the paste style. * Added @org.eclipse.sirius.diagram.ui.business.api.query.NodeQuery.isDescendantOf(View)@ has been added to know if a view is a descendant of another view. * Added @org.eclipse.sirius.diagram.ui.business.api.query.ViewQuery.getAncestor(int...)@ has been added to retrieve the first ancestor of the view, or itself, that has at least one of the visualID passed as parameter. * Added The new preference key @PREF_SHOW_LINK_EDGE_LABEL_ON_SELECTION@ has been added in @org.eclipse.sirius.diagram.ui.tools.api.preferences.SiriusDiagramUiPreferencesKeys@. It corresponds to the preference shown in _Sirius/Sirius Diagram/Connections_ Eclipse preferences. * Added The new figure @org.eclipse.sirius.diagram.ui.tools.api.figure.SiriusWrapLabelWithAttachment@ is a specific @SiriusWrapLabel@ that allows to show an attachment between the label and its edge. * Added A new kind of request, @org.eclipse.sirius.diagram.ui.tools.api.requests.StraightenToRequest@, has been added to handle the new _Straighten to_ actions. The corresponding id has also been added: @org.eclipse.sirius.diagram.ui.tools.api.requests.RequestConstants.REQ_STRAIGHTEN@. * Added 4 action ids have been added in @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds@: ** @STRAIGHTEN_TO_TOP@: For _Straighten to top_ action, ** @STRAIGHTEN_TO_BOTTOM@: For _Straighten to bottom_ action, ** @STRAIGHTEN_TO_LEFT@: For _Straighten to left_ action, ** @STRAIGHTEN_TO_RIGHT@: For _Straighten to right_ action. * Added Constants have been added in @org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath@ for the icon path of the four new straighten actions. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.AbstractSiriusLayoutDataManager@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.AbstractSiriusFormatDataManager@ instead. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.ILayoutDataManagerProvider@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.IFormatDataManagerProvider@ instead. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.LayoutDataHelper@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.FormatDataHelper@ instead. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.LayoutDataKey@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.FormatDataKey@ instead. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManager@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManager@ instead. * Modified @org.eclipse.sirius.diagram.ui.tools.api.layout.SiriusLayoutDataManagerForSemanticElementsFactory@ is deprecated, use @org.eclipse.sirius.diagram.ui.tools.api.format.SiriusFormatDataManagerForSemanticElementsFactory@ instead. * Moved The translation key @HierarchyLabelProvider_elementWihtoutNameLabel@ has been removed from the @org.eclipse.sirius.diagram.ui@ plug-in's @Messages@ class, and moved into the @org.eclipse.sirius.ui@'s @Messages@ class. h4. Changes in @org.eclipse.sirius.ext.gmf.runtime@ * Added The class @SiriusSnapFeedbackPolicy@ has been copied from @org.eclipse.sirius.ext.gef.editpolicies@ to @org.eclipse.sirius.ext.gmf.runtime.editpolicies@. The old class in plug-in @org.eclipse.sirius.ext.gef@ is deprecated and will be removed in the next version. h4. Changes in @org.eclipse.sirius.tests.junit.support@ * Added The utility methods @getRepresentationDescriptors(final String)@, @getRepresentationDescriptors(final String , final Session )@ and @getRepresentationDescriptorFromRepresentation(DRepresentation)@ have been added in class @org.eclipse.sirius.tests.support.api.SiriusTestCase@ to adapt tests considering the @DView.ownedRepresentationDescriptors@ addition. h4. Changes in @org.eclipse.sirius.tests.swtbot.support@ * Added The utility method @mouseScrollWithKey(int, int, int, int)@, has been added in classes @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor@, @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusGefViewer@ and @org.eclipse.sirius.tests.swtbot.support.api.widget.SWTBotSiriusFigureCanvas@ to allow testing events occurring after a mouse scroll combined to a keyboard key pressed at a given absolute position. h4. Changes in @org.eclipse.sirius.properties@ * Modified The property @domainClassExpression@ has been renamed into @iterableExpression@. * Modified The properties @fontSize@ and @labelFontSize@ have been renamed into @fontSizeExpression@ and @labelFontSizeExpression@ since both of them were already treated as expression. h4. Changes in @org.eclipse.sirius.ui.properties@ * Added Four utility classes have been added as API in the package @org.eclipse.sirius.ui.properties.api@ in order to help with the transformation of the description of custom widgets. The class @AbstractDescriptionConverter@ can now be used as superclass for all the converters. The classes @DefautDescriptionConverter@, @DefautStyleDescriptionConverter@ and @DefautDescriptionWithInitialOperationConverter@, now accessible, should handle most of the use cases. h4. Changes in @org.eclipse.sirius.ecore.extender@ * Modified The message @org.eclipse.sirius.ecore.extender.business.api.permission.exception.LockedInstanceException.PERMISSION_ISSUE_MESSAGE@ has been modified. You should now use the @MessageFormat@. Example: @LockedInstanceException.PERMISSION_ISSUE_MESSAGE + getText(lockedElements)@ must be replaced by @MessageFormat.format(LockedInstanceException.PERMISSION_ISSUE_MESSAGE, getText(lockedElements))@. * Modified The @org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessorsRegistry@ has been refactored to avoid problem with @ModelAccessor@ lifecycle. The constructor has no longer a parameter. h2(#sirius4.0.0). Changes in Sirius 4.0.0 h3. User-Visible Changes * Added 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. * Added 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). * Modified Now if an object is locked and cannot be modified according to @IPermissionAuthority@, the properties view will not be editable if this locked object is selected from the Model Explorer view. * Modified 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). * Modified 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. * Modified 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: !images/representationNameWizardChange.png! * Modified 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. * Modified The @Apply Appearance Properties@ action has been modified to use the last selected element as base style instead of the first one. h3. Specifier-Visible Changes * Added Sirius 4.0 introduces *experimental* 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 "the Eclipse Neon repositry":http://download.eclipse.org/releases/neon or the "Sirius 4.0":http://download.eclipse.org/sirius/updates/releases/4.0.0/neon and "EEF 1.6":http://download.eclipse.org/modeling/emft/eef/updates/releases/1.6.0 repositories are available, and then to install the following features (from in the _Modeling_ category of Neon, or _Sirius Experimental Features_ of the Sirius repository ): ** _Sirius Properties Views - Runtime Support_ (@org.eclipse.sirius.properties.feature.feature.group@): needed at runtime for deployed modelers which have properties views defined in their specification. ** _Sirius Properties Views - Specifier Support_ (@org.eclipse.sirius.specifier.properties.feature.feature.group@): provides support for editing the configuration model directly inside the VSM editor and the specifier documentation. Once this is done, you can find the actual documentation in the _Sirius Specifier Manual_, under the "_Properties View_":/help/topic/org.eclipse.sirius.editor.properties/doc/specifier/Properties_View_Description.html section. * Added 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 @%myUniqueKey@ in the VSM, and define the value in the _Viewpoint Specification Project_'s @plugin.properties@ (for the default value), or @plugin_XX.properties@ for locale @XX@. 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 "the corresponding section":specifier/general/Specifying_Viewpoints.html#translatable_messages in the documentation for more details. * Added It is possible to create "Typed Variable":specifier/diagrams/Diagrams.html#filter_with_typed_variable under Variable Filter. * Added A new class @org.eclipse.sirius.ext.emf.edit.EditingDomainServices@ (from plug-in @org.eclipse.sirius.ext.emf.edit@) has been added with a complete set of service methods to leverage most of the features of the "EMF Edit" framework, for example the various _Item Providers_ associated to semantic elements. See "the documentation":specifier/general/Writing_Queries.html#editing_domain_services for details. * Added 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 "specifier documentation":specifier/diagrams/Diagrams.html#authorizedsides for more details. * Modified The use of type literals in operations like @filter()@ or @oclIsKindOf()@ requires to explicitly add the domain meta-models plug-ins to the dependencies of the _Viewpoint Specification Project_. The documentation has been modified to recommend this. * Modified *Warning*: Before this version, a style customization of an @EEnum@ attribute, like @labelFormat@, worked with a value expression using a Java service returning a @EEnumLiteral@. It is now forbidden. You must return an @Enumerator@. The documentation about "Styles Customization":specifier/diagrams/Diagrams.html#enum_customization now details this case. * Modified The @BorderSizeComputationExpression@ 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. * Modified The variable under VariableFilter, previously named "Variable", is renamed to "Select Model Element Variable". It is functionally equivalent. h3. Developer-Visible Changes * Added It is now possible to provide a full customized tab-bar by implementing the @ITabbarContributor@ through the @org.eclipse.sirius.diagram.ui.tabbarContributor@ extension-point. See the "developer documentation":developer/extensions-provide_tabbar_extensions.html#contributeFullTabbar for more details. * Added It is now possible to provide new shapes for basic shape styles through the @org.eclipse.sirius.diagram.bundledImageShape@ extension-point. See the "developer documentation":developer/extensions-provide_custom_bundled_image_shape.html for more details. h4. Changes in @org.eclipse.sirius@ * Added The method @org.eclipse.sirius.ui.business.api.session.SessionEditorInput.getStatus()@ has been added to have the status about session opening, i.e. if it has been correctly opened, cancelled or an exception has occurred. * Added A new variant of @org.eclipse.sirius.business.api.helper.task.TaskHelper.buildTaskFromModelOperation(EObject, ModelOperation)@ has been added, which does not require to specify a @DRepresentation@ in the context. It allows the creation of a task which executes a behavior specified by @ModelOperations@ outside of the context of a specific representation, provided the @ModelOperations@ work in that context. * Added @org.eclipse.sirius.viewpoint.description.TypedVariable@ has been created. * Added @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@ has been created as tag interface for variables that require user interaction to be valued. * Added @org.eclipse.sirius.tools.api.command.ui.UICallBack.askForTypedVariable(List, List)@ has been created. * Added @org.eclipse.sirius.tools.api.command.ui.NoUICallback.askForTypedVariable(List, List)@ has been created. * Added @org.eclipse.sirius.business.api.dialect.DialectServices.getRequiredViewpoints(DRepresentation)@ has been added to have mean to get required viewpoints to use a representation. * Added @org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.getRequiredViewpoints(DRepresentation)@ has been added to have a default implementation of @DialectServices.getRequiredViewpoints(DRepresentation)@ method. * Added @org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices.isRelatedViewpointSelected(Session, RepresentationDescription)@ protected method has been added to check if a @RepresentationDescription@ is usable in the context of the specified session. * Added @org.eclipse.sirius.tools.api.command.ui.UICallBack.askForDetailName(String, String, String)@ method has been added to replace the deprecated @org.eclipse.sirius.tools.api.command.ui.UICallBack.askForDetailName(String, String)@. This method now uses the description name as title for the wizard. This new method has been implemented by @org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback@ and @org.eclipse.sirius.tools.api.command.ui.NoUICallback@. * Added @org.eclipse.sirius.ui.tools.api.project.ModelingProjectManager.loadAndOpenRepresentationsFile(URI, boolean)@ 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 @ModelingProjectManager.loadAndOpenRepresentationsFile(URI)@ the job was not considered as launched by the user. * Modified @org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable@ now implements @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@. * Modified @org.eclipse.sirius.viewpoint.description.tool.AbstractVariable@ has been moved to @org.eclipse.sirius.viewpoint.description.AbstractVariable@. * Modified @org.eclipse.sirius.viewpoint.description.tool.SubVariable@ has been moved to @org.eclipse.sirius.viewpoint.description.SubVariable@. * Modified @org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI()@ methods no more update workspace resource about markers, now this must be done in caller on IllegalArgumentException catch in a workspace aware operation. * Modified @org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.canExecute()@ now returns false if a @DRepresentation@ cannot be refreshed, by calling @DialectManager.canRefresh(DRepresentation)@. * Modified Several methods of @org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper@ now return a @fr.obeo.dsl.viewpoint.DView@ instead of a @fr.obeo.dsl.viewpoint.DRepresentationContainer@: ** @findContainer(EObject, Viewpoint, Collection, DAnalysisSelector)@, ** @findContainerForAddedRepresentation(EObject, Viewpoint, Collection, DAnalysisSelector, DRepresentation)@, ** @findContainerForAddedRepresentation(DAnalysis, DRepresentation)@, @findFreeContainer(Viewpoint, Collection, DAnalysisSelector)@ ** @findFreeContainer(Viewpoint, Collection, DAnalysisSelector)@. * Removed The @org.eclipse.sirius.viewpoint.DRepresentationContainer@ EClass have been removed. It used to be the only implementation of @org.eclipse.sirius.viewpoint.DView@, the @models@ derived transient reference has been moved to @DView@. An automatic migration has been added during the loading of the representation to handle this change. * Removed The class @org.eclipse.sirius.business.api.extender.MetamodelDescriptorProvider2@ has been deleted and is now @MetamodelDescriptorProvider@. h4. Changes in @org.eclipse.sirius.common@ * Added A method @getInferredVariableTypes(Boolean value)@ in @org.eclipse.sirius.common.tools.api.interpreter.ValidationResult@ so that @IInterpreter@ 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 @org.eclipse.sirius.common.acceleo.aql.business.internal.AQLSiriusInterpreter@ which is an implementation providing this type inference. * Added A helper @org.eclipse.sirius.common.tools.api.util.MessageTranslator@ providing @getMessage(EObject, String)@ and @getMessage(Bundle, String)@ 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. * Added The "INFO" severity has been added to @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterStatus@ to reflect all kind of language validation severity (of AQL for example). h4. Changes in @org.eclipse.sirius.diagram@ * Added @org.eclipse.sirius.diagram.VariableValue@, @org.eclipse.sirius.diagram.TypedVariableValue@ and @org.eclipse.sirius.diagram.EObjectVariableValue@ has been created. * Added @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()@ has been created to indicate that variables have to be computed again. * Added @org.eclipse.sirius.diagram.description.style.Side@ EEnum has been added to define a border node side on the parent. * Added @org.eclipse.sirius.diagram.description.style.NodeStyleDescription#forbiddenSides@ attribute has been added to set the border node forbidden sides on the parent. * Added @org.eclipse.sirius.diagram.business.api.query.DNodeQuery.getForbiddenSide()@ has been added to retrieve the forbidden sides of a DNode (make sense only for Border Nodes). * Modified The type of @org.eclipse.sirius.diagram.description.filter.VariableFilter.ownedVariable@ has been changed to @org.eclipse.sirius.viewpoint.description.InteractiveVariableDescription@. * Modified The type of @org.eclipse.sirius.diagram.FilterVariableHistory.ownedValues@ has been changed to @org.eclipse.sirius.diagram.VariableValue@. * Modified The return type of @org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil.findRepresentationContainer(DDiagram)@ has been changed from @org.eclipse.sirius.viewpoint.DRepresentationContainer@ to @org.eclipse.sirius.viewpoint.DView@. * Removed @org.eclipse.sirius.diagram.description.filter.FilterVariable@ has been removed. It is replaced by @org.eclipse.sirius.viewpoint.description.tool.SelectModelElementVariable@. * Removed @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.setFilterContext()@ has been removed. This method was, in part, useless and is replaced by @org.eclipse.sirius.diagram.description.filter.impl.VariableFilterImpl.resetVariables()@. h4. Changes in @org.eclipse.sirius.ui@ * Added @org.eclipse.sirius.ui.tools.api.command.AbstractSWTCallback.askForTypedVariable(List, List)@ has been created. * Added The new internationalizable label @Messages_createRepresentationInputDialog_DefaultRepresentationDescName@ has been added (available through @org.eclipse.sirius.ui.tools.api.Messages.createRepresentationInputDialog_DefaultRepresentationDescName@. Its value is "Representation". * Modified The internationalizable label @Messages_createRepresentationInputDialog_NewRepresentationNameLabel@ has been replaced by "Name:" (previous value was "Representation name:"). * Modified The internationalizable label @Messages_createRepresentationInputDialog_RepresentationDescriptionLabel@ has been replaced by "Representation description: {0}" (previous value was "Representation description: "). * Modified The internationalizable label @Messages_createRepresentationInputDialog_Title@ has been replaced by "New {0}" (previous value was "New Representation"). * Removed The internationalizable label @org.eclipse.sirius.viewpoint.provider.Messages.OpenRepresentationsFileJob_initModelingProjectsTask@ has been removed as this message is no more used. * Removed The class @org.eclipse.sirius.ui.business.api.editor.SpecificSessionManager@ has been removed. h4. Changes in @org.eclipse.sirius.diagram.ui@ * Added A new system property named @org.eclipse.sirius.diagram.ui.svg.maxCacheSizeMB@ 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. * Added @org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.ITabbarContributor@ interface has been added to provide a customized tab-bar for a specific selection. * Added @org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.AbstractTabbarContributor@ is an abstract implementation of @ITabbarContributor@ that allows reusing one or several of the default Sirius contribution items. * Added @org.eclipse.sirius.diagram.editor.properties.sections.style.bundledimagedescription.BundledImageDescriptionShapePropertySectionSpec@ has been added to have a custom display in the VSM for provided basic shape. * Added @org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramBorderNodeEditPart.createNodeFigure()@ has been created to factorize the @DNode2EditPart@ and @DNode4EditPart@ constructors. * Added @org.eclipse.sirius.diagram.ui.tools.api.figure.DBorderedNodeFigure.setForbiddenSides(int...)@ has been added to set the figure forbidden sides on its parent. * Added @org.eclipse.sirius.diagram.ui.tools.api.figure.DBorderedNodeFigure.getAuthorizedSides()@ has been added to retrieve the figure authorized side (by default all sides). * Added The following protected methods have been added to @org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure@ : @String getKey(Graphics)@, @Image getImage(Rectangle, Graphics)@, @static boolean doRemoveFromCache(String)@. * Added 2 methods are added in @org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService@ to manage gradient color in export to PNG or SVG formats: @DiagramEditPartService.saveSVGToFile(IPath, SiriusDiagramSVGGenerator, IProgressMonitor)@ and @org.eclipse.sirius.diagram.ui.tools.api.part.DiagramEditPartService.saveToFile(IPath, SiriusDiagramSVGGenerator, ImageFileFormat, IProgressMonitor)@. These 2 methods are copy of parent methods with @SiriusDiagramSVGGenerator@ as parameter instead of a @DiagramSVGGenerator@. * Added The method @org.eclipse.sirius.ui.tools.api.color.VisualBindingManager.getGradientPaintFromValue(int, int, int, int, Color, Color)@ has been added to handle a cache for @java.awt.GradientPaint@ as it is the case for @org.eclipse.swt.graphics.Pattern@ with @getPatternFromValue()@. * Added Methods have been added in @org.eclipse.sirius.diagram.ui.tools.api.figure.GradientHelper@ to handle @java.awt.GradientPaint@ as @org.eclipse.swt.graphics.Pattern@: @getGradientPaintDiag(Rectangle, Color, Color)@, @getGradientPaintLeftToRight(Rectangle, Color, Color)@, @getGradientPaintTopToBottom(Rectangle, Color, Color)@ and @getGradientPaint(int, Rectangle, Color, Color)@. * Added @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ACTION_SIRIUS_COPY_APPEARANCE_PROPERTIES@ has been added to identify the new _Sirius Copy Appearence Properties_ action. * Modified @org.eclipse.sirius.diagram.ui.tools.api.figure.BundleImageFigure@ now overrides the method @setBorder(Border border)@. It also provides the accessors for the new field @mainBorderSize@. * Modified @org.eclipse.sirius.diagram.ui.tools.api.figure.BundledImageFigure@ now inherits directly from @SVGFigure@ instead of @AbstractCachedSVGFigure@. * Modified @org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure@ now inherits directly from @SVGFigure@ instead of @AbstractCachedSVGFigure@. * Modified @org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure@ now implements interfaces @StyledFigure@, @ITransparentFigure@ and @ImageFigureWithAlpha@. * Removed The following mehtods have been removed from @org.eclipse.sirius.diagram.ui.tools.api.figure.SVGFigure@: @NodeList getNodes(String)@, @Color getColor(Element, String)@, @void updateRenderingHints(Graphics)@, @staticImage toSWT(Device, BufferedImage)@, @boolean checkContentAvailable()@, @Rectangle2D getAreaOfInterest()@, @void setAreaOfInterest(Rectangle2D)@, @boolean isSpecifyCanvasWidth()@, @void setSpecifyCanvasWidth(boolean)@, @boolean isSpecifyCanvasHeight()@, @void setSpecifyCanvasHeight(boolean)@, @boolean getSpecifyCanvasWidth()@, @boolean getSpecifyCanvasHeight()@. * Removed The class @org.eclipse.sirius.diagram.ui.tools.api.figure.AbstractCachedSVGFigure@ has been removed. Its functionality was merged directly into @SVGFigure@. * Removed The static @org.eclipse.sirius.diagram.ui.tools.api.figure.SVGWorkspaceImageFigure.createImageFigure(ContainerStyle)@ method has been removed; it was broken and not called anywhere. h4. Changes in @org.eclipse.sirius.ext.emf.ui@ * Modified @org.eclipse.sirius.ext.emf.ui.properties.ExtensiblePropertySource.collector@ field is now in protected visibility to be modifiable and accessible by subclass. h4. Changes in @org.eclipse.sirius.ext.gmf.runtime@ * Added The interface @org.eclipse.sirius.ext.gmf.runtime.diagram.ui.tools.MoveInDiagramDragTracker@ has been added to declare states used by all DragTrackers which manage move in diagram using mouse middle click. h4. Changes in @org.eclipse.sirius.ui@ * Added @org.eclipse.sirius.ui.tools.api.properties.SiriusExtensiblePropertyDescriptor@ has been added to provide a specific @ExtensiblePropertyDescriptor@ which test @IPermissionAuthority@ to make properties view editable or not. * Modified @org.eclipse.sirius.ui.tools.api.properties.SiriusExtensiblePropertySource@ has been modified to use @SiriusExtensiblePropertyDescriptor@ to provide not editable properties view when the object, selected from the Model Explorer view, cannot be modified. * Removed The @org.eclipse.sirius.ui@, and thus the whole @org.eclipse.sirius.runtime@ feature no longer depends on the JDT (technically the dependency towards @org.eclipse.jdt.core@ has been removed). If you need the JDT Core in your environment, you will need to add the dependency explicitly. The Sirius specification environment (@org.eclipse.sirius.editor@) still depends on PDE (and thus indirectly the JDT too). h4. Changes in @org.eclipse.sirius.tests.junit.support@ * Added The class @org.eclipse.sirius.tests.support.api.DefaultTestMemento@ has been created. It help to simulate a real @IMemento@ for editor restoration. * Added The method @SiriusTestCase.initViewpoint(String, Session, boolean)@ has been added to allow viewpoint activation without creating representations. * Added The methods @initLoggers()@ and @disposeLoggers()@ of class @org.eclipse.sirius.tests.support.api.SiriusTestCase@ have now a protected visibility (instead of private) to allow subclasses to use this logger without all the @genericSetUp@ behavior. * Deprecated The method @SiriusTestCase.initViewpoint(String, Session, EObject)@ has been deprecated because the last parameter is useless to activate a viewpoint. h4. Changes in @org.eclipse.sirius.tests.swtbot.support@ * Added The method @getTreeItem(final SWTBotTreeItem[], final String)@ has been added in @org.eclipse.sirius.tests.swtbot.support.utils@ to retrieve recursively a @SWTBotTreeItem@ in a @SWTBotTreeItem@ array. * Added The class @org.eclipse.sirius.tests.swtbot.support.api.condition.ShellChangedCondition@ has been added to wait until the current active shell has changed. * Added The class @org.eclipse.sirius.tests.swtbot.support.api.condition.TreeItemWithImageCondition@ has been added to wait until the given treeItem has the expected image. * Modified A second @String@ parameter has been added to the method @org.eclipse.sirius.tests.swtbot.support.api.business.UILocalSession.newDiagramRepresentation(String, String)@. 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). * Modified A third @String@ parameter has been added to the constructor of @org.eclipse.sirius.tests.swtbot.support.api.business.UINewRepresentationBuilder@ for the same above reasons. h4. Changes in @org.eclipse.sirius.common.xtext@ * Modified The dependency from @org.eclipse.sirius.common.xtext@ to the JDT plug-in @org.eclipse.jdt.core@ is now optional. If you need the JDT Core in your environment, you will need to add the dependency explicitly. The Sirius specification environment (@org.eclipse.sirius.editor@) still depends on PDE (and thus indirectly the JDT too). h2(#sirius3.1.0). Changes in Sirius 3.1.0 h3. User-Visible Changes * Added A new feature allows to snap to all shapes (instead of just to snap to sibling shapes). The F4 shortcut key activates this mode when you resize a node, move a node or move a bendpoint of an edge, see "the documentation":./user/diagrams/Diagrams.html#snap_to_shapes for details. * Added A new feature allows to move the edge group (Edge, Label, Border Nodes) if the F3 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 "documentation":./user/diagrams/Diagrams.html#move_edge_group for more details. * Added The label of edges now stays as much as possible near the edge when it is moved. Sample before Sirius 3.1: !images/edgeLabelMoveBeforeSirius3.1.gif! Same sample since Sirius 3.1: !images/edgeLabelMoveAfterSirius3.1.gif! * Added It is now possible to collapse compartments using the handle visible on the following illustrations. The handle's position varies depending on the label alignment to avoid overlapping (depending on the list elements alignment for a list with an hidden label). !images/compartments_collapse.png! !images/compartments_collapse2.png! * Modified The _Snap to Grid_ and _Snap to Shapes_ features are now automatically disabled on Sequence diagrams. As indicated "in the user documentation":./user/sequences/Sequence%20Diagrams.html#introduction, 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. * Modified The _Link with Editor_ 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. * Modified The _Arrange Linked Bordered Nodes_ tabbar action has been renamed to _Arrange Linked Border Nodes_ as it is border nodes which are layouted and not bordered nodes. h3. Specifier-Visible Changes * Modified The _Acceleo Query Language_ (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 (@ePackageName::eClassName@). The improvements realized can be viewed by clicking on the image below (click to zoom). !images/improvedsiriusinterpreter_thumbnail.png!:images/improvedsiriusinterpreter.png * Modified Related to the previous point, the projects created by the _Viewpoint Specification Project_ wizard are now configured to use AQL by default (instead of Acceleo 3/MTL before). They depend on @org.eclipse.sirius.common.acceleo.aql@ instead of @org.eclipse.sirius.common.acceleo.mtl@, 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. * Modified The support for containers with vertical or horizontal _compartments_ 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. * Modified Experimental New, experimental support for recursive _compartments_ on diagrams: the _children presentation_ property of a _Container Mapping_, which is defined as a _compartment_ (its parent _ContainerMapping_ has a _VerticalStack_ or _HorizontalStack_ _children presentation_), can now also be set to _Vertical Stack_ and _Horizontal Stack_. It allows to define complex stacks of _compartments_ 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. * Modified You now really have the capability to set the @BorderSizeComputationExpression@ as 0 for style of @ContainerMapping@. Before Sirius 3.1.0, a size of 0 was interpreted as 1 at runtime. For compatibility reason, all existing @BorderSizeComputationExpression@ equals to 0 for style of @ContainerMapping@ are automatically set to 1 (ditto for results of this expression in representations file for container elements). For @ContainerMapping@, the default value of @BorderSizeComputationExpression@ for new style is now 1, except for _Worskpace Image_ where the value is 0. * Modified 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 @IPermissionAuthority@) 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. h3. Developer-Visible Changes h4. Partial support for internationalization 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 "language packs" as OSGi fragments. Note that this does not concern the VSM editor'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. 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: * Added@org.eclipse.sirius.diagram.layoutdata.LayoutDataPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @LayoutDataPlugin.Implementation@. * Added@org.eclipse.sirius.diagram.sequence.SequenceDiagramPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @SequenceDiagramPlugin.Implementation@. * Added@org.eclipse.sirius.common.xtext.internal.XtextIntegrationPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @XtextIntegrationPlugin.Implementation@. * Added @org.eclipse.sirius.ext.base.BasePlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @BasePlugin.Implementation@. * Added @org.eclipse.sirius.ext.draw2d.Draw2DExtPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @Draw2DExtPlugin.Implementation@. * Added @org.eclipse.sirius.ext.e3.ui.Eclipse3UIExtPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @Eclipse3UIExtPlugin.Implementation@. * Added @org.eclipse.sirius.ext.emf.EMFExtPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @EMFExtPlugin.Implementation@. * Added @org.eclipse.sirius.synchronizer.internal.SynchronizerPlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @SynchronizerPlugin.Implementation@. * Added @org.eclipse.sirius.tree.tools.internal.TreePlugin@, a subclass of @org.eclipse.emf.common.EMFPlugin@ has been added. The corresponding OSGi bundle activator is the internal class @TreePlugin.Implementation@. * Modified @org.eclipse.sirius.common.acceleo.mtl.ide.AcceleoMTLInterpreterIDEPlugin@ is no longer an OSGi @BundleActivator@, and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @AcceleoMTLInterpreterIDEPlugin.Implementation@. * Modified @org.eclipse.sirius.common.acceleo.mtl.ide.AcceleoMTLInterpreterPlugin@ is no longer an OSGi @BundleActivator@, and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @AcceleoMTLInterpreterPlugin.Implementation@. * Modified @org.eclipse.sirius.common.ocl.DslOclPlugin@ is no longer a @org.eclipse.core.runtime.Plugin@ (nor an OSGi @BundleActivator@), and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @DslOclPlugin.Implementation@. * Modified @org.eclipse.sirius.common.tools.DslCommonPlugin@ is no longer a @org.eclipse.core.runtime.Plugin@ (nor an OSGi @BundleActivator@), and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @DslCommonPlugin.Implementation@. * Modified @org.eclipse.sirius.diagram.DiagramPlugin@ is no longer a @org.eclipse.core.runtime.Plugin@ (nor an OSGi @BundleActivator@), and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @DiagramPlugin.Implementation@. * Modified @org.eclipse.sirius.ecore.extender.business.internal.ExtenderPlugin@ is no longer a @org.eclipse.core.runtime.Plugin@ (nor an OSGi @BundleActivator@), and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @ExtenderPlugin.Implementation@. * Modified @org.eclipse.sirius.table.tools.internal.TablePlugin@ is no longer a @org.eclipse.core.runtime.Plugin@ (nor an OSGi @BundleActivator@), and instead extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @TablePlugin.Implementation@. * Renamed, Modified @org.eclipse.sirius.eef.adapters.Activator@ has been renamed into @org.eclipse.sirius.eef.adapters.EEFAdapterPlugin@ and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @EEFAdapterPlugin.Implementation@. * Renamed, Modified @org.eclipse.sirius.common.acceleo.interpreter.Activator@ has been renamed into @org.eclipse.sirius.common.acceleo.interpreter.InterpreterViewPlugin@ and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @InterpreterViewPlugin.Implementation@. * Renamed, Modified @org.eclipse.sirius.table.ui.ext.Activator@ has been renamed into @org.eclipse.sirius.table.ui.ext.TableUIExtPlugin@ and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @TableUIExtPlugin.Implementation@. * Renamed, Modified @org.eclipse.sirius.ui.ext.Activator@ has been renamed into @org.eclipse.sirius.ui.ext.SiriusUIExtPlugin@ and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @SiriusUIExtPlugin.Implementation@. * Renamed, Modified @org.eclipse.sirius.tree.ui.ext.Activator@ has been renamed into @org.eclipse.sirius.tree.ui.ext.TreeUIExtPlugin@ and is no longer an OSGi bundle activator (hence the name change, to avoid confusion). Instead it extends @org.eclipse.emf.common.EMFPlugin@. The actual bundle activator is the new internal class @TreeUIExtPlugin.Implementation@. * Renamed @org.eclipse.sirius.diagram.sequence.ui.SequenceDiagramPlugin@ has been renamed into @org.eclipse.sirius.diagram.sequence.ui.SequenceDiagramUIPlugin@ for consistency and to avoid potential name clashes with the new @org.eclipse.sirius.diagram.sequence.SequenceDiagramPlugin@. Additional non-breaking changes: * Added @org.eclipse.sirius.ext.base.I18N@ has been added. It provides common utility code to support internationalization. * Added The translation keys (and default values) have been added to all the concerned bundles, in their @plugin.properties@ file. These (translated) messages are available at runtime as static fields of new @Messages@ classes, added to all concerned bundles (always in the same package as their plug-in/activator class). The concerned bundles are: ** @org.eclipse.sirius@ ** @org.eclipse.sirius.ext.base@ ** @org.eclipse.sirius.ecore.extender@ ** @org.eclipse.sirius.synchronizer@ ** @org.eclipse.sirius.common@ ** @org.eclipse.sirius.common.acceleo.aql@ ** @org.eclipse.sirius.common.acceleo.aql.ide@ ** @org.eclipse.sirius.common.acceleo.mtl@ ** @org.eclipse.sirius.common.acceleo.mtl.ide@ ** @org.eclipse.sirius.common.ui@ ** @org.eclipse.sirius.diagram.layoutdata@ ** @org.eclipse.sirius.diagram.sequence@ ** @org.eclipse.sirius.diagram.sequence.ui@ ** @org.eclipse.sirius.diagram@ ** @org.eclipse.sirius.diagram.ui@ ** @org.eclipse.sirius.eef.adapters@ ** @org.eclipse.sirius.interpreter@ ** @org.eclipse.sirius.table@ ** @org.eclipse.sirius.table.ui@ ** @org.eclipse.sirius.tree@ ** @org.eclipse.sirius.tree.ui@ ** @org.eclipse.sirius.ui@ h4. Changes in @org.eclipse.sirius.common@ * Added The method @invokeMethod@ has been added in class @org.eclipse.sirius.common.tools.api.util.ReflectionHelper@ to call a private method. Warning: This method must be used carefully. * Added The method @invokeMethodWithoutException@ has been added in class @org.eclipse.sirius.common.tools.api.util.ReflectionHelper@ to call a private method. This method returns true (and not the result of the method) if it is called without exception. It returns false otherwise. Warning: This method must be used carefully. * Added The new interface @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterWithDiagnostic@ has been added. It allows an interpreter to evaluate an expression and return not only the result of the evaluation but also a diagnostic. * Added The new class @org.eclipse.sirius.common.tools.api.contentassist.ContentProposalWithReplacement@ has been added. It allows interpreters to provide proposals for the code completion which can replace an existing part of the expression used. This behavior can be used if the user has started to type a value that would be returned by the code completion. For example, if the user types @aql:self.na@ and if he selects the content proposal @name@, it can replace the existing part of the expression @na@ to write @aql:self.name@ instead of just appending @name@ to create @aql:self.naname@. * Added The new class @org.eclipse.sirius.common.tools.api.contentassist.ContentProposalBuilder@ used to build the content proposals with their various parameters more easily. h4. Changes in @org.eclipse.sirius@ * Added The method @addEvaluateSelectionExpressionTask@ has been added in class @org.eclipse.sirius.tools.api.command.AbstractCommandFactory@ to allow selection after tool execution. * Added The class @org.eclipse.sirius.common.tools.api.interpreter.StandardServices@ has been added. This class owns methods used for @service:@ interpreter. * Added The class @org.eclipse.sirius.business.api.extender.MetamodelDescriptorProvider2@ has been added and should be preferred instead of implementing @MetamodelDescriptorProvider@. * Added @org.eclipse.sirius.business.api.componentization.ViewpointRegistryImpl.addViewpointFileCollector()@ method has been added to replace deprecated @ViewpointRegistryImpl.addSiriusFileCollector()@. * Modified @org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority.canDeleteInstance(EObject)@ when called for an object will not be called for children of this object as we know it will return true because if we can delete a parent object we can delete its children. * Modified @org.eclipse.sirius.tools.api.command.DCommand@ no longer inherits from @IUndoableCommand@ since undo/redo is managed by EMF Transaction. * Deprecated @org.eclipse.sirius.business.api.componentization.ViewpointRegistryImpl.addSiriusFileCollector()@ method has been deprecated as it is about @ViewpointFileCollector@ and not @SiriusFileCollector@. * Removed @org.eclipse.sirius.business.api.helper.task.ICommandTask.undo()/redo()@ methods removed because they are useless since undo/redo is managed by EMF Transaction. * Removed @org.eclipse.sirius.tools.api.command.IUndoableCommand@ interface removed because it is useless since undo/redo is managed by EMF Transaction. h4. Changes in @org.eclipse.sirius.ui@ * Added @org.eclipse.sirius.ui.business.api.session.SessionEditorInput.getInput()@ method has been added to get the real input for a @DRepresentation@. * Added @org.eclipse.sirius.ui.business.api.session.SessionEditorInput.getSession(boolean)@ method has been added to let the caller choose to create and open a new @Session@ or not when the known session is closed or does not exist. The @getSession@ method calls getSession(true). * Added @org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.selectAndReveal(DialectEditor, List)@ method has been added to explicitly indicate to reveal elements out of the screen (hidden because of the scrollbars location) when selecting them. * Deprecated @org.eclipse.sirius.ui.business.api.session.SessionEditorInput.dispose()@ method has been deprecated as an @IEditorInput@ can be reused by several instances of @IEditorPart@ through the navigation history view. h4. Changes in @org.eclipse.sirius.diagram.ui@ * Added The class @org.eclipse.sirius.diagram.ui.graphical.edit.policies.RegionRegionContainerResizableEditPolicy@ has been added to handle @DNodeContainer@ which are both @Region@ and @RegionContainer@: during resize they might have to propagate the resize to their children and/or parents. * Added The constant @org.eclipse.sirius.diagram.ui.tools.api.layout.LayoutUtils.COLLAPSED_VERTICAL_REGION_HEIGHT@ has been added to centralize the minimum height of a collapsed Region from a Region Container with a vertical stack children presentation. * Added @org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramNodeEditPart/IDiagramBorderNodeEditPart.getNodeLabel()@ methods has been moved up to @org.eclipse.sirius.diagram.ui.edit.api.part.IAbstractDiagramNodeEditPart.getNodeLabel()@ as both @IDiagramNodeEditPart@ and @IDiagramBorderNodeEditPart@ inherits of @IAbstractDiagramNodeEditPart@. * Added @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDER_NODES@ added to replace @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDERED_NODES_TOOLBAR@ which is deprecated * Added @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDER_NODES_TOOLBAR@ added to replace @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDERED_NODES@ which is deprecated * Added @org.eclipse.sirius.diagram.ui.graphical.edit.policies.SetConnectionBendpointsAndLabelCommmand@ is a new class that allows to update edge label when updating bendpoints. Several existing Sirius commands now extends this new class. * Added @org.eclipse.sirius.diagram.ui.tools.api.decorators.AbstractSiriusDecorator.shouldBeVisibleAtPrint()@ method added to leave @AbstractSiriusDecorator@ extenders indicate if decoration should be visible at diagram export/print. * Deprecated @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDERED_NODES@ deprecated in favor @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDER_NODES@ as it is an action id about border nodes layout. * Deprecated @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDERED_NODES_TOOLBAR@ deprecated in favor @org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds.ARRANGE_BORDER_NODES_TOOLBAR@ as it is an action id about border nodes layout. * Removed @org.eclipse.sirius.diagram.ui.graphical.edit.policies.EdgeCreationEditPolicy@ has been removed as it should not be in API and has been replaced by internal @org.eclipse.sirius.diagram.ui.internal.edit.policies.SiriusConnectionEditPolicy@. * Removed The method @setUseLocalCoordinates(boolean)@ has been removed from @org.eclipse.sirius.diagram.ui.tools.api.figure.GradientRoundedRectangle@, @org.eclipse.sirius.diagram.ui.tools.api.figure.ViewNodeContainerParallelogram@, @org.eclipse.sirius.diagram.ui.tools.api.figure.ViewNodeContainerRectangleFigureDesc@ as it was generated by GMF tooling and never used in Sirius whose edit parts and edit policies expect @org.eclipse.draw2d.IFigure.useLocalCoordinates()@ to always return false for its figures. h4. Changes in @org.eclipse.sirius.synchronizer@ * Added @org.eclipse.sirius.synchronizer.CreatedOutput.synchronizeChildren()@ method takes now a @RefreshPlan@ in parameter to have more informations to say if children must be synchronized. h4. Changes in @org.eclipse.sirius.tests.junit.support@ * Added The class @org.eclipse.sirius.tests.support.api.AbstractToolDescriptionTestCase@ has been created. It contains utility methods about tools. * Modified The class @org.eclipse.sirius.tests.support.api.SiriusDiagramTestCase@ has been modified ** Modified It now inherits from @AbstractToolDescriptionTestCase@ ** Added The method @applyContainerCreationTool(String,DDiagram,EObject)@ has been added. ** Added The method @applyGenericTool(String,DDiagram,EObject)@ has been added. h4. Changes in @org.eclipse.sirius.tests.swtbot.support@ * Added The methods @closePerspective(String)@, @closeSiriusPerspective()@ and @closeModelingPerspective()@ have been added in class @org.eclipse.sirius.tests.swtbot.support.api.perspective.DesignerPerspectives@ to allow the closing of perspectives. * Added The @org.eclipse.sirius.tests.swtbot.support.api.condition.PerspectiveActivatedCondition@ new offers the capability to inverse the test. This condition becomes a DeactivatedCondition instead of an ActivatedCondition by using the new constructor with inverse parameter. * Added The methods @isSnapToShape@ and @isSnapToGrid()@ have been added in class @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor@. They allow to know the state of the corresponding properties. * Added The method @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.dragWithKey(int, int, int, int, int)@ (and also @SWTBotSiriusGefViewer.dragWithKey@ and @SWTBotSiriusFigureCanvas.mouseDragWithKey@), has an additional fifth parameter compared to @drag(int, int, int, int)@ method, to indicate the key code to press during the drag'n'drop. It is possible to call this method with @SWT.None@ to obtain the standard behavior of @drag@ method. This method also has a correct behavior for the move of bendpoints of edges. * Added @org.eclipse.sirius.tests.swtbot.support.api.condition.TopCondition@: New condition to wait that top of the edit part is on the expected location. * Added @org.eclipse.sirius.tests.swtbot.support.api.condition.BendpointLocationCondition@: New condition to wait that a bendpoint is on the expected x or y location. * Added @org.eclipse.sirius.tests.swtbot.support.api.condition.TreeChildrenNumberCondition@: New condition to wait that a tree has the expected number of children. * Added @org.eclipse.sirius.tests.swtbot.support.utils.SWTBotCommonHelper.saveCurrentEditor(Session)@: This new method is preferable to @saveCurrentEditor()@ because there is a wait condition to ensure that the save is finished. * Modified @org.eclipse.sirius.tests.swtbot.support.api.condition.CheckBoundsCondition@: This condition now also checks the bounds location if the checkWidth or checkHeight (or both) is false. h4. Changes in @org.eclipse.sirius.ext.gef@ * Added The new class @org.eclipse.sirius.ext.gef.query.EditPartQuery@ has been added. It allows to retrieve all children of the current part. h4. Changes in @org.eclipse.sirius.ext.jface@ * Added The new class @org.eclipse.sirius.ext.jface.viewers.IToolTipProvider@ has been copied from JFace 3.10 from Luna, so that we can use it with Juno and Kepler too. h4. Changes in @org.eclipse.sirius.ext.gmf.runtime@ * Added Two new @getIntersection@ methods have been added in @org.eclipse.sirius.ext.gmf.runtime.editparts.GraphicalHelper@. They are similar to the existing @getIntersection@ methods, but they consider the nearest point on the figure if there is no intersection. h2(#sirius3.0.0). Changes in Sirius 3.0.0 h3. User-Visible Changes * Added The ability to print table representations has been re-introduced. * Added The quick outline feature has been added for tree and table editors, see documentation for details. * Added The label of a list or container can now be hidden by the user from the outline, the tabbar or the contextual menu. * Added In the _Appearance_ tab, in addition to _Bold_ and _Italic_, it is now possible to set the font formatting style to _Underline_ and _Strike through_ (or any combination of these). * Added Container elements on diagrams now support vertical and horizontal compartments layout (this is only visible if the modeler configuration makes use of this new feature). * Added In table and tree editors, a _Refresh_ can now be launched by hitting F5 like in diagrams (previously the only way was to click on the _Refresh_ icon or menu item). * Added In table editors, hitting the Del key is now equivalent to selecting _Delete Line_ in the context menu. * Added On diagrams, it is now possible to set a custom background image on list containers. * Modified In the _Viewpoint Selection_ dialog and wizard page, the "plug-in" decorator for viewpoints loaded from plug-ins is removed, and a "Folder" decorator for viewpoints loaded from the current workspace has been added. This makes the icons more visible in the most common where viewpoints come from installed plug-ins. h3. Specifier-Visible Changes * Added Experimental Optional support for the experimental _Acceleo Query Language_ (AQL) has been added to write interpreted expressions. It is provided by the @org.eclipse.sirius.common.acceleo.aql@ (required for evaluating the expressions) and @org.eclipse.sirius.common.acceleo.aql.ide@ (optional, only needed to provide specification-time features like expression completion) plug-ins. AQL is similar to Acceleo 3/MTL, but simpler and provides much better performance in the Sirius context. If you make use of this feature, be aware that some details may still change in future releases, including 3.0.x maintenance releases. See the AQL documentation for more details on the language itself. * Added Experimental New, experimental support for containers with vertical or horizontal _compartments_ on diagrams: the _children presentation_ property of a _Container Mapping_ has two new values: _Vertical Stack_ and _Horizontal Stack_. They indicate that a container will present its children containers as a vertical/horizontal stack of compartments. While working reliably, this support is marked experimental in Sirius 3.0.0 as there are still some combinations of mappings, styles and 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.0.x maintenance releases. * Added Everywhere an image path can be configured in the VSM, a new button is present on the right of the text field. It opens a dialog to select an image, either from the workspace or from an installed plug-in. * Added Everywhere an interpreted expression can be configured in the VSM, a new button is present on the right of the text field. It opens a multi-line dialog to edit long expression more easily. Auto-completion is supported inside the multi-line dialog. * Added Compressed SVG images (@*.svgz@) are now supported everywhere normal SVG images were supported. * Added When developing a modeler in "live mode", with the VSM in the same workspace as the sample session(s) which use it, VSM expressions which use @service:@ or @aql:@ can now invoke Java services which are defined in the workspace (with no need to launch a separate runtime). * Added A quick outline is now accessible in the VSM editor by using the shortcut Ctrl+o. It supports filtering on both an element's name and properties for quick, keyboard-only navigation in complex VSMs. * Added The "hide label by default capability" has been added to the container styles. * Added In addition to _Bold_ and _Italic_, _Underline_ and _Strike Through_ styles have been added on the label font format. * Improved Many VSM elements which are required are now created automatically. For example the default layer of a _Diagram Description_ is automatically added to new _Diagram Descriptions_. * Improved Some default values have been modified to better reflect actual usage. This does not impact existing VSM and only applies to newly created elements. ** The label position on a _Node_ mapping is now _node_ by default (instead of _border_ before). ** The _Arc Width_ and _Arc Height_ are now 10 by default (instead of 1 before). ** The _Enable popup bars_ is now set by default on new diagrams. ** No default value for interpreted expressions use the Acceleo 3 / MTL syntax anymore, but only use the core @var:@ and @feature:@ interpreters, which are always present. * Improved The precision of the VSM validation, especially regarding the typing of computed expressions, has been greatly improved. Other validation rules like static image paths have also been added or improved. * Modified In the VSM editor, the context menu entries (categories and items) have been reorganized to put most common actions/items first. * Modified In diagrams, the style previously named "Lozenge" is now called "Diamond". * Modified In the _Open_ menu on a representation, the menu is computed from the navigation tool's label instead of its name/id. * Modified All Acceleo 3 references have been removed from the Sirius metamodels to avoid a dependency to Acceleo 3. An automatic migration has been added during the loading of the VSM to avoid a change of behavior. This migration adds explicitly the old default value (@[eContents()->size()/]@) in the VSM, that was implicit before. Customers who want to completely remove this dependency must remove the Acceleo 3 expressions from there VSM after the migration. * Modified The default icons paths of _Selection Wizard_ and _Pane-Based Selection Wizard_ used to reference invalid icons, so the corresponding tools had no icon per default in the palette. The default icons paths have been corrected to reference the icons displayed for those elements in the VSM editor. * Modified "@*@" can now be used as feature name of a table's _Feature Column_ to skip the feature name validation during the cell creation. This allow to compute the label of cells for lines whose semantic element types have no common _EStructuralFeature_ (inherited or with same name). h3. Developer-Visible Changes The most important and impacting changes in this release are (details below in plug-in specific sections): * Added The new extension point @org.eclipse.sirius.ui.siriuspropertiescelleditor@, defined in @org.eclipse.sirius.ui@, can be used to provide customized cell editors for semantic element's properties as shown in the properties view on a Sirius representation. * Added The new class @org.eclipse.sirius.eef.components.SiriusAwarePropertiesEditingComponent@ can be used as root class of the generated EEF components to greatly improve performances when using both EEF properties views with Sirius representations. * Modified The minimum version of EEF required for using @org.eclipse.sirius.eef.adapters@ is now 1.5.0 (from 1.2 before). EEF 1.5 is source and binary-compatible with EEF 1.2 to 1.4, and no re-generation of the EEF views should be needed to switch to 1.5. * Modified The @org.eclipse.sirius.business.internal.session.IsModifiedSavingPolicy@ saving policy, introduced in Sirius 2.0.0 but not enabled at that time is now the default. The previous implementation, @org.eclipse.sirius.business.api.session.SavingPolicyImpl@ is still available if needed. * Modified All metamodels defined by Sirius have been modified to use EMF's @MinimalEObjectImpl.Container@ as base class, which reduces memory consumption compared to previous versions. * Modified The @RGBValues@ type used in Sirius to represent colors has been converted into an immutable EMF EDataType, which also reduces memory consumption compared to previous versions. * Modified The @AirdResourceImpl@ type, use for the @*.aird@ resources, no longer inherits from GMF's @GMFResource@ or depend on GMF in any way. This makes the @org.eclipse.sirius@ now completely independent on GMF. * Modified The @DAnalsysis.models@ reference has been replaced by the @DAnalsysis.semanticModels@ attribute, in conjunction with the new @ResourceDescriptor@ data-type. The @DAnalysis.getModels()@ Java method is still present for compatibility and returns the same values, but the returned list can not be modified. All changes must be made directly on @DAnalsysis.semanticModels@ and will be reflected in the value returned by @DAnalysis.getModels()@. While not technically deprecated yet, @DAnalysis.getModels()@ should be avoided and may be removed in a future release. * Moved Extensions in @plugin.xml@ that provide UI functionalities have been moved to new @org.eclipse.sirius.*.ext@ plug-ins, to make the contributions to the UI optional. If your product consumed directly the Sirius plug-ins instead of the high-level features, you may need to add the new plug-ins if you want the Sirius UI contributions to stay available. * Removed Many unused types defined in the metamodels have been removed. This should not impact normal client code. Existing models will be automatically migrated on loading if needed. * Removed Sirius no longer installs the @AirDCrossReferenceAdapterImpl@, which was a subclass of GMF's @CrossReferenceAdapter@ on session resources (@*.aird@). If your code relied on GMF's implementation to find inverse references, it can use the Sirius session's @Session.getSemanticCrossReferencer()@ instead, which provides the same service (and more) and avoids the redundant installation of GMF's version. Packaging changes: * Added Two new feature have been added concerning the new support for the AQL language: ** @org.eclipse.sirius.runtime.aql@ includes the minimum required to execute AQL queries at runtime. It must be present on end-users' systems for modelers which use AQL expressions to work. ** @org.eclipse.sirius.aql@ includes both the runtime requirements and the development-time features like support for auto-completion of AQL expressions in the VSM editor. * Added The new feature @org.eclipse.sirius.specifier@ includes everything needed to have a complete Sirius specification environment, with support for all dialects. It includes support for Acceleo 3/MTL queries, but not for AQL (provided by @org.eclipse.sirius.aql@) or OCL (provided by @org.eclipse.sirius.runtime.ocl@). Future Sirius releases will probably swap AQL and Acceleo 3, making AQL the defaut and part of the main feature, and Acceleo 3/MTL optional in a separate feature. * Added All Sirius releases and milestones are available as zipped archives in addition to a normal p2 repository/update-site. For each version and platform (e.g. 3.0.0 on Eclipse Mars), two archives are available: one with the Sirius core, and one with the Sirius automated test suites and the sample modelers they rely on. See the "Sirius wiki":https://wiki.eclipse.org/Sirius/Update_Sites and release pages for more details and links to these archives, for example @http://download.eclipse.org/sirius/updates/releases/2.0.5/@. This is retro-active on all previously released versions of Sirius, but not on milestones before 3.0.0. Other changes: * Added Sirius now provides an Oomph setup file to automatically create a fully configured Eclipse installation ready for contributing patches to Sirius. The latest version can be obtained here. * Added New patches proposed by contributors on the Sirius Gerrit now automatically trigger a sub-set of the Sirius automated test suites, which give a good feedback on the absence of regressions introduced by the proposed patch. h4. Changes in @org.eclipse.sirius.common@ * Added The @org.eclipse.sirius.common.tools.api.util.SiriusCrossReferenceAdapter@ interface and the @org.eclipse.sirius.common.tools.api.util.SiriusCrossReferenceAdapterImpl@ have been added to have the capability to disable the proxy resolution. This feature is typically used to prevent loading a resource during its unloading. *Warning* : _Every additional custom CrossReferenceAdapter_ should extend @SiriusCrossReferenceAdapterImpl@ or at least implement @SiriusCrossReferenceAdapter@ with the same implementation as @SiriusCrossReferenceAdapterImpl@. * Added @org.eclipse.sirius.common.tools.api.util.ECrossReferenceAdapterWithUnproxyCapability@ is a specific kind of @SiriusCrossReferenceAdapter@. It provides the capability to resolve all proxy cross references to a given resource. It is now used by the Session as semantic cross referencer. This type is exposed as API but it is not intended to be used/referenced/extended by user code (as the below @LazyCrossReferencer@ type). * Added The static method @org.eclipse.sirius.common.tools.api.util.ReflectionHelper.getFieldValueWithoutException(Class, String)@ has been added to return an internal static value of a class. * Added @org.eclipse.sirius.common.tools.api.resource.ResourceSetSync@ has a new state @CHANGES_CANCELED@ used to define the state where the user canceled its changes. * Added The @org.eclipse.sirius.common.tools.api.resource.ImageFileFormat@ class has been added (it was in @org.eclipse.sirius.ext.swt@ before). * Added The method @org.eclipse.sirius.common.tools.api.util.EclipseUtil.getConfigurationElementsFor()@ has been added: it calls @org.eclipse.core.runtime.Platform.getExtensionRegistry().getConfigurationElementsFor()@ only if @Platform.isRunning()@. * Added The interface @org.eclipse.sirius.business.api.migration.IMigrationParticipant@ exposes a new method @postXMLEndElement([..])@ which is called during a migration operation. This method should be overridden by participants which have to hook the loading process after each end of XML tag. The corresponding abstract class @org.eclipse.sirius.business.api.migration.AbstractMigrationParticipant@ provides a default empty implementation. * Added A new class @org.eclipse.sirius.common.tools.api.interpreter.JavaExtensionsManager@ can now be used by langages interpreters to benefit from a consistent handling of Java extensions and support for loading Java services from the workspace. * Added The class @org.eclipse.sirius.common.tools.api.interpreter.TypeName@ has been introduced to represent in the codebase any type which was previously represented as a plain String. * Added A new interface @org.eclipse.sirius.common.tools.api.interpreter.TypedValidation@ has been introduced for @IInterpreter@ implementations able to provide richer information when validating an expression. This information is captured through a @org.eclipse.sirius.common.tools.api.interpreter.ValidationResult@ instance. * Added The class @org.eclipse.sirius.common.tools.api.interpreter.VariableType@ has been introduced to represent the possible types a variable can have in a Viewpoint specification model. * Added The utility class @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterContextUtils@ has been introduced to factorize code related to managing @IInterpreterContext@ instances. * Added The class @org.eclipse.sirius.business.api.dialect.description.MultiLanguagesValidator@ has been introduced to provide a safe and more efficient way to switch to the proper @IInterpreter@ instance when validating expressions. * Added Removed The class @org.eclipse.sirius.common.tools.api.util.RefreshIdFactory@ has been replaced with @org.eclipse.sirius.common.tools.api.util.RefreshIdsHolder@ which no longer rely on a global singleton but attach information to an EObject representing the current scope. This impacts @org.eclipse.sirius.diagram.business.api.query.AbstractDNodeQuery@ , @org.eclipse.sirius.common.tools.api.util.CartesianProduct@ and @org.eclipse.sirius.common.tools.api.util.EObjectCouple@ which are now requiring now a @RefreshIdsHolder@ instance. * Modified@org.eclipse.sirius.common.tools.api.util.LazyCrossReferencer@ now extends @ECrossReferenceAdapterWithUnproxyCapability@ and implements @resolveProxyCrossReferences(Resource)@. * Moved The @org.eclipse.sirius.common.tools.api.util.LazyCrossReferencer.enableResolve()@ and @disableResolve()@ methods has been moved to @SiriusCrossReferenceAdapter.enableResolveProxy()@ and @disableResolveProxy()@. * Modified The static method @org.eclipse.sirius.common.tools.api.interpreter.DefaultInterpreterContextFactory.createInterpreterContext(...)@ now requires a @Map@ for the accessible variables instead of a @Map@. * Modified The methods @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterContext.getVariables()@ and @org.eclipse.sirius.business.api.dialect.description.IInterpretedExpressionQuery.getAvailableVariables()@ are now returning a map containing @VariableType@ instances instead of encoded Strings. * Modified The method @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterStatus.getTargetTypes()@ no longer returns a list of encoded Strings but a @VariableType@ instance instead. * Deprecated The method @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterContext.getTargetTypes()@ has been deprecated in favor of @org.eclipse.sirius.common.tools.api.interpreter.IInterpreterContext.getTargetType()@ which returns a @VariableType@ instance instead of encoded Strings. h4. Changes in @org.eclipse.sirius.common.ui@ * Added Classes from @org.eclipse.sirius.common.ui.tools.api.dialog.quickoutline@ packages are available in API to allow editor to provide quick outline feature easily. * Added The methods @displaySyncExec(Runnable)@ , @displayAsyncExec(Runnable)@ and @synchronizeWithUIThread()@ have been added in class @org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil@ to encapsulate accesses to the current @Display@ instance. * Moved Extensions in @plugin.xml@ that provide UI functionalities have been moved to @org.eclipse.sirius.common.ui.ext@. h4. Changes in @org.eclipse.sirius@ * Added The method @org.eclipse.sirius.business.api.session.danalysis.DAnalysisSessionHelper.findContainerForAddedRepresentation(DAnalysis, DRepresentation)@ has been added to return a @DRepresentationContainer@ from the @DAnalysis@ parameter and the added @DRepresentation@. * Added The method @org.eclipse.sirius.business.api.migration.IMigrationParticipant.updateCreatedObject(EObject newObject, String loadedVersion)@ has been added to update object values in VSM before loading this objects from XML file. * Added The method @org.eclipse.sirius.tools.api.ui.RefreshEditorsPrecommitListener.disable()@ has been added to disable the next refresh attempt in the current precommit loop iteration. * Added The new constant @org.eclipse.sirius.business.api.helper.SiriusUtil.ENVIRONMENT_URI_SCHEME@ declares environment URI scheme. * Added The new constant @org.eclipse.sirius.business.api.helper.SiriusUtil.VIEWPOINT_ENVIRONMENT_RESOURCE_URI@ declares @environment:/viewpoint@ resource URI. * Added The new constant @org.eclipse.sirius.viewpoint.description.util.DescriptionResourceImpl.OPTION_SIRIUS_USE_URI_FRAGMENT_AS_ID@ added to define a option to enable the use of a id map for odesign resource, id being uri's fragment. * Added The query @org.eclipse.sirius.business.api.query.EObjectQuery@ has now a new constructor with an additional parameter, ECrossReferenceAdapter. This can be usefull if there is many calls to inverse references methods for the same Session. This avoids to get the semantic cross referencer from the EObject each time. This query also proposes a new method @getInverseReferences(Set)@. * Added There is a new capability on Dialect. This capability is to refresh only impacted elements concerned by a list of notifications. It is used, for example, to refresh the opened representations when the user chooses manual refresh mode. Each dialect that want to offer this capability must implement @org.eclipse.sirius.business.api.dialect.DialectServices.refreshImpactedElements(DRepresentation, Collection, IProgressMonitor)@. A default implementation that does nothing is done in @org.eclipse.sirius.business.api.dialect.AbstractRepresentationDialectServices@. * Added A new method has been added in the query @org.eclipse.sirius.business.api.query.DAnalysisQuery@ named @getMainModels()@. This method returns a Set of the main model and the other non controlled models. * Added A new method has been added in @org.eclipse.sirius.viewpoint.DAnalysis@ named @getSemanticResources()@. This method returns a list of @org.eclipse.sirius.business.api.resource.ResourceDescriptor@ which is a descriptor of the semantic resource. * Modified @org.eclipse.sirius.viewpoint.RGBValues@ has been changed from an @EClass@ to an @EDataType@, it is not an @EObject@ anymore. * Added The API @org.eclipse.sirius.business.api.metamodel.helper.FontFormatHelper@ has been added. It helps to update label format multi valued features. * Modified @org.eclipse.sirius.business.api.session.SessionListener.SEMANTIC_CHANGE@ is no more send to @SessionListener@ and @SessionManagerListener@ listeners on save when a semantic resource is saved. Use a @ResourceSyncClient@ listener on @ResourceSetSync@ to have know if a semantic resource is saved. * Modified The default constructor has been changed in @org.eclipse.sirius.tools.api.command.semantic.RemoveSemanticResourceCommand@. ** The boolean value @removeReferencingResources@ has been added to indicate if the referencing resources are also to remove. ** The boolean value @removeFromControlledResources@ has been removed because controlled resources are managed internally. * Modified The boolean value @removeReferencingResources@ has been added in @org.eclipse.sirius.business.api.session.Session.removeSemanticResource@ method to indicate if the referencing resources are also to remove. * Modified The @getModels()@ method in @org.eclipse.sirius.viewpoint.DAnalysis@ returns a non-modifiable list. Use @getSemanticResources()@ instead. * Moved The @isBbocked()@ and @setBlocked()@ methods on the @org.eclipse.sirius.viewpoint.DAnalysisSessionEObject@ EClass have been removed, as they were not actually used in the internal code. * Deprecated @org.eclipse.sirius.business.api.helper.task.ICommandTask.undo()/redo()@ methods are deprecated because they are useless since undo/redo is managed by EMF Transaction. * Deprecated @org.eclipse.sirius.tools.api.command.IUndoableCommand@ interface are deprecated because it is useless since undo/redo is managed by EMF Transaction. * Deprecated @org.eclipse.sirius.business.api.helper.task.TaskExecutor.undo()/redo()@ methods are deprecated because they are useless since undo/redo is managed by EMF Transaction. * Removed The @org.eclipse.sirius.business.api.session.Session.createSemanticResource()@ method has been removed. Use @Session.addSemanticResource()@ instead. * Removed The @ExtendedPackage@ @EDataType@ which was defined in the @http://www.eclipse.org/sirius/1.1.0@ package was not actually used anywhere and has been removed. * Removed The @DView@ methods @getAllRepresentations()@, @getReferencedRepresentations()@ and @getHiddenRepresentations()@ have been removed: @getReferencedRepresentations()@ and @getHiddenRepresentations()@ were never actually used, making @getAllRepresentations()@ strictly equivalent to @getOwnedRepresentations()@. Code that used @getAllRepresentations()@ can simply use @getOwnedRepresentations()@ instead. * Removed The API @org.eclipse.sirius.viewpoint.DSourceFileLink@ has been removed. * Removed The API @org.eclipse.sirius.viewpoint.DNavigable@ has been removed. * Removed The API @org.eclipse.sirius.viewpoint.DNavigationLink@ has been removed. * Removed The API @org.eclipse.sirius.viewpoint.DValidable@ has been removed. * Removed The enum @org.eclipse.sirius.viewpoint.NavigationTargetType@ has been removed. * Removed The API @org.eclipse.sirius.viewpoint.DLabelled@ has been removed. * Removed The API @org.eclipse.sirius.viewpoint.DContainer@ has been removed. h4. Changes in @org.eclipse.sirius.ui@ * Added The method @org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.completeToolTipText(String, EObject, EStructuralFeature)@ has been added to customize the tooltip displayed in the VSM editor by using the feature of the current object. The old method @org.eclipse.sirius.ui.business.api.dialect.DialectUIServices.completeToolTipText(String, EObject)@ has been deprecated. * Added The class @org.eclipse.sirius.ui.tools.api.properties.SiriusExtensiblePropertySource@ has been added. It allows developers to make their properties views CellEditor customizable by using the new extension point @org.eclipse.sirius.ui.siriuspropertiescelleditor@ * Added The interface @org.eclipse.sirius.ext.emf.ui.ICellEditorProvider@ has been added to allow clients to provide their own @CellEditor@ - in the Sirius semantic properties views - through the new extension point @org.eclipse.sirius.ui.siriuspropertiescelleditor@. * Added The method @org.eclipse.sirius.ui.business.api.session.IEditingSession.detachEditor(DialectEditor, boolean)@ has been added to choose whether we should revert the user changes when detaching the editor. * Added A @org.eclipse.sirius.ui.tools.api.views.LockDecorationUpdater@ is now available to add it on a @org.eclipse.ui.navigator.CommonNavigator@ to be refreshed when notifications are send to @org.eclipse.sirius.ecore.extender.business.api.permission.IAuthorityListener@. * Added A new job @org.eclipse.sirius.ui.tools.api.views.RefreshLabelImageJob@ has been added to refresh the icon of specified elements on a @org.eclipse.ui.navigator.CommonNavigator@. * Moved Extensions in @plugin.xml@ that provide UI functionalities have been moved to @org.eclipse.sirius.ui.ext@. h4. Changes in @org.eclipse.sirius.ecore.extender@ * Modified The method @org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor.eRemoveInverseCrossReferences()@ has been changed to return the list of changed objects by the inverse cross references removal. * Modified The method @org.eclipse.sirius.ecore.extender.business.api.accessor.IMetamodelExtender.eRemoveInverseCrossReferences()@ has been changed to return the list of changed objects by the inverse cross references removal. * Modified The method @org.eclipse.sirius.ecore.extender.business.api.accessor.CompositeMetamodelExtender.eRemoveInverseCrossReferences()@ has been changed to return the list of changed objects by the inverse cross references removal. * Removed The exception @org.eclipse.sirius.ecore.extender.IllegalURIException@ has been removed. It was not actually thrown anywhere in the code. h4. Changes in @org.eclipse.sirius.editor@ * Added The static method @org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider.bindPluginsCompletionProcessors(AbstractPropertySection, Text)@ has been added. This method is very similar to @org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider.bindCompletionProcessor(AbstractPropertySection, Text)@, the difference is that it binds the completion processors available in plugins to the text. h4. Changes in @org.eclipse.sirius.diagram@ * Added The @org.eclipse.sirius.diagram.tools.api.command.ChangeLayerActivationCommand@ has been added. This command was previously internal. * Added The new constant @org.eclipse.sirius.diagram.business.api.helper.SiriusDiagramUtil.DIAGRAM_ENVIRONMENT_RESOURCE_URI@ declares the @environment:/diagram@ resource URI. * Added The method @org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramDescriptionProvider.completeToolTipText(String, EObject, EStructuralFeature)@ has been added to customize the tooltip displayed in the VSM editor by using the feature of the current object. The old method @org.eclipse.sirius.diagram.business.api.diagramtype.IDiagramDescriptionProvider.completeToolTipText(String, EObject)@ has been deprecated. * Added New methods have been added to @org.eclipse.sirius.diagram.business.api.query.ContainerMappingQuery@ to test the children presentation mode of the current @ContainerMapping@: @isVerticalStackContainer()@, @isHorizontalStackContainer()@, @isRegionContainer()@ and @isRegion()@. * @org.eclipse.sirius.diagram.business.api.query.AbstractDNodeQuery@ now requires a @org.eclipse.sirius.common.tools.api.util.RefreshIdsHolder@ to check for equality in the context of a refresh operation. * Removed The @DNodeList.lineWidth@ attribute has been removed from the metamodel, the corresponding generated elements do not exist anymore: @org.eclipse.sirius.diagram.DNodeList.getLineWidth()@, @org.eclipse.sirius.diagram.DNodeList.setLineWidth()@, @org.eclipse.sirius.diagram.DiagramPackage.DNODE_LIST__LINE_WIDTH@, @org.eclipse.sirius.diagram.DiagramPackage.getDNodeList_LineWidth()@, @org.eclipse.sirius.diagram.DiagramPackage.Literals.DNODE_LIST__LINE_WIDTH()@. * Removed @org.eclipse.sirius.diagram.ComputedStyleDescriptionRegistry.cache@ reference has been removed from the metamodel as it is no more useful, to limit memory consumed by computed @StyleDescription@ we directly look for them in the @ComputedStyleDescriptionRegistry.computedStyleDescriptions@ list. h4. Changes in @org.eclipse.sirius.diagram.ui@ * Added Modified The @org.eclipse.sirius.diagram.ui.tools.api.figure.ImageFigureWithAlpha@ interface has been added to identify Figures having the capability to return an alpha value from a coordinate. @org.eclipse.sirius.diagram.ui.tools.api.figure.AbstractCachedSVGFigure@ and @org.eclipse.sirius.diagram.ui.tools.api.figure.AbstractTransparentImage@ now implement this new interface. * Added The method @org.eclipse.sirius.diagram.ui.tools.api.figure.locator.DBorderItemLocator.resetBorderItemMovedState()@ has been added to allow to reset the state of @borderItemHasMoved@. This method must be used carefully only in case where @setConstraint(Rectangle)@ is called to compute temporary a @getValidLocation(Rectangle, IFigure, Collection, List)@, one time with a new value and just after with the old value. * Added The constant @org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath.HIDDEN_LABEL_DECORATOR@ has been added to represent the path of hidden label decorator used in the outline. * Added The class @org.eclipse.sirius.diagram.ui.business.api.provider.DDiagramElementContainerLabelItemProvider@ has been added to represent container and list labels as virtual nodes in the Show/Hide wizards. * Modified The @org.eclipse.sirius.diagram.ui.tools.api.figure.locator.DBorderItemLocator@ did not take into account the rectangle size passed to @getValidLocation@. To resolve that limitation, several protected methods that took a Point as location now take a Rectangle: ** @locateOnBorder(Point, int, int, IFigure, Collection, List)@ now takes a @Rectangle@ instead a @Point@: @locateOnBorder(Rectangle, int, int, IFigure, Collection, List)@; ** @locateOnSouthBorder@, @locateOnNorthBorder@, @locateOnWestBorder@ and @locateOnEastBorder@ signatures is now @(Rectangle, int, IFigure, Collection, List)@; ** @locateOnParent@ signature is now @locateOnParent(Rectangle, int, IFigure)@; ** @conflicts@ signature is now @conflicts(Rectangle, IFigure, Collection, List)@. * Moved The constant @DiagramImagesPath.LINK_TO_VIEWPOINT_IMG@ has been moved to @org.eclipse.sirius.ui.tools.api.image.ImagesPath.LINK_TO_VIEWPOINT_IMG@. This is more coherent because the corresponding image is in core @org.eclipse.sirius.common.ui@ plugin. * Moved @org.eclipse.sirius.diagram.ui.tools.api.layout.PinHelper@ moved from @org.eclipse.sirius.diagram.ui@ plugin to @org.eclipse.sirius.diagram@ plugin, i.e. @org.eclipse.sirius.diagram.tools.api.layout.PinHelper@ with @PinHelper.IsPinned(IDiagramElementEditPart)@ removed in favor of @PinHelper.IsPinned(DDiagramElement)@. * Moved External java actions declared as @org.eclipse.sirius.diagram.ui.tools.internal.actions.pinning.pinElementsActionId@ and @org.eclipse.sirius.diagram.ui.tools.internal.actions.pinning.unpinElementsActionId@ are now declared as @org.eclipse.sirius.diagram.tools.internal.actions.pinning.pinElementsActionId@ and @org.eclipse.sirius.diagram.tools.internal.actions.pinning.unpinElementsActionId@ in @org.eclipse.sirius.diagram@ plugin. * Moved Extensions in @plugin.xml@ that provides UI functionalities have been moved to @org.eclipse.sirius.diagram.ui.ext@. * Deprecated @org.eclipse.sirius.diagram.ui.tools.api.util.GMFNotationHelper.findGMFDiagram()@ became deprecated in favor of @DiagramCreationUtil.findAssociatedGMFDiagram()/getAssociatedGMFDiagram()@ * Removed The @org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramEdgeEditPart.getEAdapterStrokeColor@ method has been removed as the corresponding adapter was uneffective and is no more used and installed on the edge edit parts. * Removed @org.eclipse.sirius.diagram.ui.tools.api.figure.InvisibleResizableCompartmentFigure@ class has been removed, use a @org.eclipse.gmf.runtime.diagram.ui.figures.ShapeCompartmentFigure@ with a @org.eclipse.draw2d.MarginBorder@ or a null border instead. * Removed The method @org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramElementEditPart.getEAdapterSemanticElements()@ has been removed (and all its implementations). For manual refresh, this adapter has been replaced with the @RefreshEditorsPrecommitListener@. * Removed The method @org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorUtil.findView()@ has been deleted in flavor of @SiriusGMFHelper.getGmfView()@. If you was using @SiriusDiagramEditorUtil.findView()@ with a semantic element in parameter, retrieve before the corresponding @DDiagram@ or @DDiagramElement@ and use @SiriusGMFHelper.getGmfView(DSemanticDecorator)@ from this last to get the corresponding GMF View. To get a @DDiagram@ or @DDiagramElement@ from a semantic element, you can use @EObjectQuery.getInverseReferences(EReference)@ API, see @org.eclipse.sirius.diagram.ui.business.api.view.ValidateAction.getDSemanticDecorator()@ for an example. h4. Changes in @org.eclipse.sirius.table@ * Removed The methods @org.eclipse.sirius.table.business.api.helper.TableHelper.getColumn()@ have been removed because they are not useful, @TableHelper.getColumn(DLine, int)@ can be replaced by @DTable.getColumns().get(int)@ and @TableHelper.getColumn(DTable, String)@ should not be used as we can have several columns with a same featureName. * Removed The method @org.eclipse.sirius.table.business.api.helper.TableHelper.getEClassifier(DLine, int)@ has been removed because it is not useful, use @TableHelper.getEClassifier(line, column)@ instead. * Removed The method @org.eclipse.sirius.table.business.api.helper.TableHelper.getTableElement(DTableElementStyle)@ has been removed because it is not useful, @DTableElementStyle.eContainer()@ can be used instead. * Removed The methods @org.eclipse.sirius.table.business.api.helper.TableHelper.getCell(DCellStyle)@ has been removed because they are not useful, use @DCellStyle.eContainer@ instead. * Removed The methods @org.eclipse.sirius.table.business.api.helper.TableHelper.getCell(RGBValues)@ has been removed, @RGBValues@ is not an @EObject@ anymore. The method was looking in the eContainer hierarchy of a an instance of @RGBValues@ to find the parent @DCell@. * Removed The method @org.eclipse.sirius.table.business.api.helper.TableHelper.getCreateCellTool(DCell)@ has been removed because it is not useful, use @TableHelper.getCreateCellTool(line, column)@ instead. * Removed The method @org.eclipse.sirius.table.business.api.helper.TableHelper.getCellDefaultForegroundColor()@ has been removed because it is not useful, use @EnvironmentSystemColorFactory.getDefault().getSystemColorDescription("gray")@ instead. * Removed The interface @DTableElementUpdater@ has been removed from metamodel. It is now unnecessary. This interface was here to provide operations to activate and deactivate the listeners, that have been replaced by the @RefreshImpactedElementsCommand@ launched from @RefreshEditorsPrecommitListener@. h4. Changes in @org.eclipse.sirius.table.ui@ * Moved Extensions in @plugin.xml@ that provide UI functionalities have been moved to @org.eclipse.sirius.table.ui.ext@. h4. Changes in @org.eclipse.sirius.tree@ * Added The method @org.eclipse.sirius.tree.business.api.interaction.DTreeItemUserInteraction.refreshContent(boolean fullRefresh)@ has been added to allow full refresh from a specified @DTreeItem@. * Added The EMF Command @org.eclipse.sirius.tree.business.api.command.DTreeItemLocalRefreshCommand@ has been added to call @DTreeItemUserInteraction.refreshContent(boolean fullRefresh)@ in an EMF Command. * Added The method @org.eclipse.sirius.tree.business.api.interaction.DTreeItemUserInteraction.expand(IProgressMonitor)@ has been added similar to @DTreeItemUserInteraction.expand()@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ expanding. * Added The method @org.eclipse.sirius.tree.business.api.interaction.DTreeItemUserInteraction.collapse(IProgressMonitor)@ has been added similar to @DTreeItemUserInteraction.collapse()@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ collapsing. * Added The method @org.eclipse.sirius.tree.business.api.interaction.DTreeItemUserInteraction.expandAll(IProgressMonitor)@ has been added similar to @DTreeItemUserInteraction.expandAll()@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ expanding. * Added The method @org.eclipse.sirius.tree.business.api.interaction.DTreeItemUserInteraction.refreshContent(boolean, IProgressMonitor)@ has been added similar to @DTreeItemUserInteraction.refreshContent(boolean)@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ expanding. * Added The method @DTreeUserInteraction.expand(IProgressMonitor)@ has been added similar to @org.eclipse.sirius.tree.business.api.interaction.DTreeUserInteraction.expand()@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ expanding. * Added The method @DTreeUserInteraction.expandAll(IProgressMonitor)@ has been added similar to @org.eclipse.sirius.tree.business.api.interaction.DTreeUserInteraction.expandAll()@ but taking a @IProgressMonitor@ in parameter to have progression on @DTreeItem@ expanding. * Modified The constructor @org.eclipse.sirius.tree.business.api.command.DTreeItemExpansionChangeCommand.DTreeItemExpansionChangeCommand(GlobalContext, TransactionalEditingDomain, DTreeItem, IProgressMonitor, boolean)@ has an additional @IProgressMonitor@ parameter. * Removed The interface @DTreeElementUpdater@ has been removed from metamodel. It is now unnecessary. This interface was here to provide operations to activate and deactivate the listeners, that have been replaced by the @RefreshImpactedElementsCommand@ launched from @RefreshEditorsPrecommitListener@. h4. Changes in @org.eclipse.sirius.tree.ui@ * Modified The method @org.eclipse.sirius.tree.ui.properties.section.common.AbstractDTreePropertySection.update(final TransactionalEditingDomain domain, final Notification notification)@ has been replaced by @org.eclipse.sirius.tree.ui.properties.section.common.AbstractDTreePropertySection.update(ResourceSetChangeEvent)@ to allow to update only once per ResourceSetChangeEvent and let subclasses make additional filtering on the notifications. * Modified The return type of the method @org.eclipse.sirius.tree.ui.properties.section.common.AbstractDTreePropertySection.getEventListener()@ has been changed from @DemultiplexingListener@ to @ResourceSetListener@. * Modified The type of @org.eclipse.sirius.tree.ui.properties.section.common.AbstractDTreePropertySection.eventListener@ has been changed from @DemultiplexingListener@ to @ResourceSetListener@. * Moved Extensions in @plugin.xml@ that provide UI functionalities have been moved to @org.eclipse.sirius.tree.ui.ext@. h4. Changes in @org.eclipse.sirius.synchronizer@ * Added The method @org.eclipse.sirius.synchronizer.ModelToModelSynchronizer.update(CreatedOutput, boolean, IProgressMonitor)@ has been added similar to @org.eclipse.sirius.synchronizer.ModelToModelSynchronizer.update(CreatedOutput, boolean)@ but taking a @IProgressMonitor@ in parameter to have progression on synchronization. * Modified The method @org.eclipse.sirius.synchronizer.SemanticPartitionInvalidator.hasFastResult(EObject, SemanticPartition, CreatedOutput)@ now takes a @CreatedOutput@ as additional parameter element to allow to have the parent output element. * Modified The method @org.eclipse.sirius.synchronizer.SemanticPartition.evaluate(EObject, CreatedOutput)@ now takes a @CreatedOutput@ as additional parameter. This @CreatedOutput@ represents the output model element which will become the parent of the elements created from the evaluation result. h4. Changes in @org.eclipse.sirius.ext.swt@ * Moved The @org.eclipse.sirius.ext.swt.ImageFileFormat@ class has been moved in @org.eclipse.sirius.common.tools.api.resource@ (in the @org.eclipse.sirius.common@ plugin). h4. Changes in @org.eclipse.sirius.ext.e3.ui@ * Added The classes @org.eclipse.sirius.ext.e3.ui.dialogs.FilteredTree@ and @org.eclipse.sirius.ext.e3.ui.dialogs.PatternFilter@ have been added in order to have the latest functionalites of @org.eclipse.ui.dialogs.FilteredTree@ with Eclipse Juno. h4. Changes in @org.eclipse.sirius.ext.emf.tx@ * Added The class @org.eclipse.sirius.ext.emf.tx.DelegatingValidateEditSupport@ has been added to be able to have a @ValidateEditSupport@ which delegate to an existing @ValidateEditSupport@. h4. Changes in @org.eclipse.sirius.eef.adapters@ This plug-in now requires the version 1.5.0 of @org.eclipse.emf.eef.runtime@ bundle. * Added The new class @org.eclipse.sirius.eef.components.SiriusAwarePropertiesEditingComponent@ can be used as root class of the generated EEF components to greatly improve performances when using both EEF properties views with Sirius representations. Refer to _Using the Extended Editing Framework with Sirius_ documentation for details. * ModifiedThe following packages are set to @x-internal:=true@ ** @org.eclipse.sirius.eef.actions@ ** @org.eclipse.sirius.eef.adapters@ h4. Changes in @org.eclipse.sirius.tests.junit.support@ * Added The method @org.eclipse.sirius.tests.support.api.EclipseTestsSupportHelper.setReadOnlyStatus(boolean, IResource...)@ has been added to change the read only status of the given resources. * Added The @warnings@ member variable has been added to @org.eclipse.sirius.tests.support.api.SiriusTestCase@ to allow the recording of warning logs. Methods @doesAWarningOccurs()@, @clearWarnings()@, @setWarningCatchActive(boolean)@, @isWarningCatchActive()@ and @getWarningLoggersMessage()@ have also been added to manage the @warnings@ member variable in the same way as the existing @errors@ member variable. * Added The method @org.eclipse.sirius.tests.support.api.SiriusTestCase.loadModeler(URI, EditingDomain)@ has been added to load a VSM resource and make the @Viewpoints@ it defines accessible via the @SiriusTestsCase.viewpoints@ field. * Added The class @org.eclipse.sirius.tests.support.api.ImageComposer@ has been added to the test API to do assertions on image decorators. * Added The enum @SiriusTestCase.ResourceURIType@ and the method @SiriusTestCase.toURI(final String, ResourceURIType)@ have been added to allow choosing the type of URI created (@platform:@ or @plugin:@). * Modified The @SiriusTestCase.genericSetUp(List, List, boolean, URI)@ method has been set to protected so that it can be called from concrete test cases. This method allows initializing session. * Moved The class @TreeItemLabelFontFormatQuery@ was moved into @org.eclipse.sirius.tests.support.api@ (from @org.eclipse.sirius.tests.swtbot.support.api.widget@), as it can be used in non-SWTBot tests.. * Deprecated The method @org.eclipse.sirius.tests.support.api.SiriusDiagramTestCase.setReadOnly(IFile)@ has been deprecated, @org.eclipse.sirius.tests.support.api.EclipseTestsSupportHelper.setReadOnlyStatus(boolean, IResource...)@ can be used instead. h4. Changes in @org.eclipse.sirius.tests.swtbot.support@ * Added The @warnings@ member variable has been added to @org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase@ to allow the recording of warning logs. Methods @doesAWarningOccurs()@, @setWarningCatchActive(boolean)@, @isWarningCatchActive()@ and @getWarningLoggersMessage()@ have also been added to manage the @warnings@ member variable in the same way as the existing @errors@ member variable. * Added The method @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor.getDRepresentation()@ has been added to return the @org.eclipse.sirius.viewpoint.DRepresentation@ instance available in the diagram editor. * Modified The method @org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase.getSectionButton()@ now only takes the button's tooltip instead of a numerical position index and the tooltip. * Modified The methods @org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusHelper.selectPropertyTabItem(String)@ now returns a @boolean@ that is true when the property tab item is found, false otherwise. * Moved The class @TreeItemLabelFontFormatQuery@ was moved into @org.eclipse.sirius.tests.support.api@ (from @org.eclipse.sirius.tests.swtbot.support.api.widget@), as it can be used in non-SWTBot tests.. * Deprecated The methods @org.eclipse.sirius.tests.swtbot.support.api.business.UIPerspective.deleteProject(UIProject)@ and @org.eclipse.sirius.tests.swtbot.support.api.business.UIPerspective.deleteProject(String)@ have been deprecated, @org.eclipse.sirius.tests.support.api.EclipseTestsSupportHelper.setReadOnlyStatus(boolean, IResource...)@ can be used instead. h4. New plug-ins The following UI plug-ins has been added: * Added @org.eclipse.sirius.ui.ext@ * Added @org.eclipse.sirius.common.ui.ext@ * Added @org.eclipse.sirius.diagram.ui.ext@ * Added @org.eclipse.sirius.table.ui.ext@ * Added @org.eclipse.sirius.tree.ui.ext@ These plug-ins own the extension definitions related to perspective, views, newWizard, menus, contextual menus, editors and preference pages that were previously in @org.eclipse.sirius.xxx.ui@ plug-ins. Now, downstream projects can define features that do not contain @org.eclipse.sirius.xxx.ui.ext@, allowing them not have all that functionalities they may not want.