/ / Les options de JGrowlFeedbackPanel ne fonctionnent pas correctement - wicket, jgrowl

Les options de JGrowlFeedbackPanel ne fonctionnent pas correctement - Wicket, jgrowl

J'essaye d'utiliser un composant JGrowlFeedbackPanel dans mon projet. C'est une adoption par guichet du plugin JGrowl (JQuery). Je l 'ai obtenu à partir du référentiel d' un maven.

ResourceReference cssMenuRef = new ResourceReference(HomePage.class, "style_menu.css");
add(CSSPackageResource.getHeaderContribution(cssMenuRef));

JGrowlFeedbackPanel feedbackPanel = new JGrowlFeedbackPanel("feedbackPanel", new ErrorLevelFeedbackMessageFilter(FeedbackMessage.WARNING));
add(feedbackPanel);
Options errorOptions = new Options();
errorOptions.set("header", "Error"); //works
errorOptions.set("sticky", true); //works
errorOptions.set("position", "center"); //doesn"t work
errorOptions.set("theme", "feedback"); //doesn"t work
error("TEST!");
feedbackPanel.setErrorMessageOptions(errorOptions);

.feedback {
color: #ff0000;
background-color: #FFFFFF !important ;
width: 400px;
}

Je voudrais changer la position par défaut de jGrowl etcouleur, mais ils ne changent pas du tout. Je peux utiliser la déclaration! important dans mon fichier css, mais je pense que ce n'est pas une bonne idée. J'apprécierai toutes les suggestions. Merci!

Réponses:

0 pour la réponse № 1

Pour le poste, jGrowl dit clairement dans sa documentation:

Cela doit être modifié dans les valeurs par défaut avant que la méthode de démarrage ne soit appelé.

Lien: jGrowl

-> Selon le code source que j'ai trouvé ici: JGrowlFeedbackMessage.java et ici: JGrowlFeedbackPanel.java Cela peut ne pas fonctionner comme cela est fait car vous devrez aller dans le "jquery.jgrowl.js" pour modifier la position par défaut ...

Je ne comprends pas non plus pourquoi les options jGrowl ne peuvent pas être complètement étendues dans JS.

Peut-être qu'un meilleur conseil serait d'utiliser jquery notifier, de créer votre propre panneau et d'encapsuler l'appel pour déclencher des notifications via la méthode target.appendJavaScript (). Exemple pour wicket6:

    public void showExpiringNotification(final String title, final String message, final int expiringSpeed) {
AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
if (target != null) {
target.appendJavaScript("$("#container").notify("create","error",{title: "" + title + "", text: "" + message
+ "" },{expires: " + expiringSpeed + "})");
}
}

Si besoin, je pourrais donner un exemple plus détaillé sur mon blog ...


0 pour la réponse № 2

J'ai remarqué deux choses aujourd'hui une fois que j'ai intégré le panneau jGrowl de WicketStuff.

  1. Il manque toujours mon premier message à moins que j'appelle d'abord $ .jGrowl () avant que des messages de retour ne soient affichés sur la page. Ceci n'est affecté que dans IE10, voir https://github.com/stanlemon/jGrowl/issues/17
  2. La classe Options qui l'accompagne aime mettre des guillemets simples autour des options si vous les passez sous forme de chaînes. Assurez-vous donc d'utiliser un nouvel Interger (x) ou un autre type d'objet.

Sinon, c'est un bel ajout à l'interface utilisateur.