0

プロジェクトでJGrowlFeedbackPanelコンポーネントを使用しようとしています。これは、JGrowlプラグイン(JQuery)のウィケット採用です。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のデフォルトの位置と色を変更したいのですが、まったく変更されません。cssファイルで!important宣言を使用できますが、それは良い考えではないと思います。何か提案をいただければ幸いです。ありがとう!

4

2 に答える 2

0

ポジションについては、jGrowlはドキュメントで次のように明確に述べています。

これは、startupメソッドが呼び出される前にデフォルトで変更する必要があります。

リンク:jGrowl

->私がここで見つけたソースコードによると: JGrowlFeedbackMessage.java とここ: JGrowlFeedbackPanel.java 位置のデフォルトを変更するには「jquery.jgrowl.js」内に入る必要があるため、これは実行される方法では機能しない可能性があります。 ..

また、JSでjGrowlオプションを完全に拡張できない理由もわかりません。

おそらく、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 + "})");
      }
    }

必要に応じて、ブログでより詳細な例を紹介するかもしれません...

于 2012-11-21T08:53:34.023 に答える
0

WicketStuffのjGrowlパネルと統合すると、今日2つのことに気づきました。

  1. フィードバックメッセージがページに表示される前に最初に$.jGrowl()を呼び出さない限り、最初のメッセージを常に見逃します。これはIE10でのみ影響を受けます。https: //github.com/stanlemon/jGrowl/issues/17を参照してください
  2. 付属のOptionsクラスは、オプションを文字列として渡す場合、オプションを一重引用符で囲むのが好きです。したがって、必ず新しいInterger(x)または他のタイプのオブジェクトを使用してください。

それ以外の場合、これは優れたUIの追加です。

于 2013-11-21T22:47:55.143 に答える