private void createComponentImage() {
        if (start != null && end == null) {
            componentImage = start.getSnapshot();
        } else if (start == null && end != null) {
            componentImage = end.getSnapshot();
        } else if (start.getWidth() != end.getWidth() || 
                start.getHeight() != end.getHeight()) {
            // This block grabs the targetImage
            // that best represents the component; the larger the better.
	    float widthFraction = (float)end.getWidth() / start.getWidth();
	    float heightFraction = (float)end.getHeight() / start.getHeight();
	    if (Math.abs(widthFraction - 1.0f) > Math.abs(heightFraction - 1.0f)) {
		// difference greater in width
		if (widthFraction < 1.0f) {
		    // start size larger then end size
		    componentImage = start.getSnapshot();
		} else {
		    componentImage = end.getSnapshot();
		}
	    } else {
		// different greater in height
		if (heightFraction < 1.0f) {
		    // start size larger than end size
		    componentImage = start.getSnapshot();
		} else {
		    componentImage = end.getSnapshot();
		}
	    }
	} else {
	    componentImage = start.getSnapshot();
	}
    }