Package freenet.node.useralerts

Source Code of freenet.node.useralerts.StoringUserEvent

package freenet.node.useralerts;

import java.util.Iterator;
import java.util.Map;

import freenet.clients.fcp.FCPMessage;
import freenet.clients.fcp.FeedMessage;
import freenet.support.HTMLNode;

public abstract class StoringUserEvent<T extends StoringUserEvent<T>> extends AbstractUserEvent {

  protected final Map<String, T> events;

  protected StoringUserEvent(Map<String, T> events) {
    this.events = events;
  }

  protected StoringUserEvent(Type eventType, boolean userCanDismiss, String title, String text,
      String shortText, HTMLNode htmlText, short priorityClass,
      boolean valid, String dismissButtonText,
      boolean shouldUnregisterOnDismiss, Object userIdentifier, Map<String, T> events) {
    super(eventType, userCanDismiss, title, text, shortText, htmlText, priorityClass,
        valid, dismissButtonText, shouldUnregisterOnDismiss,
        userIdentifier);
    this.events = events;
  }

  public abstract String getEventText();
  public abstract HTMLNode getEventHTMLText();

  @Override
  public HTMLNode getHTMLText() {
    HTMLNode text = new HTMLNode("div");
    synchronized(events) {
      for(StoringUserEvent<T> event : events.values()) {
        text.addChild(event.getEventHTMLText());
      }
    }
    return text;
  }

  @Override
  public FCPMessage getFCPMessage() {
    return new FeedMessage(getEventText(), getEventText(), getEventText(), getPriorityClass(), getUpdatedTime());
  }

  @Override
  public void onDismiss() {
    synchronized(events) {
      for(Iterator<T> iter = events.values().iterator(); iter.hasNext();) {
        T event = iter.next();
        event.onEventDismiss();
        iter.remove();
      }
    }
  }

  @Override
  public boolean isValid() {
    boolean valid;
    synchronized(events) {
      valid = !events.isEmpty();
    }
    return valid;
  }

  public abstract void onEventDismiss();

}
TOP

Related Classes of freenet.node.useralerts.StoringUserEvent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.