Package org.olat.notifications

Source Code of org.olat.notifications.NotificationSubscriptionAndNewsFormatter

/**
* OLAT - Online Learning and Training<br>
* http://www.olat.org
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
* University of Zurich, Switzerland.
* <p>
*/
package org.olat.notifications;

import java.util.Map;

import org.olat.ControllerFactory;
import org.olat.core.gui.translator.Translator;
import org.olat.core.util.notifications.NotificationsManager;
import org.olat.core.util.notifications.Publisher;
import org.olat.core.util.notifications.Subscriber;
import org.olat.core.util.notifications.SubscriptionInfo;
import org.olat.core.util.notifications.SubscriptionItem;

/**
* Description:<br>
* This class provides helper methods to render notification news details
*
* <P>
* Initial Date: 22.12.2009 <br>
*
* @author gnaegi
*/
public class NotificationSubscriptionAndNewsFormatter {
  private Translator translator;
  private Map<Subscriber, SubscriptionInfo> subsInfoMap;

  NotificationSubscriptionAndNewsFormatter(Translator translator, Map<Subscriber, SubscriptionInfo> subsInfoMap) {
    this.translator = translator;
    this.subsInfoMap = subsInfoMap;
  }

  public String getType(Subscriber sub) {
    Publisher pub = sub.getPublisher();
    String innerType = pub.getType();
    String typeName = ControllerFactory.translateResourceableTypeName(innerType, translator.getLocale());
    return typeName;
  }

  public String getContainerType(Subscriber sub) {
    Publisher pub = sub.getPublisher();
    String containerType = pub.getResName();
    String containerTypeTrans = ControllerFactory.translateResourceableTypeName(containerType, translator.getLocale());
    return containerTypeTrans;
  }

  public boolean hasNews(Subscriber sub) {
    return subsInfoMap.containsKey(sub);
  }
 
  public String getNewsAsHTML(Subscriber sub) {
    return getNews(sub, SubscriptionInfo.MIME_HTML);
  }

  public String getNewsAsTxt(Subscriber sub) {
    return getNews(sub, SubscriptionInfo.MIME_PLAIN);
  }

  private String getNews(Subscriber sub, String mimeType) {
    SubscriptionInfo subsInfo = subsInfoMap.get(sub);
    if (subsInfo == null || !subsInfo.hasNews()) return translator.translate("news.no.news");
    return subsInfo.getSpecificInfo(mimeType, translator.getLocale());
  }

  public String getTitleAsHTML(Subscriber sub) {
    return getTitle(sub, SubscriptionInfo.MIME_HTML);
  }

  public String getTitleAsTxt(Subscriber sub) {
    return getTitle(sub, SubscriptionInfo.MIME_PLAIN);
  }

  private String getTitle(Subscriber sub, String mimeType) {
    SubscriptionInfo subsInfo = subsInfoMap.get(sub);
    if (subsInfo == null) return "";
    return subsInfo.getTitle(mimeType);
  }
 
  public String getCustomUrl(Subscriber sub) {
    SubscriptionInfo subsInfo = subsInfoMap.get(sub);
    return subsInfo.getCustomUrl();
  }

  public SubscriptionItem getSubscriptionItem(Subscriber sub) {
    NotificationsManager notiMgr = NotificationsManager.getInstance();
    SubscriptionItem subscrItem = notiMgr.createSubscriptionItem(sub, translator.getLocale(), SubscriptionInfo.MIME_HTML, SubscriptionInfo.MIME_HTML);
    return subscrItem;   
  }

 
 
}
TOP

Related Classes of org.olat.notifications.NotificationSubscriptionAndNewsFormatter

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.