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