code: private void updateObject(GenericTabItem tab, TraceObject pobj)
  	{
  		if(pobj != null && !pobj.isVisible())
  		{	
  			//Draw Object
  			String name = pobj.getName() + " (" + pobj.getId().toString() + ")";
  			NormalLabel nlb = new NormalLabel(name, tab.getCurrentFont());;
  			RectangleLabelFigure nrr = new RectangleLabelFigure(nlb);	
  			
  			Long objectXPos = tab.getXMax() + CPU_X_OFFSET;
  			Long objectYPos = CPU_Y_POS + CPU_HEIGHT + ELEMENT_SIZE;
  			Long objWidth = new Long(name.length())*OBJECT_WIDTH_FACTOR;
  
  			Point np = new Point(objectXPos.intValue(), CPU_Y_POS.intValue());
  			nrr.setLocation(np);
  			nrr.setSize(objWidth, CPU_HEIGHT);
  			tab.addFigure(nrr);
  
  			//Save Object timeline
  			Long lineXPos = objectXPos + new Long(objWidth/2);
  			Long lineYStartPos = objectYPos;
  			timeLineStart.add(new Point(lineXPos.intValue(), lineYStartPos.intValue()));
  			
  			//Update Object
  			pobj.setY(objectYPos);			
  			pobj.setVisible(true);
  			pobj.setX(lineXPos);
  		}
  	}
docs: Helpers