All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.wicketstuff.chat.components.notifications.InvitationPanel Maven / Gradle / Ivy

The newest version!
package org.wicketstuff.chat.components.notifications;

import java.util.Map;
import java.util.UUID;

import org.apache.wicket.model.IModel;
import org.apache.wicket.util.time.Duration;
import org.wicketstuff.chat.model.ChatroomModel;

import de.alpharogroup.string.StringExtensions;

public abstract class InvitationPanel extends NotificationPanel
{

	public static final String CHATROOM = "chatroom";
	public static final String CLOSE_LINK_LABEL = "closeLinkLabel";
	public static final String PROFILE_LINK_LABEL = "profileLinkLabel";
	public static final String PROFILE_LINK = "profileLink";
	public static final String CHAT_LINK_LABEL = "chatLinkLabel";
	public static final String CHAT_LINK = "chatLink";
	public static final String INVITATION_LABEL = "invitationLabel";
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	public InvitationPanel(final String id, final IModel model,
		final Duration duration)
	{
		super(id, model, duration);
	}

	@Override
	protected String onGetJavaScript(final Map data)
	{
		final long delay = getDuration().getMilliseconds();
		final String invitationLabel = StringExtensions.getValue(data, INVITATION_LABEL,
			"Chat invitation ");
		final String chatLinkAddress = StringExtensions.getValue(data, CHAT_LINK, "");
		final String chatLinkLabel = StringExtensions.getValue(data, CHAT_LINK_LABEL, "Chat now");
		final String profileLinkAddress = StringExtensions.getValue(data, PROFILE_LINK, "");
		final String profileLinkLabel = StringExtensions.getValue(data, PROFILE_LINK_LABEL,
			"Show profile");
		final String closeLinkLabel = StringExtensions.getValue(data, CLOSE_LINK_LABEL, "Close");
		final String chatroom = StringExtensions.getValue(data, CHATROOM, UUID.randomUUID().toString()
			.substring(0, 7));
		final String divId = getNotification().getMarkupId() + "_" + chatroom;
		final String closeId = divId + "_close";

		final String replaceDiv = "var element = document.getElementById(\"" + divId
			+ "\"); element.parentNode.removeChild(element);";

		final String closeFunction = "var cl = function() { " + replaceDiv + "return false;};";
		final String closeJs = "document.getElementById(\"" + closeId + "\").onclick = cl;";

		final String jqueryHide = "setTimeout(function() { " + replaceDiv + "}, " + delay + ");";
		final String jqueryShow = "$(\"#" + getNotification().getMarkupId() + "\").append('"
			+ "
" + " " + invitationLabel + " " + " " + "
" + "');"; return jqueryShow + jqueryHide + closeFunction + closeJs; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy