public void setEdge ( int edge ) {
        if ( edge < 8 )
            throw new IllegalArgumentException ( "Parameter edge must be not less than 8 it was set to " + edge );

        if ( edge > MAX_EDGE )
            throw new IllegalArgumentException ( "Parameter edge must be less than " + MAX_EDGE + " it was set to " + edge );

        if ( edge % 8 != 0 )
            edge = ( int ) ( ( Math.round ( ( double ) edge ) / 8 ) * 8 );

        this.edge = edge;

        double preciseHeight = edge * Math.sqrt ( 3 );

        height = ( int ) Math.round ( preciseHeight );

        if ( height % 2 == 1 ) {
            if ( height > preciseHeight )
                height--;
            else
                height++;
        }

        HexEventRegister.getInstance ().triggerEvent ( new ConfigurationChanged ( "edge" ) );
    }