NooCodeCommit.com change de peau

News, Stuff par nicogiard 6 Comments »

Pour son anniversaire, NooCodeCommit.com change de peau.

Après un an, je commence à me lasser du thème actuel et c’est donc avec une grande motivation que je me suis lancé dans une grande entreprise : réaliser un thème pour wordpress.

Après un peu de temps passé sur la suite de tutoriaux « Wordpress for Designers » de chez In The Woods, je me suis rendu compte que pour partir de zéro, faut vraiment être un bon graphiste. Donc du coup j’ai fureté un peu pour m’inspirer. Désolé par contre, je ne me souviens plus trop les sources.

Et voilà donc le résultat est devant vos yeux ébahis!

N’hésitez pas à laisser vos commentaires pour m’aider à améliorer ce thème, ou si vous êtes confronté à un bug d’affichage.

Oyé! Oyé! Sortie de la version 1.4.0 de Wicket

News, Wicket par nicogiard No Comments »

C’est en ce beau jour du 30 Juillet 2009 que notre attente s’achève!

Et oui, c’est aujourd’hui que Martijn Dashorst, nous a annoncé officiellement sur la mailling list, la sortie de la version 1.4.0 du framework Apache Wicket.

Et c’est Carl Azoury de chez Zenika qui à traduit cette annonce dans la langue de molière.


Les principales modifications sont :

  • L’interface et les implémentations de IModel utilisent maintenant les Generics
  • Les méthodes getModel() et setModel() sur la classe Component ont été renommées en getDefaultModel() et setDefaultModel()
  • Les modules Spring ont fusionné, le seul jar nécessaire maintenant est wicket-spring.jar
  • Modifications sur plusieurs API afin de bénéficier des fonctionnalités Java 5
  • Les jars Wicket sont maintenant packagés avec des METADATA pour en faire des bundle OSGi

Un grand merci à Carl qui m’a gentiement permis de citer directement son article

Vous retrouverez l’intégralité de la traduction sur le site Yes, Wicket!

Je m’en vais de ce pas faire la mise à jour de tous mes projets avec cette version 1.4.0!

Les flux RSS de NooCodeCommit passent sur FeedBurner

Stuff par nicogiard 2 Comments »

Les Flux RSS de NooCodeCommit.com passe sur FeedBurner pour avoir un peu plus de visibilité quand à la fréquentation de nos chers visiteurs.

Vous trouverez donc les flux suivants :

Désolé pour le dérangement.

Une Refcardz pour Wicket!

News, Wicket par nicogiard No Comments »

Info flash pour vous prévenir de la sortie d’une Refcardz dédiée à Wicket :
Getting Started with Apache Wicket
N’hésitez pas à la récupérer (un compte (gratuit) chez DZone est nécessaire)

Pour rappel, les Refcardz sont des documents de références, écrits par des pointures, pour expliquer le plus clairement possible tel ou tel technos/frameworks.

Onglets Dynamiques : Etape 7 – Corrections

Tutorial, Wicket par nicogiard 5 Comments »

Après avoir découvert le site Wicket By Example, réalisé par les gars de chez Mystic Coders, j’ai découvert comment améliorer le code de l’étape 7.

En effet, dans cette étape j’ai opté pour créer ma propre classe OngletAjaxLink pour avoir la main sur la déclaration de l’évennement onclick. C’était avant que je découvre l’article Adding Javascript confirm dialog to AjaxButton.

Donc, exit la classe OngletAjaxLink. On revient au code de l’étape 6 pour PanelOnglets c’est à dire :

public class PanelOnglets extends Panel {
  private WebMarkupContainer ongletsContainer;
  private CompoundPropertyModel<OngletsModelObject> ongletsModel;
 
  public PanelOnglets(String _id, CompoundPropertyModel<OngletsModelObject> _ongletsModel) {
    super(_id);
 
    // CSS
    add(CSSPackageResource.getHeaderContribution(this.getClass(), this.getClass().getSimpleName() + ".css"));
 
    this.ongletsModel = _ongletsModel;
 
    // Repeater des onglets
    ListView<String> onglets = new ListView<String>("onglet", ongletsModel.getObject().getListOnglets()) {
      @Override
	    protected void populateItem(final ListItem<String> _item) {
        String libelle = _item.getModelObject();
        AjaxLink<Object> linkOnglet = new AjaxLink<Object>("linkOnglet") {
          @Override
          public void onClick(AjaxRequestTarget target) {
            ...
          }
        }
      };
      Label labelOnglet = new Label("labelOnglet", libelle);
      linkOnglet.add(labelOnglet);
      _item.add(linkOnglet);
    }
    ...
  }
}

Et on redéfinit la méthode IAjaxCallDecorator getAjaxCallDecorator() de l’objet AjaxLink qui nous permet de décorer le script initial avec du code javascript (via la méthode preDecorateScript). ce qui nous donne :

public class PanelOnglets extends Panel {
  private WebMarkupContainer ongletsContainer;
  private CompoundPropertyModel<OngletsModelObject> ongletsModel;
 
  public PanelOnglets(String _id, CompoundPropertyModel<OngletsModelObject> _ongletsModel) {
    super(_id);
 
    // CSS
    add(CSSPackageResource.getHeaderContribution(this.getClass(), this.getClass().getSimpleName() + ".css"));
 
    this.ongletsModel = _ongletsModel;
 
    // Repeater des onglets
    ListView<String> onglets = new ListView<String>("onglet", ongletsModel.getObject().getListOnglets()) {
      @Override
      protected void populateItem(final ListItem<String> _item) {
        String libelle = _item.getModelObject();
        AjaxLink<Object> linkOnglet = new AjaxLink<Object>("linkOnglet") {
 
          @Override
          protected IAjaxCallDecorator getAjaxCallDecorator() {
            return new AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()) {
              @Override
              public CharSequence preDecorateScript(CharSequence script) {
                return "updateOnglet(" + _item.getIndex() + ");" + script;
              }
            };
          }
 
          @Override
          public void onClick(AjaxRequestTarget target) {
            ...
          }
        }
      };
      Label labelOnglet = new Label("labelOnglet", libelle);
      linkOnglet.add(labelOnglet);
      _item.add(linkOnglet);
    }
    ...
  }
}

Voilà, le code source est donc plus cohérent et utilise pleinement les capacités du Framework!
Comme quoi en fouillant un peu, on arrive toujours à améliorer son code!

Une fois de plus, j’ai mis à jour le résultat étape par étape et voilà le code source qui remplace celui de l’étape 7 initiale (sous la forme d’un projet Eclipse, il vous faudra aussi maven pour la gestion des dépendances).

Imprimer cet article Imprimer cet article
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion