JGrowlFeedbackPanel选项无法正常工作

时间:2012-06-18 12:19:43

标签: wicket jgrowl

我试图在我的项目中使用JGrowlFeedbackPanel组件。这是一个关于JGrowl插件(JQuery)的wicket采用。我是从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;
}

我想改变jGrowl的defaut位置和颜色,但它们根本没有变化。我可以在我的css文件中使用!important声明,但我认为这不是一个好主意。我将不胜感激任何建议。谢谢!

2 个答案:

答案 0 :(得分:0)

对于这个职位,jGrowl在其文档中清楚地说:

  

必须在启动方法之前更改默认设置   调用。

链接:jGrowl

- >根据我在这里找到的源代码: JGrowlFeedbackMessage.java 和这里: JGrowlFeedbackPanel.java 这可能无法按照它的方式工作,因为您必须进入“jquery.jgrowl.js”来修改位置默认值...

另外我不明白为什么jGrowl选项不能在JS中完全扩展。

也许更好的建议是使用jquery通知程序,构建自己的面板并通过target.appendJavaScript()方法将调用包装为触发通知。 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 + "})");
      }
    }

如果需要,我可以在我的博客上提供更详细的例子......

答案 1 :(得分:0)

当我与WicketStuff的jGrowl面板集成后,我今天注意到了两件事。

  1. 除非我先在页面上显示任何反馈消息之前先调用$ .jGrowl(),否则它总会错过我的第一条消息。 这仅在IE10中受到影响,请参阅https://github.com/stanlemon/jGrowl/issues/17
  2. 随附的Options类如果将它们作为字符串传递,则喜欢在选项周围添加单引号。因此,请确保使用新的Interger(x)或其他类型的对象。
  3. 否则这是一个很好的UI添加。