/////////////////////////////////////////////////////////////////////////////
//
// 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.plugins.crm;
import org.apache.log4j.Logger;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.projectforge.web.wicket.AbstractEditForm;
import org.projectforge.web.wicket.bootstrap.GridSize;
import org.projectforge.web.wicket.flowlayout.DivPanel;
import org.projectforge.web.wicket.flowlayout.FieldsetPanel;
/**
* This is the edit formular page.
* @author Werner Feder (werner.feder@t-online.de)
*/
public class ContactEditForm extends AbstractEditForm<ContactDO, ContactEditPage>
{
private static final long serialVersionUID = 7930242750045989712L;
private static final Logger log = Logger.getLogger(ContactEditForm.class);
@SpringBean(name = "contactDao")
private ContactDao contactDao;
@SpringBean(name = "personalContactDao")
private PersonalContactDao personalContactDao;
protected ContactPageSupport contactEditSupport;
/**
* @param parentPage
* @param data
*/
public ContactEditForm(final ContactEditPage parentPage, final ContactDO data)
{
super(parentPage, data);
}
@Override
public void init()
{
super.init();
contactEditSupport = new ContactPageSupport(this, gridBuilder, (ContactDao) getBaseDao(), personalContactDao, data);
gridBuilder.newSplitPanel(GridSize.COL75);
contactEditSupport.addName();
contactEditSupport.addFirstName();
final FieldsetPanel fs = (FieldsetPanel)contactEditSupport.addFormOfAddress();
// final DivPanel checkBoxPanel = fs.addNewCheckBoxDiv();
// checkBoxPanel.addCheckBox(new PropertyModel<Boolean>(contactEditSupport.personalContact, "favoriteCard"), getString("favorite"),
final DivPanel checkBoxPanel = fs.addNewCheckBoxButtonDiv();
checkBoxPanel.addCheckBoxButton(new PropertyModel<Boolean>(contactEditSupport.personalContact, "favoriteCard"), getString("favorite"),
getString("address.tooltip.vCardList"));
contactEditSupport.addTitle();
contactEditSupport.addOrganization();
contactEditSupport.addDivision();
contactEditSupport.addPosition();
contactEditSupport.addWebsite();
contactEditSupport.addBirthday();
contactEditSupport.addLanguage();
contactEditSupport.addContactStatus();
contactEditSupport.addAddressStatus();
contactEditSupport.addFingerPrint();
contactEditSupport.addPublicKey();
contactEditSupport.addComment();
// Emails
FieldsetPanel fs2 = gridBuilder.newFieldset(ContactDO.class, "emailValues").suppressLabelForWarning();
fs2.add(new EmailsPanel(fs.newChildId(), new PropertyModel<String>(data, "emailValues")));
// Phones
fs2 = gridBuilder.newFieldset(ContactDO.class, "phoneValues").suppressLabelForWarning();
fs2.add(new PhonesPanel(fs.newChildId(), new PropertyModel<String>(data, "phoneValues")));
// Instant Messaging Entries
fs2 = gridBuilder.newFieldset(ContactDO.class, "socialMediaValues").suppressLabelForWarning();
fs2.add(new SocialMediaPanel(fs.newChildId(), new CompoundPropertyModel<ContactDO>(data)));
// Contacts
fs2 = gridBuilder.newFieldset(ContactDO.class, "contacts").suppressLabelForWarning();
fs2.add(new ContactEntryPanel(fs.newChildId(), new CompoundPropertyModel<ContactDO>(data)));
}
/**
* @see org.projectforge.web.wicket.AbstractEditForm#getLogger()
*/
@Override
protected Logger getLogger()
{
return log;
}
}