if (ret != null && this.isVague()) { ret = this; }
    protected synchronized OMGeometry _getContains(int x, int y) {	ListIterator iterator;        OMGeometry graphic, ret = null;	OMGraphicList tomgl = null;	if (size() != 0) {	    if (traverseMode == FIRST_ADDED_ON_TOP) {		iterator = graphics.listIterator();		while (iterator.hasNext()) {		    graphic = (OMGraphic) iterator.next();		    // cannot select a graphic which isn't visible		    if (!graphic.isVisible())			continue;		    if (graphic instanceof OMGraphicList) {			tomgl = (OMGraphicList)graphic;			ret = tomgl._getContains(x, y);			if (ret != null) {			    if (tomgl.isVague()) {				ret = graphic;			    }			    break;			}		    } else if (graphic.contains(x, y)) {			ret = graphic;			break;		    }		}	    } else {		iterator = graphics.listIterator(graphics.size());		while (iterator.hasPrevious()) {		    graphic = (OMGraphic) iterator.previous();		    // cannot select a graphic which isn't visible		    if (!graphic.isVisible())			continue;		    if (graphic instanceof OMGraphicList) {			tomgl = (OMGraphicList)graphic;			ret = tomgl._getContains(x, y);			if (ret != null) {			    if (tomgl.isVague()) {				ret = graphic;			    }			    break;			}		    } else if (graphic.contains(x, y)) {			ret = graphic;			break;		    }		}	    }	}	return ret;    }