Question

Je suis en train de regarder dans l'intégration groovy-wicket et le manque de classes internes anonymes semble être un problème lors de l'écriture des gestionnaires d'événements. Y a-t-il une manière plus groovy d’écrire ce code

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"}
}
Était-ce utile?

La solution

Je peux me tromper, mais n'est-ce pas ce que WickeBuilder tente de résoudre :

  

L'utilitaire Wicket Builder implémente   un constructeur de construction pour la construction   Arborescence des composants du guichet.

     

Tout en utilisant le constructeur rend la construction   Arbres de composants plus faciles et plus clairs   Pour le lecteur, le pilote d'origine était   le fait que Groovy ne permet pas   classes internes anonymes. Guichet   repose sur des méthodes primordiales pour   fournir des fonctionnalités personnalisées pour beaucoup   Types de composants. Groovy peut être utilisé   pour coder des classes de page Wicket, mais chaque   la classe qui est remplacée a besoin d'un nom   définition de classe. Possible, mais   maladroit.

     

Le WicketBuilder simule ces   remplace avec des fermetures nommées.   Les fermetures sont essentiellement portables   blocs de code. Sous le capot, le   Le constructeur crée une classe dynamique   annule et exécute les fermetures lorsque   la méthode nommée est appelée.

     

[...]

Autres conseils

Ermh .. Cela ne ressemble pas à un "bon" alternative, mais il semble que ce soit le "fonctionnaire" Alternative Groovy:

Alternatives géniales aux classes intérieures

Exemple d'utilisation de groovy 1.7.x et du guichet 1.4.x http://wash-inside-out.blogspot.com/2010/08/wicket-and-groovy-integration.html

En fait, je n’utilise pas souvent de groovy, mais j’ai posé la même question il ya quelques mois. J'ai essayé différentes approches

http: //rschmid.wordpress. com / 2009/05/03 / anonymouse-in-classes-en-groovy /

Groovy 1.7 et les versions ultérieures prennent en charge les classes internes anonymes. Voir le groovy 1.7 notes de publication .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top