2012-06-18 105 views
0

我想在我的項目中使用JGrowlFeedbackPanel組件。這是JGrowl插件(JQuery)的檢票。我從一個maven的倉庫中獲得了它。JGrowlFeedbackPanel選項無法正常工作

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的默認位置和顏色,但它們根本不會改變。我可以在我的css文件中使用!important聲明,但我認爲這不是一個好主意。我會感謝任何建議。謝謝!

回答

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 + "})"); 
     } 
    } 

如果需要的話我可以給我的博客更詳細的例子...

0

我注意到兩件事情今天有一次我跟WicketStuff的jGrowl面板集成。

  1. 它總是會錯過我的第一條消息,除非在頁面上顯示任何反饋消息之前先調用$ .jGrowl()。 這僅在IE10中受到影響,請參閱https://github.com/stanlemon/jGrowl/issues/17
  2. 隨附的Options類如果將它們作爲字符串傳遞,則喜歡在選項周圍放置單引號。所以確保你使用新的Interger(x)或其他類型的對象。

否則,這是一個很好的UI添加。