Ejemplo n.º 1
0
 private int fetchMessages(MessageListPopup popup) {
   List<Message> messages = messageCenter.getMessages();
   popup.getMessageList().setRowCount(messages.size(), true);
   popup.getMessageList().setRowData(0, messages);
   return messages.size();
 }
Ejemplo n.º 2
0
 private void reflectMessageCount() {
   int numMessages = messageCenter.getNewMessageCount();
   messageButton.setHTML(MESSAGE_LABEL + ": " + numMessages);
 }
Ejemplo n.º 3
0
  public Widget asWidget() {

    HorizontalPanel layout = new HorizontalPanel();
    layout.getElement().setAttribute("title", "Notification Center");
    layout.setStyleName("notification-center");

    messageButton = new HTML(MESSAGE_LABEL + ": " + messageCenter.getNewMessageCount());
    messageButton.addStyleName("notification-button");

    ClickHandler clickHandler =
        new ClickHandler() {
          public void onClick(ClickEvent event) {

            int numMessages = fetchMessages(messagePopup);
            if (numMessages == 0) numMessages = 1;

            int width = 250;
            int height = numMessages * 35;

            messagePopup.setPopupPosition(
                messageButton.getAbsoluteLeft() - (width + 10 - messageButton.getOffsetWidth()),
                messageButton.getAbsoluteTop() + 25);

            messagePopup.show();
            Scheduler.get()
                .scheduleDeferred(
                    new Scheduler.ScheduledCommand() {
                      @Override
                      public void execute() {
                        messagePopup.focusOnFirstMessage();
                      }
                    });

            messagePopup.setWidth(width + "px");
            messagePopup.setHeight(height + "px");
          }
        };

    messageButton.addClickHandler(clickHandler);

    messageDisplay = new HorizontalPanel();
    messageDisplay.getElement().setAttribute("role", "log");
    messageDisplay.getElement().setAttribute("aria-live", "polite");
    messageDisplay.getElement().setAttribute("aria-atomic", "true");

    layout.add(messageDisplay);
    layout.add(messageButton);

    messageDisplay
        .getElement()
        .getParentElement()
        .setAttribute("style", "width:100%;padding-right:5px");
    messageDisplay.getElement().getParentElement().setAttribute("align", "right");

    messageButton.getElement().getParentElement().setAttribute("style", "width:60px");
    messageButton.getElement().getParentElement().setAttribute("align", "right");

    // register listener
    messageCenter.addMessageListener(this);
    Console.getEventBus().addHandler(ReloadEvent.TYPE, this);

    return layout;
  }