BlackBerry - Diversão com FieldManagers

Eu estou tentando fazer uma classe de exibição que fornece um layout horizontal ou vertical dependendo de como ele é criado. Estou usando um delegado para conseguir isso.

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

}

Quando eu instancio um objeto View, eu passo em um gerenciador de campo Horizontal ou Vertical e delego chamadas para isso. Isso é meio que o que a classe Screen faz no blackberry.

Na verdade, estou olhando para os documentos do BlackBerry para o Screen para ver o que ele chama de delegados (para que eu possa imitar isso) e noto chamadas como essa na Tela ...

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

Delega o evento de geração de chave ao campo controlado com foco. Esse método chama Manager.keyChar (char, int, int) no gerenciador de delegados dessa tela.

Então, imediatamente me ocorre, como no mundo eles estão chamando um método protegido no delegado da tela? Ou os documentos estão errados e esse método não é delegado?

Alguém sabe como eles conseguem isso?

questionAnswers(2)

yourAnswerToTheQuestion