for(Iterator iter = zoomParamListeners.iterator(); iter.hasNext();) { ZoomParamListener listener = (ZoomParamListener)iter.next(); listener.zoomLevelChanged(viewScale); }
    public void updateConstraints()    {        Dimension dimension = getSize();        double width = dimension.getWidth();        double height = dimension.getHeight();                        double xRatio = width / footprint.getWidth();        double yRatio = height / footprint.getHeight();                // for some reason, setting setViewScale(0) screws things up        // in a big way.        if(scaleToShow)                {            if((xRatio < 1 || yRatio < 1) &&               (xRatio != 0 && yRatio != 0))            {                double min = Math.min(xRatio,yRatio);                getCamera().setViewScale(min);            }            else            {                getCamera().setViewScale(1);            }        }        boundCameraPosition();                double viewScale = getCamera().getViewScale();        backgroundNode.setBounds(0,0,width/viewScale,height/viewScale);                //      update things        for(Iterator iter = regionSensitive.iterator(); iter.hasNext();)        {            RegionSensitive rs = (RegionSensitive)iter.next();            rs.setActiveRegion(footprint);        }                System.err.println(footprint);        System.err.println("Dim: "+width+","+height);        overlayCamera.cameraResized(new Rectangle2D.Double(0,0,width,height));    }