code: public void drawOpCompleted(GenericTabItem tab, TraceCPU cpu, TraceThread thread, TraceObject destinationObj, TraceOperation operation )
  	{
  		TraceObject currentObj = thread.getCurrentObject();
  		updateObject(tab, currentObj);
  		if(currentObj.getId() == destinationObj.getId())
  		{
  			//Internal object operation
  			updateObject(tab, currentObj);
  			Long x1 = currentObj.getX();
  			Long x2 = x1;
  			Long y1 = tab.getYMax();
  			Long y2 = y1 + ELEMENT_SIZE;
  
  			NormalLabel lbl = new NormalLabel("C", tab.getCurrentFont());;
  
  			String operationLabel = " Completed " + operation.getName() + " on object " + currentObj.getId();		
  			NormalLabel ttl = new NormalLabel(operationLabel, tab.getCurrentFont());		
  			Point pt = new Point(x1.intValue() + 8, y1.intValue() + 2);
  
  			drawMarker(tab, x1, y1, x2, y2, ColorConstants.blue);
  			lbl.setToolTip(ttl);
  			lbl.setLocation(pt);
  			tab.addFigure(lbl);
  		} 
  		else
  		{
  			updateObject(tab,destinationObj);
  			drawObjectArrow(tab, destinationObj, currentObj, new String(""));
  		}
  
  	}
docs: Operations