Package org.projectforge.web.address

Source Code of org.projectforge.web.address.AddressEditPage

/////////////////////////////////////////////////////////////////////////////
//
// 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.address;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Date;

import org.apache.log4j.Logger;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.projectforge.address.AddressDO;
import org.projectforge.address.AddressDao;
import org.projectforge.address.PersonalAddressDO;
import org.projectforge.address.PersonalAddressDao;
import org.projectforge.common.DateHelper;
import org.projectforge.core.ConfigXml;
import org.projectforge.web.wicket.AbstractEditPage;
import org.projectforge.web.wicket.AbstractSecuredBasePage;
import org.projectforge.web.wicket.DownloadUtils;
import org.projectforge.web.wicket.EditPage;
import org.projectforge.web.wicket.components.ContentMenuEntryPanel;

@EditPage(defaultReturnPage = AddressListPage.class)
public class AddressEditPage extends AbstractEditPage<AddressDO, AddressEditForm, AddressDao>
{
  private static final long serialVersionUID = 7091721062661400435L;

  private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(AddressEditPage.class);

  @SpringBean(name = "addressDao")
  private AddressDao addressDao;

  @SpringBean(name = "personalAddressDao")
  private PersonalAddressDao personalAddressDao;

  @SuppressWarnings("serial")
  public AddressEditPage(final PageParameters parameters)
  {
    super(parameters, "address");
    init();
    if (isNew() == false) {
      ContentMenuEntryPanel menu = new ContentMenuEntryPanel(getNewContentMenuChildId(), new Link<Void>(ContentMenuEntryPanel.LINK_ID) {
        @Override
        public void onClick()
        {
          final Integer addressId = form.getData().getId();
          final PageParameters params = new PageParameters();
          params.add(AbstractEditPage.PARAMETER_KEY_ID, addressId);
          final AddressViewPage addressViewPage = new AddressViewPage(params);
          setResponsePage(addressViewPage);
        };
      }, getString("printView"));
      addContentMenuEntry(menu);

      final ContentMenuEntryPanel singleIcalExport = new ContentMenuEntryPanel(getNewContentMenuChildId(), new Link<Void>(ContentMenuEntryPanel.LINK_ID) {
        @Override
        public void onClick()
        {
          final AddressDO address = form.getData();
          final String filename = "ProjectForge-" + address.getFullName() + "_" + DateHelper.getDateAsFilenameSuffix(new Date()) + ".vcf";
          final StringWriter writer = new StringWriter();
          addressDao.exportVCard(new PrintWriter(writer), address);
          DownloadUtils.setUTF8CharacterEncoding(getResponse());
          DownloadUtils.setDownloadTarget(writer.toString().getBytes(), filename);
        };
      }, getString("address.book.vCardSingleExport"));
      addContentMenuEntry(singleIcalExport);


      if (ConfigXml.getInstance().isTelephoneSystemUrlConfigured() == true) {
        menu = new ContentMenuEntryPanel(getNewContentMenuChildId(), new Link<Void>(ContentMenuEntryPanel.LINK_ID) {
          @Override
          public void onClick()
          {
            final Integer addressId = form.getData().getId();
            final PageParameters params = new PageParameters();
            params.add(PhoneCallPage.PARAMETER_KEY_ADDRESS_ID, addressId);
            setResponsePage(new PhoneCallPage(params));
          };
        }, getString("address.directCall.call"));
        addContentMenuEntry(menu);
      }
    }
  }

  @Override
  public AbstractSecuredBasePage afterSaveOrUpdate()
  {
    final AddressDO address = addressDao.getOrLoad(getData().getId());
    final PersonalAddressDO personalAddress = form.addressEditSupport.personalAddress;
    personalAddress.setAddress(address);
    personalAddressDao.setOwner(personalAddress, getUserId()); // Set current logged in user as owner.
    personalAddressDao.saveOrUpdate(personalAddress);
    return null;
  }

  /**
   * @see org.projectforge.web.wicket.AbstractEditPage#cloneData()
   */
  @Override
  protected void cloneData()
  {
    super.cloneData();
    final PersonalAddressDO personalAddress = form.addressEditSupport.personalAddress;
    personalAddress.setId(null);
    personalAddress.setDeleted(false);
  }

  @Override
  protected AddressDao getBaseDao()
  {
    return addressDao;
  }

  @Override
  protected AddressEditForm newEditForm(final AbstractEditPage< ? , ? , ? > parentPage, final AddressDO data)
  {
    return new AddressEditForm(this, data);
  }

  @Override
  protected Logger getLogger()
  {
    return log;
  }
}
TOP

Related Classes of org.projectforge.web.address.AddressEditPage

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.