public BoardView1(IGame game, Frame frame, ClientGUI clientgui) throws java.io.IOException {  this.clientgui = clientgui; this.game = game; this.frame = frame;  tileManager = new TilesetManager(this);  game.addGameListener(gameListener); game.getBoard().addBoardListener(this); redrawWorker.start(); addKeyListener(this); addMouseListener(this); addMouseMotionListener(this); addMouseWheelListener( new MouseWheelListener(){ public void mouseWheelMoved(MouseWheelEvent we){ if(GUIPreferences.getInstance().getMouseWheelZoom()) { if (we.getWheelRotation() > 0){ zoomIn(); } else { zoomOut(); } } } });  zoomIndex = GUIPreferences.getInstance().getMapZoomIndex(); checkZoomIndex(); scale = ZOOM_FACTORS[ zoomIndex ];  updateFontSizes(); updateBoardSize();   tipWindow = new Window(frame);  hex_size = new Dimension((int)(HEX_W*scale), (int)(HEX_H*scale));  initPolys();  cursorSprite = new CursorSprite(Color.cyan); highlightSprite = new CursorSprite(Color.white); selectedSprite = new CursorSprite(Color.blue); firstLOSSprite = new CursorSprite(Color.red); secondLOSSprite = new CursorSprite(Color.red);  PreferenceManager.getClientPreferences().addPreferenceChangeListener(this);
public BoardView1(IGame game, Frame frame) throws java.io.IOException { this(game, frame, null);
    public BoardView1(IGame game, Frame frame, ClientGUI clientgui) throws java.io.IOException {        //TODO please eliminate the usage of the clientgui        this.clientgui = clientgui;        this.game = game;        this.frame = frame;        tileManager = new TilesetManager(this);        game.addGameListener(gameListener);        game.getBoard().addBoardListener(this);        redrawWorker.start();        addKeyListener(this);        addMouseListener(this);        addMouseMotionListener(this);        addMouseWheelListener( new MouseWheelListener(){            public void mouseWheelMoved(MouseWheelEvent we){                if(GUIPreferences.getInstance().getMouseWheelZoom()) {                    if (we.getWheelRotation() > 0){                            zoomIn();                    } else {                            zoomOut();                    }                }            }        });                zoomIndex = GUIPreferences.getInstance().getMapZoomIndex();        checkZoomIndex();        scale = ZOOM_FACTORS[ zoomIndex ];                updateFontSizes();        updateBoardSize();        // tooltip        tipWindow = new Window(frame);                hex_size = new Dimension((int)(HEX_W*scale), (int)(HEX_H*scale));                initPolys();        cursorSprite = new CursorSprite(Color.cyan);        highlightSprite = new CursorSprite(Color.white);        selectedSprite = new CursorSprite(Color.blue);        firstLOSSprite = new CursorSprite(Color.red);        secondLOSSprite = new CursorSprite(Color.red);                PreferenceManager.getClientPreferences().addPreferenceChangeListener(this);    }