ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / uml2sd / core / BaseMessage.java
index 0e75899980e6371b5a040779fad858701f3c0dba..b35340b6ce7e0c5a3ec6ba0d0f277e395064a7a2 100755 (executable)
@@ -1,20 +1,21 @@
 /**********************************************************************
- * Copyright (c) 2005, 2008, 2011 IBM Corporation and others.
+ * 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
- * $Id: BaseMessage.java,v 1.3 2008/01/24 02:28:49 apnan Exp $
- * 
- * 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 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.drawings.ISDPreferences;
+import org.eclipse.linuxtools.tmf.ui.views.uml2sd.preferences.ISDPreferences;
+import org.eclipse.linuxtools.tmf.ui.views.uml2sd.preferences.SDViewPref;
 
 /**
  * The base UML2 syncMessages implementation.<br>
@@ -24,23 +25,32 @@ import org.eclipse.linuxtools.tmf.ui.views.uml2sd.drawings.ISDPreferences;
  * representations (like asynchronous syncMessages) will be responsible to define the missing second eventOccurrence
  * property.<br>
  * <br>
- * 
+ *
  * @see Lifeline Lifeline for more event occurence details
+ * @version 1.0
  * @author sveyrier
  */
 public abstract class BaseMessage extends GraphNode {
 
+    // ------------------------------------------------------------------------
+    // Attributes
+    // ------------------------------------------------------------------------
     /**
      * The lifeline which send the message
      */
-    protected Lifeline startLifeline = null;
-
+    private Lifeline fStartLifeline = null;
     /**
      * The lifeline which receive the message
      */
-    protected Lifeline endLifeline = null;
+    private Lifeline fEndLifeline = null;
+    /**
+     * The visiblitiy flag.
+     */
+    private boolean fVisible = true;
 
-    protected boolean visible = true;
+    // ------------------------------------------------------------------------
+    // Methods
+    // ------------------------------------------------------------------------
 
     @Override
     public int getX() {
@@ -55,26 +65,25 @@ public abstract class BaseMessage extends GraphNode {
          * lifeline name getHeight return the height of this rectangle The message y coordinate is then relative to this
          * position depending of its eventOccurrence Space between syncMessages is constant
          */
-        if ((startLifeline != null) && (endLifeline != null)) {
+        if ((fStartLifeline != null) && (fEndLifeline != null)) {
             /*
              * Regular message, both ends are attached to a lifeline
              */
-            return endLifeline.getY() + endLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * endEventOccurrence;
+            return fEndLifeline.getY() + fEndLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * getEndOccurrence();
 
-        } else {
-            /*
-             * UML2 lost message kind
-             */
-            if (startLifeline != null) {
-                return startLifeline.getY() + startLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * endEventOccurrence;
-            }
+        }
+        /*
+         * UML2 lost message kind
+         */
+        if (fStartLifeline != null) {
+            return fStartLifeline.getY() + fStartLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * getEndOccurrence();
+        }
 
-            /*
-             * UML2 found message kind
-             */
-            if (endLifeline != null) {
-                return endLifeline.getY() + endLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * endEventOccurrence;
-            }
+        /*
+         * UML2 found message kind
+         */
+        if (fEndLifeline != null) {
+            return fEndLifeline.getY() + fEndLifeline.getHeight() + (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * getEndOccurrence();
         }
         // return 0 by default
         return 0;
@@ -101,7 +110,7 @@ public abstract class BaseMessage extends GraphNode {
      * <br>
      * This method is typically used to faster execute none graphical operation like tooltip lookup.<br>
      * <br>
-     * 
+     *
      * @param quick true to get an approximative value<br>
      *            false to get the exact x value<br>
      * @return the graph node x coordinate
@@ -109,26 +118,27 @@ public abstract class BaseMessage extends GraphNode {
     protected int getX(boolean quick) {
         int x = 0;
         int activationWidth = Metrics.EXECUTION_OCCURRENCE_WIDTH / 2;
-        if ((startLifeline != null) && (endLifeline != null)) {
-            x = startLifeline.getX() + Metrics.getLifelineWidth() / 2;
+        if ((fStartLifeline != null) && (fEndLifeline != null)) {
+            x = fStartLifeline.getX() + Metrics.getLifelineWidth() / 2;
         } else {
-            if (startLifeline != null) {
-                x = startLifeline.getX() + Metrics.getLifelineWidth() / 2;
+            if (fStartLifeline != null) {
+                x = fStartLifeline.getX() + Metrics.getLifelineWidth() / 2;
             }
 
-            if (endLifeline != null) {
-                x = endLifeline.getX() - Metrics.LIFELINE_SPACING / 2;
+            if (fEndLifeline != null) {
+                x = fEndLifeline.getX() - Metrics.LIFELINE_SPACING / 2;
             }
         }
 
-        if (quick)
+        if (quick) {
             return x;
+        }
 
-        if ((startLifeline != null) && (endLifeline != null) && (startLifeline.getX() > endLifeline.getX())) {
+        if ((fStartLifeline != null) && (fEndLifeline != null) && (fStartLifeline.getX() > fEndLifeline.getX())) {
             activationWidth = -activationWidth;
         }
 
-        if (isMessageStartInActivation(endEventOccurrence)) {
+        if (isMessageStartInActivation(getEndOccurrence())) {
             x = x + activationWidth;
         }
 
@@ -145,7 +155,7 @@ public abstract class BaseMessage extends GraphNode {
      * <br>
      * This method is typically used to faster execute none graphical operation like tooltip lookup.<br>
      * <br>
-     * 
+     *
      * @param quick true to get an approximative value<br>
      *            false to get the exact x value
      * @return the graph node width
@@ -153,32 +163,36 @@ public abstract class BaseMessage extends GraphNode {
     protected int getWidth(boolean quick) {
         int width = 0;
         int activationWidth = Metrics.EXECUTION_OCCURRENCE_WIDTH / 2;
-        if ((startLifeline != null) && (endLifeline != null)) {
-            if (startLifeline == endLifeline)
+        if ((fStartLifeline != null) && (fEndLifeline != null)) {
+            if (fStartLifeline == fEndLifeline) {
                 width = Metrics.INTERNAL_MESSAGE_WIDTH + Metrics.EXECUTION_OCCURRENCE_WIDTH;
-            else
-                width = endLifeline.getX() + Metrics.getLifelineWidth() / 2 - getX(true);
+            } else {
+                width = fEndLifeline.getX() + Metrics.getLifelineWidth() / 2 - getX(true);
+            }
         } else {
-            if (startLifeline != null) {
+            if (fStartLifeline != null) {
                 width = Metrics.swimmingLaneWidth() / 2;
             }
-            if (endLifeline != null) {
+            if (fEndLifeline != null) {
                 width = Metrics.swimmingLaneWidth() / 2;
             }
         }
 
-        if (quick)
+        if (quick) {
             return width;
+        }
 
-        if ((startLifeline != null) && (endLifeline != null) && (startLifeline.getX() > endLifeline.getX())) {
+        if ((fStartLifeline != null) && (fEndLifeline != null) && (fStartLifeline.getX() > fEndLifeline.getX())) {
             activationWidth = -activationWidth;
         }
 
-        if (isMessageStartInActivation(endEventOccurrence))
+        if (isMessageStartInActivation(getEndOccurrence())) {
             width = width - activationWidth;
+        }
 
-        if (isMessageEndInActivation(endEventOccurrence))
+        if (isMessageEndInActivation(getEndOccurrence())) {
             width = width - activationWidth;
+        }
 
         return width;
     }
@@ -187,80 +201,90 @@ public abstract class BaseMessage extends GraphNode {
     public boolean isVisible(int x, int y, int width, int height) {
         // ***Common*** syncMessages visibility
         // draw the message only if at least one end is visible
-        if (endLifeline != null && (endLifeline.isVisible(x, y, width, height)) || (startLifeline != null && startLifeline.isVisible(x, y, width, height)))
+        if (fEndLifeline != null && (fEndLifeline.isVisible(x, y, width, height)) || (fStartLifeline != null && fStartLifeline.isVisible(x, y, width, height))) {
             return true;
+        }
         // In this case it can be a message which cross the whole visible area
-        else if (endLifeline != null && (!endLifeline.isVisible(x, y, width, height)) && (startLifeline != null && !startLifeline.isVisible(x, y, width, height))) {
-            if (endLifeline.getX() > x + width && startLifeline.getX() < x)
+        else if (fEndLifeline != null && (!fEndLifeline.isVisible(x, y, width, height)) && (fStartLifeline != null && !fStartLifeline.isVisible(x, y, width, height))) {
+            if (fEndLifeline.getX() > x + width && fStartLifeline.getX() < x) {
                 return true;
-            else if (startLifeline.getX() > x + width && endLifeline.getX() < x)
+            } else if (fStartLifeline.getX() > x + width && fEndLifeline.getX() < x) {
                 return true;
+            }
         }
         return false;
     }
 
+    /**
+     * Sets the visibility value.
+     *
+     * @param value The visibility to set.
+     */
     public void setVisible(boolean value) {
-        visible = value;
+        fVisible = value;
     }
 
+    /**
+     * @return the visibility value.
+     */
     public boolean isVisible() {
-        return visible;
+        return fVisible;
     }
 
     /**
      * Set the lifeline from which this message has been sent.
-     * 
+     *
      * @param lifeline - the message sender
      */
     public void setStartLifeline(Lifeline lifeline) {
-        startLifeline = lifeline;
+        fStartLifeline = lifeline;
     }
 
     /**
      * Returns the lifeline from which this message has been sent.
-     * 
+     *
      * @return the message sender
      */
     public Lifeline getStartLifeline() {
-        return startLifeline;
+        return fStartLifeline;
     }
 
     /**
      * Returns the lifeline which has received this message.
-     * 
+     *
      * @return the message receiver
      */
     public Lifeline getEndLifeline() {
-        return endLifeline;
+        return fEndLifeline;
     }
 
     /**
      * Set the lifeline which has receive this message.
-     * 
+     *
      * @param lifeline the message receiver
      */
     public void setEndLifeline(Lifeline lifeline) {
-        endLifeline = lifeline;
+        fEndLifeline = lifeline;
     }
 
     /**
      * Set the event occurrence when this message occurs.<br>
-     * 
+     *
      * @param occurrence the event occurrence to assign to this message.<br>
      * @see Lifeline Lifeline for more event occurence details
      */
     protected void setEventOccurrence(int occurrence) {
-        endEventOccurrence = occurrence;
+        setEndOccurrence(occurrence);
     }
 
     /**
      * Returns the event occurence when is message occurs.<br>
-     * 
+     *
      * @return the event occurrence assigned to this message.<br>
      * @see Lifeline Lifeline for more event occurence details
      */
     public int getEventOccurrence() {
-        return endEventOccurrence;
+        return getEndOccurrence();
     }
 
     /**
@@ -268,26 +292,28 @@ public abstract class BaseMessage extends GraphNode {
      * WARNING: this method will return a valid result only for execution occurrences which are visible in the View.<br>
      * As consequence this method is only used for drawing purpose, especially to determine the exact message x
      * coordinate and width.<br>
-     * 
+     *
      * @see BaseMessage#getX(boolean)
      * @param event the event occurrence to test
      * @return true if occurs on a execution occurrence owned by the sending lifeine, false otherwise
      */
     protected boolean isMessageStartInActivation(int event) {
         boolean inActivation = false;
-        if ((startLifeline != null) && (startLifeline.getExecutions() != null)) {
+        if ((fStartLifeline != null) && (fStartLifeline.getExecutions() != null)) {
             // int acIndex=startLifeline.getExecOccurrenceDrawIndex();
             // acIndex = first visible execution occurrence
             // for drawing speed reason with only search on the visivle subset
             int thisY = getY();
-            for (int i = 0; i < startLifeline.getExecutions().size(); i++) {
-                BasicExecutionOccurrence toDraw = (BasicExecutionOccurrence) startLifeline.getExecutions().get(i);
-                if ((event >= toDraw.startEventOccurrence) && (event <= toDraw.endEventOccurrence))
+            for (int i = 0; i < fStartLifeline.getExecutions().size(); i++) {
+                BasicExecutionOccurrence toDraw = (BasicExecutionOccurrence) fStartLifeline.getExecutions().get(i);
+                if ((event >= toDraw.getStartOccurrence()) && (event <= toDraw.getEndOccurrence())) {
                     inActivation = true;
+                }
                 // if we are outside the visible area we stop right now
                 // This works because execution occurrences are ordered along the Y axis
-                if (toDraw.getY() > thisY)
+                if (toDraw.getY() > thisY) {
                     break;
+                }
             }
         }
         return inActivation;
@@ -298,34 +324,33 @@ public abstract class BaseMessage extends GraphNode {
      * WARNING: this method will return a valid result only for execution occurrences which are visible in the View.<br>
      * As consequence this method is only used for drawing purpose, especially to determine the exact message x
      * coordinate and width.<br>
-     * 
+     *
      * @see BaseMessage#getX(boolean)
      * @param event the event occurrence to test
      * @return true if occurs on a execution occurrence owned by the receiving lifeline, false otherwise
      */
     protected boolean isMessageEndInActivation(int event) {
         boolean inActivation = false;
-        if ((endLifeline != null) && (endLifeline.getExecutions() != null)) {
+        if ((fEndLifeline != null) && (fEndLifeline.getExecutions() != null)) {
             // acIndex = first visible execution occurrence
             // for drawing speed reason with only search on the visivle subset
-            for (int i = 0; i < endLifeline.getExecutions().size(); i++) {
-                BasicExecutionOccurrence toDraw = (BasicExecutionOccurrence) endLifeline.getExecutions().get(i);
-                if ((event >= toDraw.startEventOccurrence) && (event <= toDraw.endEventOccurrence))
+            for (int i = 0; i < fEndLifeline.getExecutions().size(); i++) {
+                BasicExecutionOccurrence toDraw = (BasicExecutionOccurrence) fEndLifeline.getExecutions().get(i);
+                if ((event >= toDraw.getStartOccurrence()) && (event <= toDraw.getEndOccurrence())) {
                     inActivation = true;
+                }
                 // if we are outside the visible area we stop right now
                 // This works because execution occurrences are ordered along the Y axis
-                if (toDraw.getY() > getY())
+                if (toDraw.getY() > getY()) {
                     break;
+                }
             }
         }
         return inActivation;
     }
 
-    /**
-     * Returns true if the message or the message label contains the point given in parameter
-     */
     @Override
-    public boolean contains(int _x, int _y) {
+    public boolean contains(int xValue, int yValue) {
         int x = getX();
         int y = getY();
         int width = getWidth();
@@ -335,70 +360,86 @@ public abstract class BaseMessage extends GraphNode {
         int tempHeight = Metrics.MESSAGES_NAME_SPACING + Metrics.getMessageFontHeigth();
 
         // Is it a self message?
-        if (startLifeline == endLifeline) {
+        if (fStartLifeline == fEndLifeline) {
             /*
              * Rectangle.contains(x,y, width, height) does not works with negative height or width We check here if the
              * rectangle width is negative.
              */
             if (getName().length() * Metrics.getAverageCharWidth() > Metrics.swimmingLaneWidth() - Metrics.EXECUTION_OCCURRENCE_WIDTH / 2 + -Metrics.INTERNAL_MESSAGE_WIDTH) {
-                if (Frame.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH + 10, y, Metrics.swimmingLaneWidth() - Metrics.EXECUTION_OCCURRENCE_WIDTH / 2 + -Metrics.INTERNAL_MESSAGE_WIDTH, Metrics.getMessageFontHeigth(), _x, _y))
+                if (GraphNode.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH + 10, y, Metrics.swimmingLaneWidth() - Metrics.EXECUTION_OCCURRENCE_WIDTH / 2 + -Metrics.INTERNAL_MESSAGE_WIDTH, Metrics.getMessageFontHeigth(), xValue, yValue)) {
                     return true;
+                }
             } else {
-                if (Frame.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH + 10, y, getName().length() * Metrics.getAverageCharWidth(), Metrics.getMessageFontHeigth(), _x, _y))
+                if (GraphNode.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH + 10, y, getName().length() * Metrics.getAverageCharWidth(), Metrics.getMessageFontHeigth(), xValue, yValue)) {
                     return true;
+                }
             }
 
             // Test if the point is in part 1 of the self message
             // see: "private void drawMessage (NGC context)" method for self message drawing schema
-            if (Frame.contains(x, y - Metrics.MESSAGE_SELECTION_TOLERANCE / 2, Metrics.INTERNAL_MESSAGE_WIDTH / 2, Metrics.MESSAGE_SELECTION_TOLERANCE, _x, _y))
+            if (GraphNode.contains(x, y - Metrics.MESSAGE_SELECTION_TOLERANCE / 2, Metrics.INTERNAL_MESSAGE_WIDTH / 2, Metrics.MESSAGE_SELECTION_TOLERANCE, xValue, yValue)) {
                 return true;
+            }
 
             // Test if the point is in part 3 of the self message
-            if (Frame.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH - Metrics.MESSAGE_SELECTION_TOLERANCE / 2, y, Metrics.MESSAGE_SELECTION_TOLERANCE, height + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT, _x, _y))
+            if (GraphNode.contains(x + Metrics.INTERNAL_MESSAGE_WIDTH - Metrics.MESSAGE_SELECTION_TOLERANCE / 2, y, Metrics.MESSAGE_SELECTION_TOLERANCE, height + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT, xValue, yValue)) {
                 return true;
+            }
 
             // Test if the point is in part 5 of the self message
-            if (Frame.contains(x, y + height - Metrics.MESSAGE_SELECTION_TOLERANCE / 2 + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT, Metrics.INTERNAL_MESSAGE_WIDTH / 2, Metrics.MESSAGE_SELECTION_TOLERANCE, _x, _y))
+            if (GraphNode.contains(x, y + height - Metrics.MESSAGE_SELECTION_TOLERANCE / 2 + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT, Metrics.INTERNAL_MESSAGE_WIDTH / 2, Metrics.MESSAGE_SELECTION_TOLERANCE, xValue, yValue)) {
                 return true;
+            }
 
             // false otherwise
             return false;
         }
-        if (Frame.contains(x, y - tempHeight, width, tempHeight, _x, _y))
+        if (GraphNode.contains(x, y - tempHeight, width, tempHeight, xValue, yValue)) {
             return true;
+        }
         // false otherwise
         return false;
     }
 
+    /**
+     * Method to draw the message using the graphical context.
+     *
+     * @param context A graphical context to draw in.
+     */
     protected void drawMessage(IGC context) {
-        int fX, fY, fW, fH;
-        fX = fY = fW = fH = 0;
+        int fX = 0;
+        int fY = 0;
+        int fW = 0;
+        int fH = 0;
 
-        // temporay store the coordinates to avoid more methods calls
+        // temporary store the coordinates to avoid more methods calls
         int x = getX();
         int y = getY();
         int width = getWidth();
         int height = getHeight();
 
+        ISDPreferences pref = SDViewPref.getInstance();
+
         // UML2 found message (always drawn from left to right)
         // or UML2 lost message (always drawn from left to right)
-        if ((startLifeline == null || endLifeline == null) && startLifeline != endLifeline) {
+        if ((fStartLifeline == null || fEndLifeline == null) && fStartLifeline != fEndLifeline) {
             // Draw the message label above the message and centered
             // The label is truncated if it cannot fit between the two message end
             // 2*Metrics.MESSAGES_NAME_SPACING = space above the label + space below the label
             IColor temp = context.getForeground();
-            context.setForeground(Frame.getUserPref().getFontColor(prefId));
+            context.setForeground(pref.getFontColor(getColorPrefId()));
             context.drawTextTruncatedCentred(getName(), x, y - Metrics.getMessageFontHeigth() - 2 * Metrics.MESSAGES_NAME_SPACING, width, 2 * Metrics.MESSAGES_NAME_SPACING + Metrics.getMessageFontHeigth(), !isSelected());
             context.setForeground(temp);
             int margin = 0;
-            if (endLifeline == null)
+            if (fEndLifeline == null) {
                 margin = Metrics.MESSAGE_CIRCLE_RAY;
+            }
 
             // Draw the message main line
             context.drawLine(x, y, x + width, y + height);
             // Draw the two little lines which make a arrow part of the message
-            Double xt = new Double(Math.cos(0.75) * 7);
-            Double yt = new Double(Math.sin(0.75) * 7);
+            Double xt = Double.valueOf(Math.cos(0.75) * 7);
+            Double yt = Double.valueOf(Math.sin(0.75) * 7);
             if (context.getLineStyle() == context.getLineSolidStyle()) {
                 IColor backcolor = context.getBackground();
                 context.setBackground(context.getForeground());
@@ -421,27 +462,30 @@ public abstract class BaseMessage extends GraphNode {
 
             // Draw a circle at the message end (endLifeline side)
             int ray = Metrics.MESSAGE_CIRCLE_RAY;
-            if (context.getLineWidth() != Metrics.NORMAL_LINE_WIDTH)
+            if (context.getLineWidth() != Metrics.NORMAL_LINE_WIDTH) {
                 ray = ray + Metrics.SELECTION_LINE_WIDTH - Metrics.NORMAL_LINE_WIDTH;
-            if (startLifeline == null)
+            }
+            if (fStartLifeline == null) {
                 context.fillOval(x - ray, y - ray, ray * 2, ray * 2);
-            else
+            } else {
                 context.fillOval(x + width - ray, y + height - ray, ray * 2, ray * 2);
+            }
             context.setBackground(storedColor);
-            context.setForeground(Frame.getUserPref().getFontColor(prefId));
+            context.setForeground(pref.getFontColor(getColorPrefId()));
             fX = x;
             fY = y - yt.intValue();
             fW = width;
             fH = height + 2 * yt.intValue();
         }
         // it is self message (always drawn at the left side of the owning lifeLifeline)
-        else if (startLifeline != null && endLifeline != null && startLifeline == endLifeline) {
+        else if (fStartLifeline != null && fEndLifeline != null && fStartLifeline == fEndLifeline) {
             /*
              * Self syncMessages are drawn in 5 parts 1 -----------+ + 2 + | | | 3 | + 5 + 4 -----------+
              */
             int tempy = Metrics.INTERNAL_MESSAGE_WIDTH / 2;
-            if (Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT <= Metrics.INTERNAL_MESSAGE_WIDTH)
+            if (Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT <= Metrics.INTERNAL_MESSAGE_WIDTH) {
                 tempy = Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT / 2;
+            }
 
             // Part 1
             context.drawLine(x, y, x + Metrics.INTERNAL_MESSAGE_WIDTH / 2, y);
@@ -450,8 +494,8 @@ public abstract class BaseMessage extends GraphNode {
             // Part 5
             context.drawLine(x, y + height + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT, x + Metrics.INTERNAL_MESSAGE_WIDTH / 2, y + height + Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT);
 
-            Double xt = new Double(Math.cos(0.75) * 7);
-            Double yt = new Double(Math.sin(0.75) * 7);
+            Double xt = Double.valueOf(Math.cos(0.75) * 7);
+            Double yt = Double.valueOf(Math.sin(0.75) * 7);
 
             fX = x;
             fY = y;
@@ -488,32 +532,34 @@ public abstract class BaseMessage extends GraphNode {
             // 2*Metrics.MESSAGES_NAME_SPACING = space above the label + space below the label
 
             // the space available for the text is sorter if are drawing internal message on the last lifeline
-            context.setForeground(Frame.getUserPref().getFontColor(prefId));
-            if (startLifeline.getIndex() == startLifeline.getFrame().getHorizontalIndex())
+            context.setForeground(pref.getFontColor(getColorPrefId()));
+            if (fStartLifeline.getIndex() == fStartLifeline.getFrame().getHorizontalIndex()) {
                 context.drawTextTruncated(getName(), x + width + Metrics.INTERNAL_MESSAGE_V_MARGIN / 2, y, Metrics.swimmingLaneWidth() / 2 - Metrics.EXECUTION_OCCURRENCE_WIDTH + -Metrics.INTERNAL_MESSAGE_WIDTH, +Metrics.MESSAGES_NAME_SPACING
                         - Metrics.getMessageFontHeigth(), !isSelected());
-            else
+            } else {
                 context.drawTextTruncated(getName(), x + width + Metrics.INTERNAL_MESSAGE_V_MARGIN / 2, y, Metrics.swimmingLaneWidth() - Metrics.EXECUTION_OCCURRENCE_WIDTH + -Metrics.INTERNAL_MESSAGE_WIDTH,
                         +Metrics.MESSAGES_NAME_SPACING - Metrics.getMessageFontHeigth(), !isSelected());
+            }
         }
         // it is regular message
-        else if (startLifeline != null && endLifeline != null) {
+        else if (fStartLifeline != null && fEndLifeline != null) {
             // Draw the message main line
             context.drawLine(x, y, x + width, y + height);
 
-            int spaceBTWStartEnd = endLifeline.getX() - startLifeline.getX();
+            int spaceBTWStartEnd = fEndLifeline.getX() - fStartLifeline.getX();
 
             double a = height;
             double b = width;
             double angle = Math.atan(a / b);
             // Compute the coordinates of the two little lines which make the arrow part of the message
             int sign = 1;
-            if (spaceBTWStartEnd < 0)
+            if (spaceBTWStartEnd < 0) {
                 sign = -1;
-            Double x1 = new Double(sign * Math.cos(angle - 0.75) * 7);
-            Double y1 = new Double(sign * Math.sin(angle - 0.75) * 7);
-            Double x2 = new Double(sign * Math.cos(angle + 0.75) * 7);
-            Double y2 = new Double(sign * Math.sin(angle + 0.75) * 7);
+            }
+            Double x1 = Double.valueOf(sign * Math.cos(angle - 0.75) * 7);
+            Double y1 = Double.valueOf(sign * Math.sin(angle - 0.75) * 7);
+            Double x2 = Double.valueOf(sign * Math.cos(angle + 0.75) * 7);
+            Double y2 = Double.valueOf(sign * Math.sin(angle + 0.75) * 7);
 
             fX = getX();
             fY = y + height - y2.intValue();
@@ -551,30 +597,33 @@ public abstract class BaseMessage extends GraphNode {
             // Draw the message label above the message and centered
             // The label is truncated if it cannot fit between the two message end
             // 2*Metrics.MESSAGES_NAME_SPACING = space above the label + space below the label
-            context.setForeground(Frame.getUserPref().getFontColor(prefId));
-            if (spaceBTWStartEnd > 0)
+            context.setForeground(pref.getFontColor(getColorPrefId()));
+            if (spaceBTWStartEnd > 0) {
                 context.drawTextTruncatedCentred(getName(), x, y + height / 2 - (2 * Metrics.MESSAGES_NAME_SPACING + Metrics.getMessageFontHeigth()), width, 2 * Metrics.MESSAGES_NAME_SPACING + Metrics.getMessageFontHeigth(), !isSelected());
-            else
+            } else {
                 context.drawTextTruncatedCentred(getName(), x + width, y + height / 2 - (2 * Metrics.MESSAGES_NAME_SPACING + Metrics.getMessageFontHeigth()), -width, 2 * Metrics.MESSAGES_NAME_SPACING + +Metrics.getMessageFontHeigth(), !isSelected());
+            }
         }
     }
 
     @Override
     public void draw(IGC context) {
-        if (!isVisible())
+        if (!isVisible()) {
             return;
+        }
+
         // Draw it selected?*/
         if (isSelected()) {
-
+            ISDPreferences pref = SDViewPref.getInstance();
             /*
              * Draw it twice First time, bigger inverting selection colors Second time, regular drawing using selection
              * colors This create the highlight effect
              */
-            context.setForeground(Frame.getUserPref().getBackGroundColorSelection());
+            context.setForeground(pref.getBackGroundColorSelection());
             context.setLineWidth(Metrics.SELECTION_LINE_WIDTH);
             drawMessage(context);
-            context.setBackground(Frame.getUserPref().getBackGroundColorSelection());
-            context.setForeground(Frame.getUserPref().getForeGroundColorSelection());
+            context.setBackground(pref.getBackGroundColorSelection());
+            context.setForeground(pref.getForeGroundColorSelection());
             // Second drawing is done after
         }
         context.setLineWidth(Metrics.NORMAL_LINE_WIDTH);
@@ -594,22 +643,32 @@ public abstract class BaseMessage extends GraphNode {
     /**
      * Determine if two messages are identical. This default implementation considers that overlapping messages with
      * same coordinates are identical.
-     * 
+     *
      * @param message - the message to compare with
      * @return true if identical false otherwise
+     *
+     * @see org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.GraphNode#isSameAs(org.eclipse.linuxtools.tmf.ui.views.uml2sd.core.GraphNode)
      */
     @Override
     public boolean isSameAs(GraphNode message) {
-        if (message == null)
+        if (message == null) {
             return false;
-        if (!(message instanceof BaseMessage))
+        }
+        if (!(message instanceof BaseMessage)) {
             return super.isSameAs(message);
-        if (getX() == message.getX() && getY() == message.getY() && getWidth() == message.getWidth() && getHeight() == message.getHeight())
-            return true;
-        else
-            return false;
+        }
+        return ((getX() == message.getX()) && (getY() == message.getY()) && (getWidth() == message.getWidth()) && (getHeight() == message.getHeight()));
     }
 
+    /**
+     * Method drawRot.
+     *
+     * @param x A x coordinate
+     * @param y A y coordinate
+     * @param w A width
+     * @param h A height
+     * @param context A graphical context
+     */
     public void drawRot(int x, int y, int w, int h, IGC context) {
         double angleA = Math.atan2(getHeight(), getWidth());
         double cosA = Math.cos(angleA);
@@ -618,7 +677,8 @@ public abstract class BaseMessage extends GraphNode {
         int gx = getX();
         int gy = getY();
 
-        h = h / 2;
+        int localHeight = h;
+        localHeight = localHeight / 2;
 
         double cw = Math.sqrt(w * w + getHeight() * getHeight());
 
@@ -628,11 +688,11 @@ public abstract class BaseMessage extends GraphNode {
         int x2 = Math.round((float) (cw * cosA - (y - gy) * sinA));
         int y2 = Math.round((float) (cw * sinA + (y - gy) * cosA));
 
-        int x3 = Math.round((float) (cw * cosA - (h) * sinA));
-        int y3 = Math.round((float) (cw * sinA + (h) * cosA));
+        int x3 = Math.round((float) (cw * cosA - (localHeight) * sinA));
+        int y3 = Math.round((float) (cw * sinA + (localHeight) * cosA));
 
-        int x4 = Math.round((float) ((x - gx) * cosA - (h) * sinA));
-        int y4 = Math.round((float) ((x - gx) * sinA + (h) * cosA));
+        int x4 = Math.round((float) ((x - gx) * cosA - (localHeight) * sinA));
+        int y4 = Math.round((float) ((x - gx) * sinA + (localHeight) * cosA));
 
         int[] points = { x1 + getX(), y1 + getY(), x2 + getX(), y2 + getY(), x3 + getX(), y3 + getY(), x4 + getX(), y4 + getY() };
         context.drawPolygon(points);
@@ -640,21 +700,25 @@ public abstract class BaseMessage extends GraphNode {
 
     @Override
     public void drawFocus(IGC context) {
-        if ((startLifeline != endLifeline) && (startEventOccurrence == endEventOccurrence)) {
+
+        ISDPreferences pref = SDViewPref.getInstance();
+
+        if ((fStartLifeline != fEndLifeline) && (getStartOccurrence() == getEndOccurrence())) {
             context.setLineStyle(context.getLineDotStyle());
             context.setLineWidth(Metrics.NORMAL_LINE_WIDTH);
-            context.setBackground(Frame.getUserPref().getBackGroundColorSelection());
-            context.setForeground(Frame.getUserPref().getForeGroundColorSelection());
+            context.setBackground(pref.getBackGroundColorSelection());
+            context.setForeground(pref.getForeGroundColorSelection());
             context.drawFocus(getX(), getY() - 3, getWidth(), getHeight() + 6);
-        } else if ((startLifeline == endLifeline) && (startEventOccurrence == endEventOccurrence)) {
+        } else if ((fStartLifeline == fEndLifeline) && (getStartOccurrence() == getEndOccurrence())) {
             context.drawFocus(getX(), getY() - 3, getWidth(), Metrics.SYNC_INTERNAL_MESSAGE_HEIGHT + 6);
-        } else if ((startLifeline != endLifeline) && (startEventOccurrence != endEventOccurrence)) {
+        } else if ((fStartLifeline != fEndLifeline) && (getStartOccurrence() != getEndOccurrence())) {
             context.setLineStyle(context.getLineDotStyle());
             context.setLineWidth(Metrics.NORMAL_LINE_WIDTH);
-            context.setBackground(Frame.getUserPref().getBackGroundColor(ISDPreferences.PREF_LIFELINE_HEADER));
-            context.setForeground(Frame.getUserPref().getForeGroundColor(ISDPreferences.PREF_LIFELINE_HEADER));
+            context.setBackground(pref.getBackGroundColor(ISDPreferences.PREF_LIFELINE_HEADER));
+            context.setForeground(pref.getForeGroundColor(ISDPreferences.PREF_LIFELINE_HEADER));
             drawRot(getX(), getY() - 5, getWidth(), 10, context);
-        } else
+        } else {
             super.drawFocus(context);
+        }
     }
 }
This page took 0.035897 seconds and 5 git commands to generate.