/**********************************************************************
- * 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;
* Event occurrence define the drawing order of graph node along a lifeline. In this lifeline implementation, event
* occurrences are just integer index. The event occurrences with the same value on different lifelines will correspond
* the same y coordinate value.
- *
+ *
* @version 1.0
* @author sveyrier
- *
+ *
*/
public class Lifeline extends GraphNode {
// ------------------------------------------------------------------------
/**
* Set the lifeline category for this lifeline.
- *
+ *
* @param arrayIndex the index of the category to use
* @see Frame#setLifelineCategories(LifelineCategories[])
*/
/**
* Returns the tooltip text for the lifeline. It is the combination between the category name(if any) and the
* lifeline name
- *
+ *
* @return the tooltip text
*/
public String getToolTipText() {
LifelineCategories[] categories = fFrame.getLifelineCategories();
if (fCategory < categories.length) {
return categories[fCategory].getName() + " " + getName(); //$NON-NLS-1$
- } else {
- return ""; //$NON-NLS-1$
}
- } else {
- return ""; //$NON-NLS-1$
}
+ return ""; //$NON-NLS-1$
}
/**
* Returns the index of the first visible Execution Occurrence in the execution occurrence array.<br>
* Execution Occurrences are Y ordered in this array
- *
+ *
* @return the first visible Execution Occurrence
*/
public int getExecOccurrenceDrawIndex() {
return 0;
}
if (fIndexes.get(BasicExecutionOccurrence.EXEC_OCC_TAG) != null) {
- return ((Integer) fIndexes.get(BasicExecutionOccurrence.EXEC_OCC_TAG)).intValue();
+ return fIndexes.get(BasicExecutionOccurrence.EXEC_OCC_TAG).intValue();
}
return 0;
}
/**
* Set the frame on which this lifeline must be drawn
- *
+ *
* @param parentFrame
+ * Parent frame
*/
protected void setFrame(Frame parentFrame) {
fFrame = parentFrame;
/**
* Returns the frame which this lifeline is drawn
- *
+ *
* @return the Frame
*/
protected Frame getFrame() {
/**
* Set the lifeline position index in the containing frame
- *
+ *
* @param index the lifeline X position
*/
protected void setIndex(int index) {
/**
* Returns the lifeline position in de the containing frame
- *
+ *
* @return the X position
*/
public int getIndex() {
* greater event created on this lifeline are still valid and usable. This also need to inform the frame of the
* operation mostly to store in the frame the greater event found in the diagram (used to determine the frame
* height)
- *
+ *
* @param eventOcc the new current event occurrence
*/
public void setCurrentEventOccurrence(int eventOcc) {
/**
* Returns the last created event occurrence along the lifeline.
- *
+ *
* @return the current event occurrence
*/
public int getEventOccurrence() {
/**
* Creates a new event occurrence along the lifeline.
- *
+ *
* @return the new created event occurrence
*/
public int getNewEventOccurrence() {
/**
* Adds the execution occurrence given in parameter to the lifeline.<br>
* A Execution occurrence is never drawn in the frame instead it is added to a lifeline
- *
+ *
* @param exec the execution occurrence to add
*/
public void addExecution(BasicExecutionOccurrence exec) {
/**
* Returns true if at least one execution occurrence has time info.
- *
+ *
* @return true if at least one execution occurrence has time info
*/
public boolean hasTimeInfo() {
/**
* Returns the list of execution occurrence on this lifeline.
- *
+ *
* @return the execution occurrence list
*/
public List<GraphNode> getExecutions() {
if (fHasChilden) {
- return (List<GraphNode>) fNodes.get(BasicExecutionOccurrence.EXEC_OCC_TAG);
+ return fNodes.get(BasicExecutionOccurrence.EXEC_OCC_TAG);
}
return new ArrayList<GraphNode>();
}
if (fFrame == null) {
return false;
}
- if (Frame.contains(x, y, width, height, xValue, yValue)) {
+ if (GraphNode.contains(x, y, width, height, xValue, yValue)) {
return true;
}
- if (Frame.contains(x + Metrics.getLifelineWidth() / 2 - Metrics.EXECUTION_OCCURRENCE_WIDTH / 2, y + height, Metrics.EXECUTION_OCCURRENCE_WIDTH, (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * fFrame.getMaxEventOccurrence()
+ if (GraphNode.contains(x + Metrics.getLifelineWidth() / 2 - Metrics.EXECUTION_OCCURRENCE_WIDTH / 2, y + height, Metrics.EXECUTION_OCCURRENCE_WIDTH, (Metrics.getMessageFontHeigth() + Metrics.getMessagesSpacing()) * fFrame.getMaxEventOccurrence()
+ Metrics.LIFELINE_VB_MAGIN - 4, xValue, yValue)) {
return true;
}
if (hMargin >= 2) {
if (fFrame.getVisibleAreaY() < y - height - hMargin) {
- if (Frame.contains(x - Metrics.LIFELINE_SPACING / 2 + 1, y - height - hMargin, Metrics.swimmingLaneWidth() - 2, height + 1, xValue, yValue)) {
+ if (GraphNode.contains(x - Metrics.LIFELINE_SPACING / 2 + 1, y - height - hMargin, Metrics.swimmingLaneWidth() - 2, height + 1, xValue, yValue)) {
return true;
}
} else {
- if (Frame.contains(x - Metrics.LIFELINE_SPACING / 2 + 1, fFrame.getVisibleAreaY(), Metrics.swimmingLaneWidth() - 2, height, xValue, yValue)) {
+ if (GraphNode.contains(x - Metrics.LIFELINE_SPACING / 2 + 1, fFrame.getVisibleAreaY(), Metrics.swimmingLaneWidth() - 2, height, xValue, yValue)) {
return true;
}
}
/**
* Returns the lifeline visibility for the given visible area
- *
+ *
* @param vx The x coordinate of the visible area
* @param vy The y coordinate of the visible area
* @param vwidth The width of the visible area
}
/**
- * Draws the name within the graphical context.
- *
+ * Draws the name within the graphical context.
+ *
* @param context The graphical context.
*/
protected void drawName(IGC context) {
/**
* Force the lifeline to be drawn at the given coordinate
- *
+ *
* @param context - the context to draw into
* @param x - the x coordinate
* @param y - the y coordinate
*/
public void draw(IGC context, int x, int y) {
-
+
ISDPreferences pref = SDViewPref.getInstance();
-
+
// Set the draw color depending if the lifeline must be selected or not
context.setLineWidth(Metrics.NORMAL_LINE_WIDTH);
if (isSelected()) {
/**
* Draws the select execution occurrence region using the given color
- *
+ *
* @param context the graphical context
* @param startEvent the region start
* @param nbEvent the region height
*/
@Override
public boolean positiveDistanceToPoint(int x, int y) {
- if (getX() > x - Metrics.swimmingLaneWidth())
+ if (getX() > x - Metrics.swimmingLaneWidth()) {
return true;
+ }
return false;
}
return null;
}
for (int i = getExecOccurrenceDrawIndex(); i < getExecutions().size(); i++) {
- GraphNode node = (GraphNode) getExecutions().get(i);
+ GraphNode node = getExecutions().get(i);
if (node.getHeight() < 0) {
if (node.getY() + node.getHeight() > vy + vh) {
break;