/*
* Copyright (C) 2014 GG-Net GmbH - Oliver Günther
*
* This program 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, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 eu.ggnet.dwoss.customer;
import eu.ggnet.dwoss.rules.PaymentCondition;
import eu.ggnet.dwoss.rules.ShippingCondition;
import eu.ggnet.dwoss.rules.PaymentMethod;
import eu.ggnet.dwoss.rules.SalesChannel;
import eu.ggnet.dwoss.rules.CustomerFlag;
import eu.ggnet.dwoss.util.NamedEnumCellRenderer;
import eu.ggnet.dwoss.util.IPreClose;
import eu.ggnet.dwoss.util.CloseType;
import eu.ggnet.saft.core.authorisation.JComponentEnabler;
import eu.ggnet.saft.core.authorisation.Guardian;
import java.awt.Component;
import java.util.*;
import javax.swing.*;
import eu.ggnet.dwoss.event.AddressChange;
import eu.ggnet.dwoss.mandator.MandatorSupporter;
import eu.ggnet.dwoss.mandator.api.value.ShippingTerms;
import eu.ggnet.dwoss.util.validation.ValidationUtil;
import eu.ggnet.dwoss.customer.priv.OldCustomer;
import lombok.Getter;
import static eu.ggnet.saft.core.Client.lookup;
import static eu.ggnet.dwoss.rights.api.AtomicRight.*;
import static eu.ggnet.dwoss.rules.AddressType.*;
/**
*
* @author pascal.perau
*/
public class CustomerUpdateViewCask extends javax.swing.JPanel implements IPreClose {
class LocaleComboBoxRendere extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if ( value == null ) return label;
if ( !(value instanceof Locale) ) return label;
label.setText(((Locale)value).getDisplayCountry());
return label;
}
}
private Locale[] countries = new Locale[]{
new Locale("de", "DE"),
new Locale("de", "AT"),
new Locale("de", "CH")};
private OldCustomer customer;
private OldCustomer original;
@Getter
private Set<AddressChange> changedAdresses = new HashSet<>();
private ShippingTerms shippingTerms;
/** Creates new form EditCustomer
* <p>
*/
public CustomerUpdateViewCask() {
initComponents();
shippingTerms = lookup(MandatorSupporter.class).loadShippingTerms();
shippingConditionBox.setRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if ( value instanceof ShippingCondition && shippingTerms != null )
label.setText(shippingTerms.get((ShippingCondition)value).get().getNote());
return label;
}
});
paymentConditionBox.setRenderer(new NamedEnumCellRenderer());
paymentMethodBox.setRenderer(new NamedEnumCellRenderer());
payCountryBox.setRenderer(new LocaleComboBoxRendere());
shipCountryBox.setRenderer(new LocaleComboBoxRendere());
reteilerChannelAllowedCheck.setActionCommand(SalesChannel.RETAILER.toString());
endUserChannelAllowedCheck.setActionCommand(SalesChannel.CUSTOMER.toString());
customerConfimationCheckBox.setActionCommand(CustomerFlag.CONFIRMS_DOSSIER.toString());
isSystemCustomerCheck.setActionCommand(CustomerFlag.SYSTEM_CUSTOMER.toString());
Guardian accessCos = lookup(Guardian.class);
accessCos.add(new JComponentEnabler(UPDATE_CUSTOMER_TO_SYSTEM_CUSTOMER, isSystemCustomerCheck));
accessCos.add(new JComponentEnabler(UPDATE_CUSTOMER_PAYMENT_METHOD, paymentMethodBox));
accessCos.add(new JComponentEnabler(UPDATE_CUSTOMER_PAYMENT_CONDITION, paymentConditionBox));
accessCos.add(new JComponentEnabler(UPDATE_CUSTOMER_SHIPPING_CONDITION, shippingConditionBox));
}
public OldCustomer getCustomer() {
return customer;
}
public void setCustomer(OldCustomer customer) {
OldCustomer oldCustomer = this.customer;
this.customer = customer;
this.original = new OldCustomer(customer);
firePropertyChange("customer", oldCustomer, customer);
reteilerChannelAllowedCheck.setSelected(customer.getAllowedSalesChannels().contains(SalesChannel.RETAILER));
endUserChannelAllowedCheck.setSelected(customer.getAllowedSalesChannels().contains(SalesChannel.CUSTOMER));
cashOnDeliveryCheckBox.setSelected(customer.getFlags().contains(CustomerFlag.CONFIRMED_CASH_ON_DELIVERY));
isSystemCustomerCheck.setSelected(customer.getFlags().contains(CustomerFlag.SYSTEM_CUSTOMER));
customerConfimationCheckBox.setSelected(customer.getFlags().contains(CustomerFlag.CONFIRMS_DOSSIER));
titleBox.setSelectedItem(customer.getTitel() != null ? customer.getTitel() : null);
payCountryBox.setSelectedItem(customer.getPayCountry());
shipCountryBox.setSelectedItem(customer.getPayCountry());
ledgerField.setText(Integer.toString(customer.getLedger()));
taxIdField.setText(customer.getTaxId());
}
/**
* Only used for ElProperty
* <p/>
* @return a list of PaymentMethods
*/
public List<PaymentMethod> getPaymentMethods() {
return Arrays.asList(PaymentMethod.values());
}
/**
* Only used for ElProperty
* <p/>
* @return a list of PaymentConditions
*/
public List<PaymentCondition> getPaymentCondition() {
return Arrays.asList(PaymentCondition.values());
}
/**
* Only used for ElProperty
* <p/>
* @return a list of ShippingConditions
*/
public List<ShippingCondition> getShippingCondition() {
return Arrays.asList(ShippingCondition.values());
}
@Override
public boolean pre(CloseType type) {
if ( type == CloseType.CANCEL ) {
return true;
}
if ( titleBox.getSelectedItem() == null ) {
JOptionPane.showMessageDialog(this, "Titel ist nicht gesetzt.");
return false;
}
if ( !ValidationUtil.isValidOrShow(SwingUtilities.getWindowAncestor(this), customer) ) return false;
customer.setTitel(titleBox.getSelectedItem().toString());
if ( (PaymentCondition)paymentConditionBox.getSelectedItem() != PaymentCondition.CUSTOMER ) customer.setHaendler(true);
// TODO: A Nullpointer here may be possible as I moved the Formater to the OldCustomer itself. If true add null check before.
if ( !original.toInvoiceAddress().equals(customer.toInvoiceAddress()) ) {
changedAdresses.add(new AddressChange(
original.getId(),
lookup(Guardian.class).getUsername(),
INVOICE,
original.toInvoiceAddress(),
customer.toInvoiceAddress()));
}
if ( !original.toShippingAddress().equals(customer.toShippingAddress()) ) {
changedAdresses.add(new AddressChange(original.getId(),
lookup(Guardian.class).getUsername(),
SHIPPING,
original.toInvoiceAddress(),
customer.toInvoiceAddress()));
}
return true;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
jLabel1 = new javax.swing.JLabel();
customerIdLabel = new javax.swing.JLabel();
companyField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
titleBox = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
firstNameField = new javax.swing.JTextField();
lastNameField = new javax.swing.JTextField();
invoicePanel = new javax.swing.JPanel();
invoiceStreetField = new javax.swing.JTextField();
invoiceZipcodeField = new javax.swing.JTextField();
InvoiceCityField = new javax.swing.JTextField();
invoiceContactField = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
payCountryBox = new javax.swing.JComboBox();
jLabel13 = new javax.swing.JLabel();
phoneNumberField = new javax.swing.JTextField();
jLabel14 = new javax.swing.JLabel();
mobileNumberField = new javax.swing.JTextField();
jLabel15 = new javax.swing.JLabel();
emailField = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
paymentMethodBox = new javax.swing.JComboBox();
isSystemCustomerCheck = new javax.swing.JCheckBox();
endUserChannelAllowedCheck = new javax.swing.JCheckBox();
reteilerChannelAllowedCheck = new javax.swing.JCheckBox();
jLabel8 = new javax.swing.JLabel();
shippingConditionBox = new javax.swing.JComboBox();
jLabel9 = new javax.swing.JLabel();
paymentConditionBox = new javax.swing.JComboBox();
jScrollPane1 = new javax.swing.JScrollPane();
commentArea = new javax.swing.JTextArea();
jLabel10 = new javax.swing.JLabel();
shippingPanel = new javax.swing.JPanel();
shippingStreetField = new javax.swing.JTextField();
shippingZipcodeField = new javax.swing.JTextField();
shippingCityField = new javax.swing.JTextField();
jLabel17 = new javax.swing.JLabel();
jLabel19 = new javax.swing.JLabel();
shipCountryBox = new javax.swing.JComboBox();
cashOnDeliveryCheckBox = new javax.swing.JCheckBox();
customerConfimationCheckBox = new javax.swing.JCheckBox();
jLabel20 = new javax.swing.JLabel();
ledgerField = new javax.swing.JTextField();
jLabel21 = new javax.swing.JLabel();
taxIdField = new javax.swing.JTextField();
setLayout(new java.awt.GridBagLayout());
jLabel1.setText("KID");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel1, gridBagConstraints);
customerIdLabel.setFont(new java.awt.Font("DejaVu Sans", 1, 14)); // NOI18N
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.kundenID}"), customerIdLabel, org.jdesktop.beansbinding.BeanProperty.create("text"), "customerIdBinding");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(customerIdLabel, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.firma}"), companyField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindCompany");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
add(companyField, gridBagConstraints);
jLabel3.setText("Firma");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel3, gridBagConstraints);
jLabel4.setText("Titel");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel4, gridBagConstraints);
titleBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Herr", "Frau" }));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.ipadx = 30;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(titleBox, gridBagConstraints);
jLabel5.setText("Vorname");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel5, gridBagConstraints);
jLabel6.setText("Nachname");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel6, gridBagConstraints);
firstNameField.setMinimumSize(new java.awt.Dimension(125, 25));
firstNameField.setPreferredSize(new java.awt.Dimension(125, 25));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.vorname}"), firstNameField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindFirstName");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
add(firstNameField, gridBagConstraints);
lastNameField.setMinimumSize(new java.awt.Dimension(125, 25));
lastNameField.setPreferredSize(new java.awt.Dimension(125, 25));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.nachname}"), lastNameField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindLastName");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
add(lastNameField, gridBagConstraints);
invoicePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Rechnungsadresse"));
invoicePanel.setLayout(new java.awt.GridBagLayout());
invoiceStreetField.setToolTipText("Straße (Rechnung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.REAdresse}"), invoiceStreetField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindInvoiceStreet");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
invoicePanel.add(invoiceStreetField, gridBagConstraints);
invoiceZipcodeField.setToolTipText("PLZ (Rechnung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.REPlz}"), invoiceZipcodeField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindInvoiceZipCode");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 75;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
invoicePanel.add(invoiceZipcodeField, gridBagConstraints);
InvoiceCityField.setToolTipText("Ort (Rechnung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.REOrt}"), InvoiceCityField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindInvoiceCity");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
invoicePanel.add(InvoiceCityField, gridBagConstraints);
invoiceContactField.setToolTipText("Kontakt (Rechnung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.REKontakt}"), invoiceContactField, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"), "bindInvoiceContact");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
invoicePanel.add(invoiceContactField, gridBagConstraints);
jLabel2.setText("RE Kontakt:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
invoicePanel.add(jLabel2, gridBagConstraints);
jLabel12.setText("RE Straße:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
invoicePanel.add(jLabel12, gridBagConstraints);
jLabel18.setText("RE Land:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
invoicePanel.add(jLabel18, gridBagConstraints);
payCountryBox.setModel(new DefaultComboBoxModel(countries));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.payCountry}"), payCountryBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
invoicePanel.add(payCountryBox, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.gridheight = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(invoicePanel, gridBagConstraints);
jLabel13.setText("Telefon");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel13, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.telefonnummer}"), phoneNumberField, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"), "bindPhoneNumber");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 15;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
add(phoneNumberField, gridBagConstraints);
jLabel14.setText("Mobil");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel14, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.handynummer}"), mobileNumberField, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"), "bindMobileNumber");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 15;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(mobileNumberField, gridBagConstraints);
jLabel15.setText("e-Mail");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 16;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel15, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.email}"), emailField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindEmail");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 17;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.5;
add(emailField, gridBagConstraints);
jLabel7.setText("Zahlungsmodalität");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
add(jLabel7, gridBagConstraints);
org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${paymentMethods}");
org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, paymentMethodBox, "bindPaymentMethodElements");
jComboBoxBinding.setSourceNullValue(null);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.paymentMethod}"), paymentMethodBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"), "bindPaymentMethod");
binding.setSourceNullValue(null);
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(paymentMethodBox, gridBagConstraints);
isSystemCustomerCheck.setText("GG-Net Systemkunde");
isSystemCustomerCheck.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
customerFlagActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
add(isSystemCustomerCheck, gridBagConstraints);
endUserChannelAllowedCheck.setText("Endkundenkanal");
endUserChannelAllowedCheck.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
saleChannelAllowedActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
add(endUserChannelAllowedCheck, gridBagConstraints);
reteilerChannelAllowedCheck.setText("Händlerkanal");
reteilerChannelAllowedCheck.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
saleChannelAllowedActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
add(reteilerChannelAllowedCheck, gridBagConstraints);
jLabel8.setText("Zahlungskondition");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
add(jLabel8, gridBagConstraints);
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${shippingCondition}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, shippingConditionBox, "bindShippingConditionELements");
jComboBoxBinding.setSourceNullValue(null);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.shippingCondition}"), shippingConditionBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"), "bindShippingCondition");
binding.setSourceNullValue(null);
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(shippingConditionBox, gridBagConstraints);
jLabel9.setText("Lieferkondition");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
add(jLabel9, gridBagConstraints);
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${paymentCondition}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, paymentConditionBox, "bindPaymentConditionElements");
jComboBoxBinding.setSourceNullValue(null);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.paymentCondition}"), paymentConditionBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 7;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(paymentConditionBox, gridBagConstraints);
commentArea.setColumns(20);
commentArea.setRows(5);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.anmerkung}"), commentArea, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"), "bindComments");
bindingGroup.addBinding(binding);
jScrollPane1.setViewportView(commentArea);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 15;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.gridheight = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.2;
gridBagConstraints.weighty = 0.1;
add(jScrollPane1, gridBagConstraints);
jLabel10.setText("Anmerkungen");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 14;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(jLabel10, gridBagConstraints);
shippingPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Lieferadresse"));
shippingPanel.setLayout(new java.awt.GridBagLayout());
shippingStreetField.setToolTipText("Straße (Lieferung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.LIAdresse}"), shippingStreetField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindShippingStreet");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
shippingPanel.add(shippingStreetField, gridBagConstraints);
shippingZipcodeField.setToolTipText("PLZ (Lieferung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.LIPlz}"), shippingZipcodeField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindShippingZipCode");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.ipadx = 75;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
shippingPanel.add(shippingZipcodeField, gridBagConstraints);
shippingCityField.setToolTipText("Ort (Lieferung)");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.LIOrt}"), shippingCityField, org.jdesktop.beansbinding.BeanProperty.create("text"), "bindShippingCity");
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
shippingPanel.add(shippingCityField, gridBagConstraints);
jLabel17.setText("LI Straße:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
shippingPanel.add(jLabel17, gridBagConstraints);
jLabel19.setText("LI Land:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
shippingPanel.add(jLabel19, gridBagConstraints);
shipCountryBox.setModel(new DefaultComboBoxModel(countries));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.shipCountry}"), shipCountryBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 0.1;
shippingPanel.add(shipCountryBox, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.gridheight = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
add(shippingPanel, gridBagConstraints);
cashOnDeliveryCheckBox.setText("Nachnahme bestätigt");
cashOnDeliveryCheckBox.setToolTipText("Der Kunde hat den Versand per Nachnahme bestätigt.");
cashOnDeliveryCheckBox.setEnabled(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
add(cashOnDeliveryCheckBox, gridBagConstraints);
customerConfimationCheckBox.setText("Kunde bestätigt Auftrag");
customerConfimationCheckBox.setToolTipText("Der Kunde segnet von uns angelegte aufträge vor der Ausgabe ab.");
customerConfimationCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
customerFlagActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0);
add(customerConfimationCheckBox, gridBagConstraints);
jLabel20.setText("FiBu Konto");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 10;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
add(jLabel20, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.ledger}"), ledgerField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 11;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(ledgerField, gridBagConstraints);
jLabel21.setText("USt-Nr.");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 12;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
add(jLabel21, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${customer.taxId}"), taxIdField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 13;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
add(taxIdField, gridBagConstraints);
bindingGroup.bind();
}// </editor-fold>//GEN-END:initComponents
private void saleChannelAllowedActionPerformed(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_saleChannelAllowedActionPerformed
if ( ((JCheckBox)evt.getSource()).isSelected() )
customer.getAllowedSalesChannels().add(SalesChannel.valueOf(((JCheckBox)evt.getSource()).getActionCommand()));
else customer.getAllowedSalesChannels().remove(SalesChannel.valueOf(((JCheckBox)evt.getSource()).getActionCommand()));
}//GEN-LAST:event_saleChannelAllowedActionPerformed
private void customerFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_customerFlagActionPerformed
if ( ((JCheckBox)evt.getSource()).isSelected() )
customer.getFlags().add(CustomerFlag.valueOf(((JCheckBox)evt.getSource()).getActionCommand()));
else customer.getFlags().remove(CustomerFlag.valueOf(((JCheckBox)evt.getSource()).getActionCommand()));
}//GEN-LAST:event_customerFlagActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField InvoiceCityField;
private javax.swing.JCheckBox cashOnDeliveryCheckBox;
private javax.swing.JTextArea commentArea;
private javax.swing.JTextField companyField;
private javax.swing.JCheckBox customerConfimationCheckBox;
private javax.swing.JLabel customerIdLabel;
private javax.swing.JTextField emailField;
private javax.swing.JCheckBox endUserChannelAllowedCheck;
private javax.swing.JTextField firstNameField;
private javax.swing.JTextField invoiceContactField;
private javax.swing.JPanel invoicePanel;
private javax.swing.JTextField invoiceStreetField;
private javax.swing.JTextField invoiceZipcodeField;
private javax.swing.JCheckBox isSystemCustomerCheck;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField lastNameField;
private javax.swing.JTextField ledgerField;
private javax.swing.JTextField mobileNumberField;
private javax.swing.JComboBox payCountryBox;
private javax.swing.JComboBox paymentConditionBox;
private javax.swing.JComboBox paymentMethodBox;
private javax.swing.JTextField phoneNumberField;
private javax.swing.JCheckBox reteilerChannelAllowedCheck;
private javax.swing.JComboBox shipCountryBox;
private javax.swing.JTextField shippingCityField;
private javax.swing.JComboBox shippingConditionBox;
private javax.swing.JPanel shippingPanel;
private javax.swing.JTextField shippingStreetField;
private javax.swing.JTextField shippingZipcodeField;
private javax.swing.JTextField taxIdField;
private javax.swing.JComboBox titleBox;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration//GEN-END:variables
}