ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / uml2sd / core / Frame.java
index 6dd12f1ba594a2702cd6e76c9fdbb8a45b7f447e..0c653a5ca7bb25da885d8af29bd804b89653ce85 100755 (executable)
@@ -1,16 +1,15 @@
 /**********************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * Copyright (c) 2011, 2012 Ericsson.
- * 
+ * Copyright (c) 2005, 2013 IBM Corporation, Ericsson
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- * Bernd Hufmann - Updated for TMF
+ *
+ * Contributors:
+ *     IBM - Initial API and implementation
+ *     Bernd Hufmann - Updated for TMF
  **********************************************************************/
+
 package org.eclipse.linuxtools.tmf.ui.views.uml2sd.core;
 
 import java.util.ArrayList;
@@ -18,7 +17,7 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
+import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.drawings.IColor;
 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.drawings.IGC;
 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.preferences.SDViewPref;
@@ -29,10 +28,10 @@ import org.eclipse.linuxtools.tmf.ui.views.uml2sd.util.TimeEventComparator;
  * For instance, only one frame can be drawn in the View.<br>
  * Lifelines, Messages and Stop which are supposed to represent a Sequence diagram are drawn in a Frame.<br>
  * Only the graph node added to their representing list will be drawn.
- * 
+ *
  * The lifelines are appended along the X axsis when added in a frame.<br>
  * The syncMessages are ordered along the Y axsis depending on the event occurrence they are attached to.<br>
- * 
+ *
  * @see org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.Lifeline Lifeline for more event occurence details
  * @author sveyrier
  * @version 1.0
@@ -45,27 +44,27 @@ public class Frame extends BasicFrame {
     /**
      * The lifeline that is current highlighted.
      */
-    protected Lifeline fHighlightLifeline = null;
+    private Lifeline fHighlightLifeline = null;
     /**
      * The value of the start event.
      */
-    protected int fStartEvent = 0;
+    private int fStartEvent = 0;
     /**
-     * The nubmer of events in the frame.
+     * The number of events in the frame.
      */
-    protected int fNbEvent = 0;
+    private int fNbEvent = 0;
     /**
      * The color for highlighting.
      */
-    protected IColor fHighlightColor = null;
+    private IColor fHighlightColor = null;
     /**
      * The list of time events of the corresponding execution occurrences.
      */
-    protected List<SDTimeEvent> fExecutionOccurrencesWithTime;
+    private List<SDTimeEvent> fExecutionOccurrencesWithTime;
     /**
      * The Array of lifeline categories.
      */
-    protected LifelineCategories[] fLifelineCategories = null;
+    private LifelineCategories[] fLifelineCategories = null;
 
     // ------------------------------------------------------------------------
     // Methods
@@ -74,19 +73,19 @@ public class Frame extends BasicFrame {
     /**
      * Returns a list of all lifelines known by this frame. Known lifelines are the only one which can be displayed on
      * screen.
-     * 
+     *
      * @return the lifelines list
      */
     protected List<GraphNode> getLifelines() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return null;
-        } 
-        return (List<GraphNode>) fNodes.get(Lifeline.LIFELINE_TAG);
+        }
+        return getNodeMap().get(Lifeline.LIFELINE_TAG);
     }
 
     /**
      * Returns the number of lifelines stored in the frame
-     * 
+     *
      * @return the number of lifelines
      */
     public int lifeLinesCount() {
@@ -99,7 +98,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the lifeline at the given index in the lifelines array
-     * 
+     *
      * @param index the position in the lifeline array
      * @return the lifeline or <code>null</code>
      */
@@ -113,31 +112,31 @@ public class Frame extends BasicFrame {
     /**
      * Returns a list of syncMessages known by this frame. Known syncMessages are the only on which can be displayed on
      * screen
-     * 
+     *
      * @return the syncMessages list
      */
     protected List<GraphNode> getSyncMessages() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return null;
-        } 
-        return (List<GraphNode>) fNodes.get(SyncMessage.SYNC_MESS_TAG);
+        }
+        return getNodeMap().get(SyncMessage.SYNC_MESS_TAG);
     }
 
     /**
      * Returns the number of syncMessages stored in the frame
-     * 
+     *
      * @return the number of syncMessage
      */
     public int syncMessageCount() {
         if (getSyncMessages() != null) {
             return getSyncMessages().size();
-        } 
+        }
         return 0;
     }
 
     /**
      * Returns the syncMessage at the given index in the syncMessages array
-     * 
+     *
      * @param index the position in the syncMessages array
      * @return the syncMessage or <code>null</code>
      */
@@ -151,19 +150,19 @@ public class Frame extends BasicFrame {
     /**
      * Returns a list of asyncMessages known by this frame. Known asyncMessages are the only on which can be displayed
      * on screen
-     * 
+     *
      * @return the asyncMessages list or <code>null</code>
      */
     protected List<GraphNode> getAsyncMessages() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return null;
         }
-        return (List<GraphNode>) fNodes.get(AsyncMessage.ASYNC_MESS_TAG);
+        return getNodeMap().get(AsyncMessage.ASYNC_MESS_TAG);
     }
 
     /**
      * Returns the number of asyncMessage stored in the frame
-     * 
+     *
      * @return the number of asyncMessage
      */
     public int asyncMessageCount() {
@@ -175,7 +174,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the asyncMessage at the given index in the asyncMessage array
-     * 
+     *
      * @param index the position in the asyncMessage array
      * @return the asyncMessage or <code>null</code>
      */
@@ -189,19 +188,19 @@ public class Frame extends BasicFrame {
     /**
      * Returns a list of syncMessages return known by this frame. Known syncMessages return are the only on which can be
      * displayed on screen
-     * 
+     *
      * @return the syncMessages return list or <code>null</code>
      */
     protected List<GraphNode> getSyncMessagesReturn() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return null;
         }
-        return (List<GraphNode>) fNodes.get(SyncMessageReturn.SYNC_MESS_RET_TAG);
+        return getNodeMap().get(SyncMessageReturn.SYNC_MESS_RET_TAG);
     }
 
     /**
      * Returns the number of syncMessageReturn stored in the frame
-     * 
+     *
      * @return the number of syncMessageReturn
      */
     public int syncMessageReturnCount() {
@@ -213,7 +212,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the syncMessageReturn at the given index in the syncMessageReturn array
-     * 
+     *
      * @param index the position in the syncMessageReturn array
      * @return the syncMessageReturn or <code>null</code>
      */
@@ -227,19 +226,19 @@ public class Frame extends BasicFrame {
     /**
      * Returns a list of asyncMessageRetun known by this frame. Known asyncMessageRetun are the only on which can be
      * displayed on screen
-     * 
+     *
      * @return the asyncMessageRetun list or <code>null</code>
      */
     protected List<GraphNode> getAsyncMessagesReturn() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return null;
         }
-        return (List<GraphNode>) fNodes.get(AsyncMessageReturn.ASYNC_MESS_RET_TAG);
+        return getNodeMap().get(AsyncMessageReturn.ASYNC_MESS_RET_TAG);
     }
 
     /**
      * Returns the number of asyncMessageReturn stored in the frame
-     * 
+     *
      * @return the number of asyncMessageReturn
      */
     public int asyncMessageReturnCount() {
@@ -251,7 +250,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the asyncMessageReturn at the given index in the asyncMessageReturn array
-     * 
+     *
      * @param index the position in the asyncMessageReturn array
      * @return the asyncMessageReturn or <code>null</code>
      */
@@ -265,11 +264,11 @@ public class Frame extends BasicFrame {
     /**
      * Adds a lifeline to the frame lifelines list. The lifeline X drawing order depends on the lifeline addition order
      * into the frame lifelines list.
-     * 
+     *
      * @param lifeline the lifeline to add
      */
     public void addLifeLine(Lifeline lifeline) {
-        fComputeMinMax = true;
+        setComputeMinMax(true);
         if (lifeline == null) {
             return;
         }
@@ -279,7 +278,7 @@ public class Frame extends BasicFrame {
         // and set the lifeline drawing order
         lifeline.setIndex(getNewHorizontalIndex());
         if (lifeline.hasTimeInfo()) {
-            fHasTimeInfo = true;
+            setHasTimeInfo(true);
         }
         // add the lifeline to the lifelines list
         addNode(lifeline);
@@ -287,77 +286,77 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the first visible lifeline drawn in the view
-     * 
+     *
      * @return the first visible lifeline index
      */
     public int getFirstVisibleLifeline() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return 0;
-        } else if (fIndexes.get(Lifeline.LIFELINE_TAG) != null) {
-            return ((Integer) fIndexes.get(Lifeline.LIFELINE_TAG)).intValue();
+        } else if (getIndexes().get(Lifeline.LIFELINE_TAG) != null) {
+            return getIndexes().get(Lifeline.LIFELINE_TAG).intValue();
         }
         return 0;
     }
 
     /**
      * Returns the first visible synchronous message drawn in the view
-     * 
+     *
      * @return the first visible synchronous message index
      */
     public int getFirstVisibleSyncMessage() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return 0;
-        } else if (fIndexes.get(SyncMessage.SYNC_MESS_TAG) != null) {
-            return ((Integer) fIndexes.get(SyncMessage.SYNC_MESS_TAG)).intValue();
+        } else if (getIndexes().get(SyncMessage.SYNC_MESS_TAG) != null) {
+            return getIndexes().get(SyncMessage.SYNC_MESS_TAG).intValue();
         }
         return 0;
     }
 
     /**
      * Returns the first visible synchronous message return drawn in the view
-     * 
+     *
      * @return the first visible synchronous message return index
      */
     public int getFirstVisibleSyncMessageReturn() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return 0;
-        } else if (fIndexes.get(SyncMessageReturn.SYNC_MESS_RET_TAG) != null) {
-            return ((Integer) fIndexes.get(SyncMessageReturn.SYNC_MESS_RET_TAG)).intValue();
+        } else if (getIndexes().get(SyncMessageReturn.SYNC_MESS_RET_TAG) != null) {
+            return getIndexes().get(SyncMessageReturn.SYNC_MESS_RET_TAG).intValue();
         }
         return 0;
     }
 
     /**
      * Returns the first visible synchronous message drawn in the view
-     * 
+     *
      * @return the first visible synchronous message index
      */
     public int getFirstVisibleAsyncMessage() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return 0;
-        } else if (fIndexes.get(AsyncMessage.ASYNC_MESS_TAG) != null) {
-            return ((Integer) fIndexes.get(AsyncMessage.ASYNC_MESS_TAG)).intValue();
+        } else if (getIndexes().get(AsyncMessage.ASYNC_MESS_TAG) != null) {
+            return getIndexes().get(AsyncMessage.ASYNC_MESS_TAG).intValue();
         }
         return 0;
     }
 
     /**
      * Returns the first visible synchronous message return drawn in the view
-     * 
+     *
      * @return the first visible synchronous message return index
      */
     public int getFirstVisibleAsyncMessageReturn() {
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return 0;
-        } else if (fIndexes.get(AsyncMessageReturn.ASYNC_MESS_RET_TAG) != null) {
-            return ((Integer) fIndexes.get(AsyncMessageReturn.ASYNC_MESS_RET_TAG)).intValue();
+        } else if (getIndexes().get(AsyncMessageReturn.ASYNC_MESS_RET_TAG) != null) {
+            return getIndexes().get(AsyncMessageReturn.ASYNC_MESS_RET_TAG).intValue();
         }
         return 0;
     }
 
     /**
      * Returns the list of execution occurrences.
-     * 
+     *
      * @return the list of execution occurrences
      */
     public List<SDTimeEvent> getExecutionOccurrencesWithTime() {
@@ -366,9 +365,9 @@ public class Frame extends BasicFrame {
 
     /**
      * Inserts a lifeline after a given lifeline.
-     * 
+     *
      * @param toInsert A lifeline to insert
-     * @param after A lifelife the toInsert-lifeline will be inserted after.  
+     * @param after A lifelife the toInsert-lifeline will be inserted after.
      */
     public void insertLifelineAfter(Lifeline toInsert, Lifeline after) {
         if ((toInsert == null)) {
@@ -410,9 +409,11 @@ public class Frame extends BasicFrame {
 
     /**
      * Inserts a lifeline before a given lifeline.
-     * 
-     * @param toInsert A lifeline to insert
-     * @param after A lifelife the toInsert-lifeline will be inserted before.  
+     *
+     * @param toInsert
+     *            A lifeline to insert
+     * @param before
+     *            A lifeline the toInsert-lifeline will be inserted before.
      */
     public void insertLifelineBefore(Lifeline toInsert, Lifeline before) {
         if ((toInsert == null)) {
@@ -454,9 +455,9 @@ public class Frame extends BasicFrame {
 
     /**
      * Gets the closer life line to the given x-coordinate.
-     * 
+     *
      * @param x A x coordinate
-     * @return the closer lifeline 
+     * @return the closer lifeline
      */
     public Lifeline getCloserLifeline(int x) {
         int index = (x - Metrics.FRAME_H_MARGIN + Metrics.LIFELINE_H_MAGIN) / Metrics.swimmingLaneWidth() - 1;
@@ -488,7 +489,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Re-orders the given list of lifelines.
-     * 
+     *
      * @param list A list of lifelines to reorder.
      */
     public void reorder(List<?> list) {
@@ -516,10 +517,6 @@ public class Frame extends BasicFrame {
         fHighlightColor = null;
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.BasicFrame#computeMinMax()
-     */
     @Override
     protected void computeMinMax() {
         List<SDTimeEvent> timeArray = buildTimeArray();
@@ -527,12 +524,12 @@ public class Frame extends BasicFrame {
             return;
         }
         for (int i = 0; i < timeArray.size() - 1; i++) {
-            SDTimeEvent m1 = (SDTimeEvent) timeArray.get(i);
-            SDTimeEvent m2 = (SDTimeEvent) timeArray.get(i + 1);
+            SDTimeEvent m1 = timeArray.get(i);
+            SDTimeEvent m2 = timeArray.get(i + 1);
             if (SDViewPref.getInstance().excludeExternalTime() && ((m1.getGraphNode() instanceof BaseMessage) && (m2.getGraphNode() instanceof BaseMessage))) {
                 BaseMessage mes1 = (BaseMessage) m1.getGraphNode();
                 BaseMessage mes2 = (BaseMessage) m2.getGraphNode();
-                if ((mes2.fStartLifeline == null) || (mes1.fEndLifeline == null)) {
+                if ((mes2.getStartLifeline() == null) || (mes1.getEndLifeline() == null)) {
                     continue;
                 }
             }
@@ -545,10 +542,11 @@ public class Frame extends BasicFrame {
      * Find the two graph nodes that are closest to this date, one just earlier, second just later. If date is before
      * any graph node, bounds[0] is null and bounds[1] is the earliest. If date is after any graph node, bounds[1] is
      * null and bounds[0] is the latest.
-     * 
+     *
      * @param dateToFind date to be found
      * @param bounds a two items array that will receive bounds if found
      * @return true if both bounds not null
+     * @since 2.0
      */
     public boolean findDateBounds(ITmfTimestamp dateToFind, ITimeRange bounds[]) {
         if (hasTimeInfo()) {
@@ -561,42 +559,24 @@ public class Frame extends BasicFrame {
             bounds[0] = null;
             bounds[1] = null;
             for (int i = 0; i < timeArray.size(); i++) {
-                SDTimeEvent m = (SDTimeEvent) timeArray.get(i);
+                SDTimeEvent m = timeArray.get(i);
                 if (m.getTime().compareTo(dateToFind, true) > 0) {
                     bounds[1] = m.getGraphNode();
                     if (i > 0) {
-                        bounds[0] = ((SDTimeEvent) timeArray.get(i - 1)).getGraphNode();
+                        bounds[0] = timeArray.get(i - 1).getGraphNode();
                         return true;
                     }
                     return false;
                 }
             }
-            bounds[0] = ((SDTimeEvent) timeArray.get(timeArray.size() - 1)).getGraphNode();
+            bounds[0] = timeArray.get(timeArray.size() - 1).getGraphNode();
         }
         return false;
     }
 
-    /**
-     * Set whether time information is available or not
-     * 
-     * @param value <code>true</code> for has time information else <code>false</code>
-     */
-    protected void setHasTimeInfo(boolean value) {
-        fHasTimeInfo = value;
-    }
-
-    /**
-     * Returns whether frame has time info or not.
-     * 
-     * @return <code>true</code> whether frame has time info else <code>false</code>
-     */
-    public boolean hasTimeInfo() {
-        return fHasTimeInfo;
-    }
-
     /**
      * Highlights the time compression.
-     * 
+     *
      * @param lifeline A lifeline to highlight
      * @param startEvent A start event number
      * @param nbEvent A number of events
@@ -611,7 +591,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Set the lifeline categories which will be use during the lifelines creation
-     * 
+     *
      * @see Lifeline#setCategory(int)
      * @param categories the lifeline categories array
      */
@@ -621,11 +601,11 @@ public class Frame extends BasicFrame {
 
     /**
      * Returns the lifeline categories array set for the this frame
-     * 
+     *
      * @return the lifeline categories array or null if not set
      */
     public LifelineCategories[] getLifelineCategories() {
-        return  Arrays.copyOf(fLifelineCategories, fLifelineCategories.length); 
+        return  Arrays.copyOf(fLifelineCategories, fLifelineCategories.length);
     }
 
     /**
@@ -636,24 +616,20 @@ public class Frame extends BasicFrame {
      * - asynchronous syncMessages return<br>
      * For drawing performance reason, it is recommended to add synchronous syncMessages in the same order they should
      * appear along the Y axis in the Frame.
-     * 
+     *
      * @param message the message to add
      */
     public void addMessage(BaseMessage message) {
         addNode(message);
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.BasicFrame#draw(org.eclipse.linuxtools.tmf.ui.views.uml2sd.drawings.IGC)
-     */
     @Override
     public void draw(IGC context) {
         drawFrame(context);
-        if (!fHasChilden) {
+        if (!hasChildren()) {
             return;
         }
-        
+
         if (fHighlightLifeline != null) {
             IColor backupColor = context.getBackground();
             context.setBackground(SDViewPref.getInstance().getTimeCompressionSelectionColor());
@@ -666,12 +642,12 @@ public class Frame extends BasicFrame {
         if (Metrics.swimmingLaneWidth() * context.getZoom() < Metrics.LIFELINE_SIGNIFICANT_HSPACING) {
             lifelineArryStep = Math.round(Metrics.LIFELINE_SIGNIFICANT_HSPACING / (Metrics.swimmingLaneWidth() * context.getZoom()));
         }
-        if (fIndexes.size() == 0) {
+        if (getIndexes().size() == 0) {
             return;
         }
-        int lifeLineDrawIndex = ((Integer) fIndexes.get(Lifeline.LIFELINE_TAG)).intValue();
-        for (int i = lifeLineDrawIndex; i < ((List<GraphNode>) fNodes.get(Lifeline.LIFELINE_TAG)).size(); i = i + lifelineArryStep) {
-            Lifeline toDraw = (Lifeline) ((List<GraphNode>) fNodes.get(Lifeline.LIFELINE_TAG)).get(i);
+        int lifeLineDrawIndex = getIndexes().get(Lifeline.LIFELINE_TAG).intValue();
+        for (int i = lifeLineDrawIndex; i < getNodeMap().get(Lifeline.LIFELINE_TAG).size(); i = i + lifelineArryStep) {
+            Lifeline toDraw = (Lifeline) getNodeMap().get(Lifeline.LIFELINE_TAG).get(i);
             if (toDraw.getX() - Metrics.LIFELINE_SPACING / 2 > context.getContentsX() + context.getVisibleWidth()) {
                 break;
             }
@@ -690,7 +666,7 @@ public class Frame extends BasicFrame {
                             BasicExecutionOccurrence exec = (BasicExecutionOccurrence) toDraw.getExecutions().get(index);
                             int tempEvent = fStartEvent;
                             for (int j = 0; j < fNbEvent; j++) {
-                                if (((tempEvent >= exec.fStartEventOccurrence) && (tempEvent <= exec.fEndEventOccurrence) && (tempEvent + 1 >= exec.fStartEventOccurrence) && (tempEvent + 1 <= exec.fEndEventOccurrence))) {
+                                if (((tempEvent >= exec.getStartOccurrence()) && (tempEvent <= exec.getEndOccurrence()) && (tempEvent + 1 >= exec.getStartOccurrence()) && (tempEvent + 1 <= exec.getEndOccurrence()))) {
                                     toDraw.highlightExecOccurrenceRegion(context, tempEvent, 1, SDViewPref.getInstance().getTimeCompressionSelectionColor());
                                 }
                                 tempEvent = tempEvent + 1;
@@ -707,22 +683,18 @@ public class Frame extends BasicFrame {
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.BasicFrame#buildTimeArray()
-     */
     @Override
     protected List<SDTimeEvent> buildTimeArray() {
 
-        if (!fHasChilden) {
-            return new ArrayList<SDTimeEvent>();
+        if (!hasChildren()) {
+            return new ArrayList<>();
         }
 
         List<SDTimeEvent> timeArray = super.buildTimeArray();
         fExecutionOccurrencesWithTime = null;
         if (getLifelines() != null) {
-            for (int i = 0; i < ((List<GraphNode>) fNodes.get(Lifeline.LIFELINE_TAG)).size(); i++) {
-                Lifeline lifeline = (Lifeline) ((List<GraphNode>) fNodes.get(Lifeline.LIFELINE_TAG)).get(i);
+            for (int i = 0; i < getNodeMap().get(Lifeline.LIFELINE_TAG).size(); i++) {
+                Lifeline lifeline = (Lifeline) getNodeMap().get(Lifeline.LIFELINE_TAG).get(i);
                 if (lifeline.hasTimeInfo() && lifeline.getExecutions() != null) {
                     for (Iterator<GraphNode> j = lifeline.getExecutions().iterator(); j.hasNext();) {
                         GraphNode o = j.next();
@@ -734,7 +706,7 @@ public class Frame extends BasicFrame {
                                 SDTimeEvent f = new SDTimeEvent(time, event, eo);
                                 timeArray.add(f);
                                 if (fExecutionOccurrencesWithTime == null) {
-                                    fExecutionOccurrencesWithTime = new ArrayList<SDTimeEvent>();
+                                    fExecutionOccurrencesWithTime = new ArrayList<>();
                                 }
                                 fExecutionOccurrencesWithTime.add(f);
                                 event = eo.getEndOccurrence();
@@ -762,7 +734,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get the closer leaving message.
-     * 
+     *
      * @param lifeline A lifeline reference
      * @param message A message reference
      * @param list A list of graph nodes
@@ -780,7 +752,7 @@ public class Frame extends BasicFrame {
                 event = message.getEventOccurrence();
             }
             for (int i = 0; i < list.size(); i++) {
-                GraphNode node = (GraphNode) list.get(i);
+                GraphNode node = list.get(i);
                 if (node instanceof SyncMessage) {
                     SyncMessage syncNode = (SyncMessage) node;
                     if ((syncNode.getEventOccurrence() > event) && (syncNode.getStartLifeline() == lifeline) && !syncNode.isSameAs(message)) {
@@ -803,7 +775,7 @@ public class Frame extends BasicFrame {
                 }
             }
             for (int i = list.size() - 1; i >= 0; i--) {
-                GraphNode node = (GraphNode) list.get(i);
+                GraphNode node = list.get(i);
                 if (node instanceof SyncMessage) {
                     SyncMessage syncNode = (SyncMessage) node;
                     if ((syncNode.getEventOccurrence() < event) && (syncNode.getStartLifeline() == lifeline) && !syncNode.isSameAs(message)) {
@@ -820,10 +792,10 @@ public class Frame extends BasicFrame {
         return null;
     }
 
-    
+
     /**
      * Get the closer entering message.
-     * 
+     *
      * @param lifeline A lifeline reference
      * @param message A message reference
      * @param list A list of graph nodes
@@ -840,7 +812,7 @@ public class Frame extends BasicFrame {
                 event = message.getEventOccurrence();
             }
             for (int i = 0; i < list.size(); i++) {
-                GraphNode node = (GraphNode) list.get(i);
+                GraphNode node = list.get(i);
                 if (node instanceof SyncMessage) {
                     SyncMessage syncNode = (SyncMessage) node;
                     if ((syncNode.getEventOccurrence() > event) && (syncNode.getEndLifeline() == lifeline) && !syncNode.isSameAs(message)) {
@@ -855,14 +827,15 @@ public class Frame extends BasicFrame {
             }
         } else {
             int event = getMaxEventOccurrence();
-            if (message != null)
+            if (message != null) {
                 if (message instanceof AsyncMessage) {
                     event = ((AsyncMessage) message).getStartOccurrence();
                 } else {
                     event = message.getEventOccurrence();
                 }
+            }
             for (int i = list.size() - 1; i >= 0; i--) {
-                GraphNode node = (GraphNode) list.get(i);
+                GraphNode node = list.get(i);
                 if (node instanceof SyncMessage) {
                     SyncMessage syncNode = (SyncMessage) node;
                     if ((syncNode.getEventOccurrence() < event) && (syncNode.getEndLifeline() == lifeline) && !syncNode.isSameAs(message)) {
@@ -881,7 +854,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get distance of given event from given graph node.
-     * 
+     *
      * @param node A graph node reference.
      * @param event A event number to check.
      * @return distance of event from graph node.
@@ -904,7 +877,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get node from 2 given nodes that is close to event.
-     * 
+     *
      * @param node1 A first graph node
      * @param node2 A second graph node
      * @param event A event to check.
@@ -914,20 +887,19 @@ public class Frame extends BasicFrame {
         if ((node1 != null) && (node2 != null)) {
             if (distanceFromEvent(node1, event) < distanceFromEvent(node2, event)) {
                 return node1;
-            } else {
-                return node2;
             }
+            return node2;
         } else if (node1 != null) {
             return node1;
         } else if (node2 != null) {
             return node2;
-        } 
+        }
         return null;
     }
 
     /**
      * Get called message based on given start message.
-     * 
+     *
      * @param startMessage A start message to check.
      * @return called message (graph node) or <code>null</code>
      */
@@ -936,10 +908,10 @@ public class Frame extends BasicFrame {
         GraphNode result = null;
         Lifeline lifeline = null;
         if (startMessage != null) {
-            event = ((BaseMessage) startMessage).getEventOccurrence();
-            lifeline = ((BaseMessage) startMessage).getEndLifeline();
+            event = startMessage.getEventOccurrence();
+            lifeline = startMessage.getEndLifeline();
             if (lifeline == null) {
-                lifeline = ((BaseMessage) startMessage).getStartLifeline();
+                lifeline = startMessage.getStartLifeline();
             }
         }
         if (lifeline == null) {
@@ -957,7 +929,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get caller message based on given start message.
-     * 
+     *
      * @param startMessage A start message to check.
      * @return called message (graph node) or <code>null</code>
      */
@@ -966,10 +938,10 @@ public class Frame extends BasicFrame {
         GraphNode result = null;
         Lifeline lifeline = null;
         if (startMessage != null) {
-            event = ((BaseMessage) startMessage).getEventOccurrence();
-            lifeline = ((BaseMessage) startMessage).getStartLifeline();
+            event = startMessage.getEventOccurrence();
+            lifeline = startMessage.getStartLifeline();
             if (lifeline == null) {
-                lifeline = ((BaseMessage) startMessage).getEndLifeline();
+                lifeline = startMessage.getEndLifeline();
             }
         }
         if (lifeline == null) {
@@ -987,7 +959,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get next lifeline based on given message.
-     * 
+     *
      * @param lifeline A lifeline reference
      * @param startMessage A start message to check
      * @return next lifeline or <code>null</code>
@@ -995,7 +967,7 @@ public class Frame extends BasicFrame {
     public GraphNode getNextLifelineMessage(Lifeline lifeline, BaseMessage startMessage) {
         int event = 0;
         if (startMessage != null) {
-            event = ((BaseMessage) startMessage).getEventOccurrence();
+            event = startMessage.getEventOccurrence();
         }
         if (lifeline == null) {
             return null;
@@ -1012,19 +984,20 @@ public class Frame extends BasicFrame {
 
     /**
      * Get previous lifeline based on given message.
-     * 
+     *
      * @param lifeline A lifeline reference
      * @param startMessage A start message to check.
      * @return previous lifeline or <code>null</code>
      */
     public GraphNode getPrevLifelineMessage(Lifeline lifeline, BaseMessage startMessage) {
         int event = getMaxEventOccurrence();
-        if (startMessage != null)
+        if (startMessage != null) {
             if (startMessage instanceof AsyncMessage) {
                 event = ((AsyncMessage) startMessage).getStartOccurrence();
             } else {
                 event = startMessage.getEventOccurrence();
             }
+        }
         if (lifeline == null) {
             return null;
         }
@@ -1037,10 +1010,10 @@ public class Frame extends BasicFrame {
         result = getCloserToEvent(result, messageReturn, event);
         return result;
     }
-    
+
     /**
      * Get the first execution occurrence.
-     * 
+     *
      * @param lifeline A lifeline reference
      * @return the first execution occurrence of lifeline or <code>null</code>.
      */
@@ -1063,10 +1036,10 @@ public class Frame extends BasicFrame {
         }
         return result;
     }
-    
+
     /**
      * Get the previous execution occurrence relative to a given execution occurrence.
-     * 
+     *
      * @param exec A execution occurrence reference.
      * @return the previous execution occurrence of lifeline or <code>null</code>.
      */
@@ -1085,10 +1058,10 @@ public class Frame extends BasicFrame {
         BasicExecutionOccurrence result = null;
         for (int i = 0; i < list.size(); i++) {
             BasicExecutionOccurrence e = (BasicExecutionOccurrence) list.get(i);
-            if ((e.getStartOccurrence() < exec.fStartEventOccurrence) && (result == null)) {
+            if ((e.getStartOccurrence() < exec.getStartOccurrence()) && (result == null)) {
                 result = e;
             }
-            if ((e.getStartOccurrence() < exec.fStartEventOccurrence) && (e.getStartOccurrence() >= result.getEndOccurrence())) {
+            if ((e.getStartOccurrence() < exec.getStartOccurrence()) && (result != null) && (e.getStartOccurrence() >= result.getEndOccurrence())) {
                 result = e;
             }
         }
@@ -1097,7 +1070,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get the next execution occurrence relative to a given execution occurrence.
-     * 
+     *
      * @param exec A execution occurrence reference.
      * @return the next execution occurrence of lifeline or <code>null</code>.
      */
@@ -1116,10 +1089,10 @@ public class Frame extends BasicFrame {
         BasicExecutionOccurrence result = null;
         for (int i = 0; i < list.size(); i++) {
             BasicExecutionOccurrence e = (BasicExecutionOccurrence) list.get(i);
-            if ((e.getStartOccurrence() > exec.fStartEventOccurrence) && (result == null)) {
+            if ((e.getStartOccurrence() > exec.getStartOccurrence()) && (result == null)) {
                 result = e;
             }
-            if ((e.getStartOccurrence() > exec.fStartEventOccurrence) && (e.getStartOccurrence() <= result.getEndOccurrence())) {
+            if ((e.getStartOccurrence() > exec.getStartOccurrence()) && (result != null) && (e.getStartOccurrence() <= result.getEndOccurrence())) {
                 result = e;
             }
         }
@@ -1128,7 +1101,7 @@ public class Frame extends BasicFrame {
 
     /**
      * Get the last execution occurrence.
-     * 
+     *
      * @param lifeline A lifeline reference.
      * @return the last execution occurrence of lifeline or <code>null</code>.
      */
@@ -1152,4 +1125,91 @@ public class Frame extends BasicFrame {
         }
         return result;
     }
-}
+
+    /**
+     * @return highlighted life line if set else null.
+     * @since 2.0
+     */
+    protected Lifeline getHighlightLifeline() {
+        return fHighlightLifeline;
+    }
+
+    /**
+     * @return the start event value.
+     * @since 2.0
+     */
+    protected int getStartEvent() {
+        return fStartEvent;
+    }
+
+    /**
+     * Returns the number of events
+     *
+     * @return the number of events
+     * @since 2.0
+     */
+    protected int getNumberOfEvents() {
+        return fNbEvent;
+    }
+
+    /**
+     * Returns the highlight color.
+     * @return the highlight color
+     * @since 2.0
+     */
+    protected IColor getHighlightColor() {
+        return fHighlightColor;
+    }
+
+    /**
+     * Set the highlighted life line.
+     * @param lifeline
+     *          The highlighted life line if set else null
+     * @since 2.0
+     */
+    protected void setHighlightLifeline(Lifeline lifeline) {
+        fHighlightLifeline = lifeline;
+    }
+
+    /**
+     * Sets the start event value
+     * @param startEvent
+     *           the start event value.
+     * @since 2.0
+     */
+    protected void setStartEvent(int startEvent) {
+        fStartEvent = startEvent;
+    }
+
+    /**
+     * Sets the number of events
+     *
+     * @param nbEvents
+     *          The number of events
+     * @since 2.0
+     */
+    protected void setNumberOfEvents(int nbEvents) {
+        fNbEvent = nbEvents;
+    }
+
+    /**
+     * Sets the highlight color.
+     * @param color
+     *          the highlight color
+     * @since 2.0
+     */
+    protected void setHighlightColor(IColor color) {
+        fHighlightColor = color;
+    }
+
+    /**
+     * sets the list of execution occurrences.
+     *
+     * @param occurences
+     *          the list of execution occurrences
+     * @since 2.0
+     */
+    protected void setExecutionOccurrencesWithTime(List<SDTimeEvent> occurences) {
+        fExecutionOccurrencesWithTime = occurences;
+    }
+}
\ No newline at end of file
This page took 0.062986 seconds and 5 git commands to generate.