private Image drawCell(int index)
    {
        IMazeStructure mazeStructure = DataModel.getInstance().getMazeStructure();

        BufferedImage result = new BufferedImage(CELL_WIDTH,
                                                 CELL_HEIGHT,
                                                 BufferedImage.TYPE_INT_ARGB);
        Graphics2D graphics = result.createGraphics();
        graphics.setColor(wallColor);

        if (mazeStructure.getMazeCells().get(index).getWall(EnumSquareMazeCellDirection.NORTH.ordinal()))
        {
            drawNorthWall(graphics);
        }

        if (mazeStructure.getMazeCells().get(index).getWall(EnumSquareMazeCellDirection.EAST.ordinal()))
        {
            drawEastWall(graphics);
        }

        if (mazeStructure.getMazeCells().get(index).getWall(EnumSquareMazeCellDirection.SOUTH.ordinal()))
        {
            drawSouthWall(graphics);
        }

        if (mazeStructure.getMazeCells().get(index).getWall(EnumSquareMazeCellDirection.WEST.ordinal()))
        {
            drawWestWall(graphics);
        }

        return result;
    }