[425561] Wire a DanglingRefRemoval trigger

With this commit removing dangling reference does not need
to be explicit anymore and always use the special logic needed
for some references.

The dangling reference to ignore predicates have been moved to the
DanglingRefRemovalTrigger and reused in the other classes.

An additional method has been added in RemoveDanglingReferences to
manage the resource case.

Change-Id: I624fe0298cf2fc245fd2c6c3828784e5954b0c19
[425561] Remove old DanglingReference Management code

Remove all the explicit calls to RemoveDangling*Tasks as it is now
handled underneath.
Remove the explicit calls to RemoveDanglingReferences when in the
context of a session with its SessionEventBroker and the
DanglingRefRemovalTrigger.

Change-Id: I0eeab76ce3bc0eb9a3913f58c0e5e936c5205d5a
[425561] Remove dead code

The AirNoteAttachmentEditPolicy was created to add a specific dangling
reference removal logic. It has been removed after the introduction of
the DanglingRefRemovalTrigger. 

The policy now brings no additonal value and can be removed.

So it is not used and can be removed.

Change-Id: I578c0d7127a7d14208316e9cfd62f53dc13001a5
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[425561] Add consitency in delete behaviors after dangling improvements

Correcly do the delete table/tree element without delete tool. It was
done by the "auto refresh" even in manual refresh mode. A next step will
be to correcly handle the manual refresh in
AbstractCommandFactory.addRefreshTask to be consistent with the
AbstractCommandBuilder. AbstractCommandFactory handle the tool==null
case as a force refresh whereas the command builder do not set the force
refresh when there is no tool.

Change-Id: I13a583d32758ff53c8a88de38fdcee8291c56fe9
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[425561] Change the RefreshEditorsPrecommitListener into a
ModelChangeTrigger

This allows to correctly manage the order/sequence of precommit actions:
remove dangling refs, refresh opened editors, refresh the GMF models,
compute the filter applications, layout the sequence diagram,...

The old RemoveDanglingReferenceTasks were done during the command, then
the RefreshEditorPrecommitListner (which was created before the
SessionEventBroker) did a refresh when needed and then the
SessionEventBroker was launching its ModelChangeTrigger precommit
commands. 

We could init the RemoveDanglingRefTrigger after the
addRefreshEditorsListener() call, during the session opening , but then
the remove dangling ref will be done after the refresh (it could also
introduce several refresh, removedangling, sequence layout, refresh, ..
cycles). If we init the trigger before, all model trigger actions would
be done before the refresh, then the refresh will be done and then the
model change trigger will done a second time. This have a major impact
on Sequence where the layout will be done before and after the refresh
with unwanted effects.

The clean solution is to transform the RefreshEditorsPrecommitListener
into a model change trigger with a priority between the
DanglingRefRemovalTrigger and the GMF canonical trigger.


Change-Id: Iad0c727c987f3cf2d6b845091474e88d69392b1e
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[425561] Udpate CheckSelectedCondition

This commits add the possibility to create a selection condition to
check a mutliple selection.

Change-Id: Iac3311eda1d7c6a2465ab397f7071c451d1bf991
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[425561] Improve the detachment/attachment predicates

It is possible to detach an object by setting the containment feature to
null.

Change-Id: Ic82da3f91cb3531c831660d605095fd851c65236
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[425561] Release note update

Change-Id: I45a5ca39c950ec49497220f86906e567552d941e
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[cleanup] Correctly compute or retrieve the current DDiagram

Change-Id: I2316a7223215e706762ab698b5d7316c6f2a6ccc
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[428322] Enable the dynamic tabbar on Luna

Enable the dynamic tabbar (with visibility conditions and extensions) on
Luna and keep the simple fixed tabbar without contibutions for previous
eclipse 4.x versions (juno and kepler).

Change-Id: I70c7d30b6771f836d6b42e196fab6d044e94903a
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
[428322] Update the test api to handle the dynamic tabbar and luna

Add several methods to check the current platform during
tests. It adds a method to check if the tabbar is expected to be
dynamic.

Change-Id: I3ee4cc78d9cd885bb90fc55981139f4d6b9754b6
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
Merge changes I2316a722,I45a5ca39,Ic82da3f9,Iac3311ed,Iad0c727c,I13a583d3,I578c0d71,I0eeab76c,I624fe029

* changes:
  [cleanup] Correctly compute or retrieve the current DDiagram
  [425561] Release note update
  [425561] Improve the detachment/attachment predicates
  [425561] Udpate CheckSelectedCondition
  [425561] Change the RefreshEditorsPrecommitListener into a ModelChangeTrigger
  [425561] Add consitency in delete behaviors after dangling improvements
  [425561] Remove dead code
  [425561] Remove old DanglingReference Management code
  [425561] Wire a DanglingRefRemoval trigger