Réduire la complexité du code pour GWT
-
07-07-2019 - |
Question
J'ai commencé à apprendre GWT par exemple sur google . et ma première conclusion est: trop de code
Comme ceci:
stocks.add(symbol);
stocksFlexTable.setText(row, 0, symbol);
stocksFlexTable.setWidget(row, 2, new Label());
stocksFlexTable.getCellFormatter().addStyleName(row, 1,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 2,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 3,
"watchListRemoveColumn");
GWT dispose-t-il d'une extension permettant de réduire la taille du code et de simplifier la création de formulaires GWT?
La solution
Le bel exemple (simplifié sur le plan conceptuel mais simpliste) de la conception d'interface utilisateur GWT avec CSS et HTML est Tags First GWT .
Je conviens avec vous que si vous suivez des exemples génériques de la documentation Google, ce n'est pas une expérience agréable. Les choses ont changé récemment, mais elles ne sont pas encore pleinement reflétées dans les documents Google. Essayez ce qui suit: avant de vous lancer dans le développement de GWT, observez ces deux présentations: Meilleures pratiques et Conseils relatifs aux performances .
Sans utilisation de conception d'interface utilisateur basée sur CSS, Event Bus, GWT-RPC basé sur un modèle de commande, couche de présentation MVP et google-gin (implémentation de Guice dans GWT), il est difficile de surmonter la complexité dans GWT comme dans tout autre framework d'interface graphique lourde.
Si vous avez aimé ces idées (décrites dans les présentations ci-dessus), vous pouvez envisager de gwt- dispatch et gwt-presenter qui implémentent certains de ces modèles.
Quelques exemples: MVP GWT Exemple et messagerie Web basée sur Hache GWT d'Apache Labs Hupa
UPDATE: Pour la dernière version de MVP pour GWT, recherchez GWT MVP dans GWT 2.1 et / ou gwt-platform (parmi d'autres solutions qui pourraient fonctionner pour vous).
Autres conseils
UiBinder (GWT 2.0) pourrait être utile
Geez pourrait vous aider.
Geez fournit des dispositions de style faciles à utiliser pour GWT et une série de méthodes statiques pour créer des widgets couramment utilisés.
Nous utilisons un FormBuilder pour construire facilement et de manière compacte des formulaires dans le code:
ListBox type = ...
TextBox notes = ...
FormBuilder b = new FormBuilder();
b.label("Chart type").field(type).endRow();
b.label("Notes").field(notes).wrap().endRow();
b.add("Some help text").style("help").wrap().endRow();
FlexTable form = b.getForm();
...
Il garde une trace de la ligne et de la colonne en cours, dote les cellules de styles de manière cohérente en fonction de la méthode utilisée pour les ajouter (libellé, champ, etc.), assure un espacement constant, etc. Chaque méthode renvoie un FormBuilder pour prendre en charge les appels chaînés. Des éléments tels que wrap ()
s'appliquent à la cellule précédemment ajoutée.
Cette classe fait partie du cadre des portlets GWT .
Découvrez http://code.google.com/p/gwt-pectin/ en combinaison avec UiBinder