zoomParamListeners = new HashSet();
    private void init(BrowserTopModel topModel)    {        env = BrowserEnvironment.getInstance();                setBackground(new Color(192,192,192));        backgroundNode = new BackgroundNode();        getLayer().addChild(backgroundNode);                layoutMap = new HashMap();        footprint = new Rectangle2D.Double(0,0,0,0);        hoverSensitive = new HashSet();        regionSensitive = new HashSet();                removeInputEventListener(getZoomEventHandler());        removeInputEventListener(getPanEventHandler());               // default panning mode (may replace this, but probably not)        overlayCamera = new BrowserCamera(topModel,getCamera());        hoverSensitive.add(overlayCamera);        regionSensitive.add(overlayCamera);        scaleToShow = true;               addMouseListener(new MouseAdapter()        {            public void mouseEntered(MouseEvent me)            {                for(Iterator iter = hoverSensitive.iterator(); iter.hasNext();)                {                     HoverSensitive hover = (HoverSensitive)iter.next();                     hover.contextEntered();                }            }                        public void mouseExited(MouseEvent me)            {                for(Iterator iter = hoverSensitive.iterator(); iter.hasNext();)                {                     HoverSensitive hover = (HoverSensitive)iter.next();                     hover.contextExited();                }            }        });                // OK, now, dispatch to the underlying nodes        addInputEventListener(BrowserViewEventDispatcher.getDefaultMouseHandler());        addInputEventListener(BrowserViewEventDispatcher.getDefaultDragHandler());    }