Package org.projectforge.web.mobile

Source Code of org.projectforge.web.mobile.ActionLinkPanel

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2014 Kai Reinhard (k.reinhard@micromata.de)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.web.mobile;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.projectforge.web.wicket.ImageDef;
import org.projectforge.web.wicket.PresizedImage;

/**
* A link panel which instantiates a phone call on an iPhone as well as an sms or an e-mail.
* @author Kai Reinhard (k.reinhard@micromata.de)
*
*/
public class ActionLinkPanel extends Panel // implements IField
{
  private static final long serialVersionUID = -5497704312133705066L;

  public ActionLinkPanel(final String id, final ActionLinkType actionLinkType, final String value)
  {
    super(id);
    AbstractLink link1;
    if (actionLinkType == ActionLinkType.CALL) {
      add(link1 = getCallLink(value));
      add(getInvisibleSmsLink());
    } else if (actionLinkType == ActionLinkType.SMS) {
      add(new Label("link", "[invisible]").setVisible(false));
      add(getSmsLink(value));
    } else if (actionLinkType == ActionLinkType.CALL_AND_SMS) {
      add(link1 = getCallLink(value));
      add(getSmsLink(value));
    } else if (actionLinkType == ActionLinkType.MAIL) {
      add(link1 = new ExternalLink("link", "mailto:" + value, value));
      add(getInvisibleSmsLink());
    } else {
      final String url;
      if (value != null && value.contains("://") == true) {
        url = value;
      } else {
        url = "http://" + value;
      }
      add(link1 = new ExternalLink("link", url, value));
      link1.add(AttributeModifier.append("target", "_blank"));
      add(getInvisibleSmsLink());
    }
  }

  private ExternalLink getCallLink(final String number)
  {
    return new ExternalLink("link", "tel:" + number, number);
  }

  private ExternalLink getSmsLink(final String number)
  {
    final ExternalLink smsLink = new ExternalLink("sms", "sms:" + number);
    smsLink.add(new PresizedImage("smsImage", ImageDef.SMS));
    return smsLink;
  }

  private Component getInvisibleSmsLink()
  {
    return new Label("sms", "[invisible]").setVisible(false);
  }
}
TOP

Related Classes of org.projectforge.web.mobile.ActionLinkPanel

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.