/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.wcs.netbeans.liquiface.ui.wizards.column;
/*
* #%L
* Liquiface - GUI for Liquibase
* %%
* Copyright (C) 2013 Webstar Csoport Kft.
* %%
* 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/gpl-3.0.html>.
* #L%
*/
import com.wcs.netbeans.liquiface.facade.ColumnTypeFacade;
import com.wcs.netbeans.liquiface.model.util.ColumnConfigUtil;
import java.awt.event.ItemEvent;
import liquibase.change.ColumnConfig;
import liquibase.change.ConstraintsConfig;
/**
*
* @author botond
*/
public class UiColumnPanel extends javax.swing.JPanel {
/**
* Creates new form AddColumnPanel
*/
public UiColumnPanel() {
initComponents();
}
public ColumnConfig getColumnConfig() {
ColumnConfig columnConfig = new ColumnConfig();
columnConfig.setName(columnBean.getName());
columnConfig.setType(columnBean.getType());
columnConfig.setAutoIncrement(columnBean.isAutoIncrement());
//csak akkor setelünk contraints-et, ha legalább az egyik igaz, hogy tisztább legyen a generált changeset
if (columnBean.isNotNull() || columnBean.isUnique()) {
ConstraintsConfig constraints = new ConstraintsConfig();
if (columnBean.isNotNull()) {
constraints.setNullable(false); //csak false-t setelünk, hogy tisztább legyen a generált changeset
}
if (columnBean.isUnique()) {
constraints.setUnique(true); //csak true-t setelünk, hogy tisztább legyen a generált changeset
}
columnConfig.setConstraints(constraints);
}
return columnConfig;
}
public void setState(ColumnConfig columnConfig) {
columnBean = new com.wcs.netbeans.liquiface.ui.wizards.column.UiColumnBean();
columnBean.setName(columnConfig.getName());
columnBean.setType(columnConfig.getType());
columnBean.setAutoIncrement(columnConfig.isAutoIncrement());
columnBean.setNotNull(ColumnConfigUtil.isNotNull(columnConfig));
columnBean.setUnique(ColumnConfigUtil.isUnique(columnConfig));
}
public void resetState() {
columnBean.setName("");
columnBean.setType("");
columnBean.setAutoIncrement(false);
columnBean.setNotNull(false);
columnBean.setUnique(false);
}
/**
* 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() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
columnBean = new com.wcs.netbeans.liquiface.ui.wizards.column.UiColumnBean();
nameLabel = new javax.swing.JLabel();
typeLabel = new javax.swing.JLabel();
nameTextField = new javax.swing.JTextField();
autoIncrementCheckBox = new javax.swing.JCheckBox();
uniqueCheckBox = new javax.swing.JCheckBox();
notNullCheckBox = new javax.swing.JCheckBox();
typeBox = new javax.swing.JComboBox();
org.openide.awt.Mnemonics.setLocalizedText(nameLabel, org.openide.util.NbBundle.getMessage(UiColumnPanel.class, "UiColumnPanel.nameLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(typeLabel, org.openide.util.NbBundle.getMessage(UiColumnPanel.class, "UiColumnPanel.typeLabel.text")); // NOI18N
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, columnBean, org.jdesktop.beansbinding.ELProperty.create("${name}"), nameTextField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(autoIncrementCheckBox, org.openide.util.NbBundle.getMessage(UiColumnPanel.class, "UiColumnPanel.autoIncrementCheckBox.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, columnBean, org.jdesktop.beansbinding.ELProperty.create("${autoIncrement}"), autoIncrementCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(uniqueCheckBox, org.openide.util.NbBundle.getMessage(UiColumnPanel.class, "UiColumnPanel.uniqueCheckBox.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, columnBean, org.jdesktop.beansbinding.ELProperty.create("${unique}"), uniqueCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(notNullCheckBox, org.openide.util.NbBundle.getMessage(UiColumnPanel.class, "UiColumnPanel.notNullCheckBox.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, columnBean, org.jdesktop.beansbinding.ELProperty.create("${notNull}"), notNullCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
typeBox.setEditable(true);
typeBox.setModel(new javax.swing.DefaultComboBoxModel(ColumnTypeFacade.getInstance().getColumnTypes()));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, columnBean, org.jdesktop.beansbinding.ELProperty.create("${type}"), typeBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(typeLabel)
.addComponent(nameLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(nameTextField)
.addGroup(layout.createSequentialGroup()
.addComponent(autoIncrementCheckBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(uniqueCheckBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(notNullCheckBox)
.addGap(0, 130, Short.MAX_VALUE))
.addComponent(typeBox, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(nameLabel)
.addComponent(nameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(typeLabel)
.addComponent(typeBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(autoIncrementCheckBox)
.addComponent(uniqueCheckBox)
.addComponent(notNullCheckBox))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
bindingGroup.bind();
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox autoIncrementCheckBox;
private com.wcs.netbeans.liquiface.ui.wizards.column.UiColumnBean columnBean;
private javax.swing.JLabel nameLabel;
private javax.swing.JTextField nameTextField;
private javax.swing.JCheckBox notNullCheckBox;
private javax.swing.JComboBox typeBox;
private javax.swing.JLabel typeLabel;
private javax.swing.JCheckBox uniqueCheckBox;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration//GEN-END:variables
}