Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class JGrowlBehavior extends AbstractDefaultAjaxBehavior {
- /**
- * serialVersionUID
- */
- private static final long serialVersionUID = 1L;
- /** reference to the default indicator gif file. */
- public static final ResourceReference JGROWL_JS = new ResourceReference(
- MyApplication.class, "ref/jgrowl.js");
- /**
- * Model containing a list of feedback messages.
- */
- private FeedbackMessagesModel feedbackModel;
- /**
- * {@inheritDoc}
- */
- @Override
- public void beforeRender(final Component component) {
- super.beforeRender(component);
- feedbackModel = new FeedbackMessagesModel(component);
- }
- /**
- * @param message
- */
- private String buildNotice(final FeedbackMessage message) {
- final StringBuffer sb = new StringBuffer("jQuery.noticeAdd(");
- final Map<String, Object> map = new HashMap<String, Object>();
- map.put("text", JavascriptUtils.escapeQuotes(message.getMessage()
- .toString()));
- if (message.getLevel() == FeedbackMessage.INFO) {
- map.put("type", "info");
- map.put("stay", Boolean.TRUE);
- } else if (message.getLevel() == FeedbackMessage.ERROR) {
- map.put("type", "error");
- map.put("stay", Boolean.FALSE);
- }
- sb.append(MyUtils.mapToJSON(map));
- sb.append(");");
- return sb.toString();
- }
- /**
- * @return feedback messages. This method is safe to call even if the model
- * was not initialized.
- */
- private List<FeedbackMessage> getFeedbackMessages() {
- return feedbackModel == null ? null : feedbackModel.getObject();
- }
- /**
- * {@inheritDoc}
- */
- private String getJavascript() {
- final StringBuffer js = new StringBuffer();
- final List<FeedbackMessage> messages = getFeedbackMessages();
- if (messages != null) {
- for (final FeedbackMessage message : feedbackModel.getObject()) {
- buildNotice(message);
- js.append(buildNotice(message));
- }
- }
- return js.toString();
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public void renderHead(final IHeaderResponse response) {
- super.renderHead(response);
- response.renderJavascriptReference(JGROWL_JS);
- response.renderOnDomReadyJavascript(getJavascript());
- }
- /**
- * {@inheritDoc}
- */
- @Override
- protected void respond(final AjaxRequestTarget target) {
- target.appendJavascript(getJavascript());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement