/////////////////////////////////////////////////////////////////////////////
//
// 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 org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.projectforge.address.AddressDO;
import org.projectforge.web.wicket.AbstractEditForm;
import org.projectforge.web.wicket.bootstrap.GridSize;
import org.projectforge.web.wicket.flowlayout.FieldsetPanel;
/**
* @author M. Lauterbach (m.lauterbach@micromata.de)
*
*/
public class AddressCompareForm extends AbstractEditForm<AddressDO, AddressComparePage>
{
/**
*
*/
private static final long serialVersionUID = 4990179617114170795L;
private final AddressDO dataOld;
/**
* @param parentPage
* @param data
*/
public AddressCompareForm(final AddressComparePage parentPage, final AddressDO dataNew, final AddressDO dataOld)
{
super(parentPage, dataOld);
this.dataOld = dataOld;
data = dataNew;
}
/**
* @see org.apache.wicket.Component#onInitialize()
*/
@Override
protected void onInitialize()
{
super.onInitialize();
feedbackPanel.error(getString("address.book.vCardImport.existingEntry"));
// new address
gridBuilder.newSplitPanel(GridSize.COL50);
initFields(dataOld, false);
// existing address
if (data != null) {
gridBuilder.newSplitPanel(GridSize.COL50);
initFields(data, true);
}
}
private void initFields(final AddressDO address, final boolean enabled) {
final FieldsetPanel fsName = gridBuilder.newFieldset("Name");
fsName.add(new TextField<String>(fsName.getTextFieldId(), new PropertyModel<String>(address, "name")));
fsName.setEnabled(enabled);
if (StringUtils.equals(dataOld.getName(), data.getName()) == true) {
setMark(fsName, enabled);
}
final FieldsetPanel fsFirstName = gridBuilder.newFieldset("FirstName");
fsFirstName.add(new TextField<String>(fsFirstName.getTextFieldId(), new PropertyModel<String>(address, "firstName")));
fsFirstName.setEnabled(enabled);
if (StringUtils.equals(dataOld.getFirstName(), data.getFirstName()) == true) {
setMark(fsFirstName, enabled);
}
final FieldsetPanel fsEmailBusiness = gridBuilder.newFieldset("Mail gesch.");
fsEmailBusiness.add(new TextField<String>(fsEmailBusiness.getTextFieldId(), new PropertyModel<String>(address, "email")));
fsEmailBusiness.setEnabled(enabled);
if (StringUtils.equals(dataOld.getEmail(), data.getEmail()) == true) {
setMark(fsEmailBusiness, enabled);
}
final FieldsetPanel fsBusinessPhone = gridBuilder.newFieldset("Tele gesch.");
fsBusinessPhone.add(new TextField<String>(fsBusinessPhone.getTextFieldId(), new PropertyModel<String>(address, "businessPhone")));
fsBusinessPhone.setEnabled(enabled);
if (StringUtils.equals(dataOld.getBusinessPhone(), data.getBusinessPhone()) == true) {
setMark(fsBusinessPhone, enabled);
}
final FieldsetPanel fsMobilBusiness = gridBuilder.newFieldset("Mobil gesch.");
fsMobilBusiness.add(new TextField<String>(fsMobilBusiness.getTextFieldId(), new PropertyModel<String>(address, "mobilePhone")));
fsMobilBusiness.setEnabled(enabled);
if (StringUtils.equals(dataOld.getMobilePhone(), data.getMobilePhone()) == true) {
setMark(fsMobilBusiness, enabled);
}
final FieldsetPanel fsEmailPrivate = gridBuilder.newFieldset("Mail priv.");
fsEmailPrivate.add(new TextField<String>(fsEmailPrivate.getTextFieldId(), new PropertyModel<String>(address, "privateEmail")));
fsEmailPrivate.setEnabled(enabled);
if (StringUtils.equals(dataOld.getPrivateEmail(), data.getPrivateEmail()) == true) {
setMark(fsEmailPrivate, enabled);
}
final FieldsetPanel fsPrivatePhone = gridBuilder.newFieldset("Tele priv.");
fsPrivatePhone.add(new TextField<String>(fsPrivatePhone.getTextFieldId(), new PropertyModel<String>(address, "privatePhone")));
fsPrivatePhone.setEnabled(enabled);
if (StringUtils.equals(dataOld.getPrivatePhone(), data.getPrivatePhone()) == true) {
setMark(fsPrivatePhone, enabled);
}
final FieldsetPanel fsMobilPrivate = gridBuilder.newFieldset("Mobil priv.");
fsMobilPrivate.add(new TextField<String>(fsMobilPrivate.getTextFieldId(), new PropertyModel<String>(address, "privateMobilePhone")));
fsMobilPrivate.setEnabled(enabled);
if (StringUtils.equals(dataOld.getPrivateMobilePhone(), data.getPrivateMobilePhone()) == true) {
setMark(fsMobilPrivate, enabled);
}
}
/**
* mark panel, if content already exist.
*
* @param panel
*/
private void setMark(final FieldsetPanel panel, final boolean paint) {
if (paint == true) {
panel.getFieldset().get(0).add(new AttributeModifier("style",
new Model<String>("background: #FCF8E3; border: 1px solid #FBEED5; border-radius: 4px; padding-left: 5px; padding-right: 10px; padding-bottom: 4px;")));
}
else {
panel.getFieldset().get(0).add(new AttributeModifier("style",
new Model<String>("border: 1px solid whiteSmoke; border-radius: 4px; padding-left: 5px; padding-right: 10px; padding-bottom: 4px;")));
}
}
/**
*
*/
public void create()
{
data.setId(dataOld.getId());
getBaseDao().save(data);
setResponsePage(AddressListPage.class);
}
/**
* @see org.projectforge.web.wicket.AbstractEditForm#getLogger()
*/
@Override
protected Logger getLogger()
{
return null;
}
}