Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2016-05-20 13:12:22 +0000
committerMaxime Porhel2016-08-16 15:23:18 +0000
commitf708d10ea54c417ca6861769ad16fc018750ab72 (patch)
tree2f7ef53373e668bdd2be9ae63241106305600d9c /plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout
parente2a6d3e6132d47e91c5c0b39a2613a32d51a112c (diff)
downloadorg.eclipse.sirius-f708d10ea54c417ca6861769ad16fc018750ab72.tar.gz
org.eclipse.sirius-f708d10ea54c417ca6861769ad16fc018750ab72.tar.xz
org.eclipse.sirius-f708d10ea54c417ca6861769ad16fc018750ab72.zip
[cleanup] Avoid potential IllegalArgumentException
During diagram initialization and first vertical layout pass, regarding the VSM configuration, lifelines might not be correctly sized yet to respect the default minimum gaps, causing an invalid Range creation during layout preparation. Change-Id: Ic818e2ce2af56262e2bc9d065f53e757ea22a34e Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
Diffstat (limited to 'plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout')
-rw-r--r--plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout/vertical/SequenceVerticalLayout.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout/vertical/SequenceVerticalLayout.java b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout/vertical/SequenceVerticalLayout.java
index 1e15ce0a83..1480fa3da1 100644
--- a/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout/vertical/SequenceVerticalLayout.java
+++ b/plugins/org.eclipse.sirius.diagram.sequence/src/org/eclipse/sirius/diagram/sequence/business/internal/layout/vertical/SequenceVerticalLayout.java
@@ -119,6 +119,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
* A function to compute the sequence events corresponding to an event end.
*/
protected final Function<EventEnd, Collection<ISequenceEvent>> eventEndToSequenceEvents = new Function<EventEnd, Collection<ISequenceEvent>>() {
+ @Override
public Collection<ISequenceEvent> apply(EventEnd from) {
return endToISequencEvents.get(from);
}
@@ -134,6 +135,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
* A function to get the instance role height of a lifeline.
*/
private final Function<Lifeline, Integer> instanceRoleHeight = new Function<Lifeline, Integer>() {
+ @Override
public Integer apply(Lifeline from) {
InstanceRole irep = from.getInstanceRole();
if (irep != null) {
@@ -150,6 +152,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
private final Ordering<Lifeline> heightOrdering = Ordering.natural().onResultOf(instanceRoleHeight);
private final Function<ISequenceEvent, Option<Range>> oldRangeFunction = new Function<ISequenceEvent, Option<Range>>() {
+ @Override
public Option<Range> apply(ISequenceEvent from) {
Range range = oldLayoutData.get(from);
if (range == null) {
@@ -160,6 +163,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
};
private final Function<ISequenceEvent, Option<Range>> oldFlaggedRange = new Function<ISequenceEvent, Option<Range>>() {
+ @Override
public Option<Range> apply(ISequenceEvent from) {
Rectangle rect = oldFlaggedLayoutData.get(from);
Range result = null;
@@ -807,7 +811,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
int minTimeBounds = getMinTimeBounds();
int startTime = minTimeBounds;
int endTime = getMaxTimeBounds(pack, minTimeBounds) - LayoutConstants.TIME_STOP_OFFSET;
- this.timeRange = new Range(startTime, endTime);
+ this.timeRange = new Range(startTime, Math.max(startTime, endTime));
}
private int getMaxTimeBounds(boolean pack, int minTimeBounds) {
@@ -818,6 +822,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
// Avoid to handle lifelines to move up for max computation.
Predicate<Lifeline> isMaxRangeCandidate = new Predicate<Lifeline>() {
+ @Override
public boolean apply(Lifeline input) {
InstanceRole irep = input.getInstanceRole();
if (irep != null) {
@@ -859,6 +864,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
int endOfLifeVsize = 0;
List<DNode> endOfLifes = Lists.newArrayList(Iterables.filter(node.getOwnedBorderedNodes(), new Predicate<DNode>() {
+ @Override
public boolean apply(DNode input) {
return input.isVisible() && EndOfLife.viewpointElementPredicate().apply(input);
}
@@ -887,6 +893,7 @@ public class SequenceVerticalLayout extends AbstractSequenceOrderingLayout<ISequ
// Avoid to handle lifelines to move up for min computation.
Predicate<Lifeline> isMinRangeCandidate = new Predicate<Lifeline>() {
+ @Override
public boolean apply(Lifeline input) {
InstanceRole irep = input.getInstanceRole();
if (irep != null) {

Back to the top