private LowLevelTextObject getLowLevelTextObjectAt(LowLevelTextContainer parent, int x, int y, LowLevelTextType type) {
		if (parent == null)
			return null;
			
		//Iterate over all child text objects
		for (int i=0; i<parent.getTextObjectCount(); i++) {
			LowLevelTextObject obj = parent.getTextObject(i);

			//Is the child of the type we are looking for?
			if (type.equals(obj.getType())) {
				//Check if the given point is inside the childs polygon
				Polygon polygon = ((GeometricObject)obj).getCoords();
				if (polygon != null && polygon.isPointInside(x, y)) {
					return obj;
				}
			}
			//Is the child a text object container itself?
			else if (obj instanceof LowLevelTextContainer){
				//Recursion
				obj = getLowLevelTextObjectAt((LowLevelTextContainer)obj, x, y, type);
				if (obj != null)
					return obj;
			} 
			else //If the child is neither of the type we're looking for nor a container, we can leave the recursion now.
				return null;
		}
		return null;
	}