BlackBerry - Diversión con FieldManagers

Estoy tratando de hacer una clase de Vista que provea un diseño Horizontal o Vertical dependiendo de cómo se crea. Estoy usando un delegado para lograr esto.

class View extends Manager {
    private Manager mDelegate;

    public View(Manager inDelegate) {
        mDelegate = inDelegate;
        // the delegate is the only child of "this" manager.
        super.add(mDelegate);
    }

    public void add(Field f) {
        // all other children go into the delegate.    
        mDelegate.add(f);
    }

    // other methods that also delegate

}

Cuando crea una instancia de un objeto de Vista, paso en un administrador de campo Horizontal o Vertical y luego delego las llamadas a eso. Esto es un poco lo que hace la clase Screen en Blackberry.

De hecho, estoy mirando los documentos de Blackberry para Screen para ver qué llamadas delegan (así puedo emular eso) y veo llamadas como esta en Screen ...

keyChar booleano protegido (char c, int status, int time)

Delega el evento de generación de claves al campo controlado con foco. Este método invoca a Manager.keyChar (char, int, int) en el administrador delegado de esta pantalla.

Entonces, de inmediato, me doy cuenta de cómo están llamando a un método protegido en el delegado de la pantalla. ¿O están mal los documentos y este método no está delegado?

Alguien sabe como logran esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta