Pergunta

Eu estou olhando para a integração Groovy-postigo ea falta de classes internas anônimas parece ser um problema ao escrever os manipuladores de eventos. Existe uma maneira groovier de escrever este código

import org.apache.wicket.PageParameters
import org.apache.wicket.markup.html.basic.Label
import org.apache.wicket.markup.html.link.Link
import org.apache.wicket.markup.html.WebPage


/**
 * Homepage
 */
class HomePage extends WebPage {


    public HomePage(final PageParameters parameters) {

        // Add the simplest type of label
        add(new Label("message", "Wicket running!"));   
        def link1 = new ClickHandler("link1") //in java, defined inline
        add(link1);
    }   
}

class ClickHandler extends Link{

    ClickHandler(String id) {
        super(id);
    }

    void onClick(){println "Hi"}
}
Foi útil?

Solução

Posso estar errado, mas não é isso o que o WickeBuilder tenta resolver :

Os implementos utilidade Wicket Builder um construtor Groovy para a construção árvores Wicket de componentes.

Ao usar o construtor faz edifício árvores componente mais fácil e mais clara para o leitor, o motorista original o fato de que Groovy não permite anônimos classes internas. Postigo depende substituindo métodos para fornecer funcionalidade personalizada para muitos tipos de componentes. Groovy pode ser usado Para codificar classes de página Wicket, mas cada classe que é necessidades substituídos uma nomeados definição de classe. Possível, mas desajeitado.

O WicketBuilder simula estes sobreposições com Closures nomeados. Closures são, essencialmente, portátil blocos de código. Sob o capuz, o construtor cria classe dinâmica Sobreposições e executa os fechamentos quando o método chamado é chamado.

[...]

Outras dicas

Ermh .. Isto não se parece com uma "boa" alternativa, mas parece ser o Groovy alternativa "oficial":

Groovy Alternativas a Inner Classes

Eu realmente não usar Groovy, muitas vezes, mas pediu-me a alguns meses mesma pergunta atrás. i experimentou diferentes abordagens

http: //rschmid.wordpress. com / 2009/05/03 /-anônimo-interno-aulas-in Groovy /

Groovy 1.7 e suporte acima anônimos classes internas. Veja Groovy 1.7 notas de lançamento .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top