/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.objecteditors;
import org.apache.log4j.Logger;
import org.openide.util.NbBundle;
import javax.swing.JOptionPane;
import de.cismet.cids.custom.switchon.AbstractCidsBeanRenderer;
import de.cismet.cids.editors.DefaultCustomObjectEditor;
import de.cismet.cids.editors.EditorClosedEvent;
import de.cismet.cids.editors.EditorSaveListener;
/**
* DOCUMENT ME!
*
* @author mscholl
* @version $Revision$, $Date$
*/
public class RaineventEditor extends AbstractCidsBeanRenderer implements EditorSaveListener {
//~ Static fields/initializers ---------------------------------------------
private static final transient Logger LOG = Logger.getLogger(RaineventEditor.class);
//~ Instance fields --------------------------------------------------------
// This needs to be stored for the defaultCismapGeometryComboBoxEditor1 variable.
// It is used in custom creation code of this component using the gui builder.
// This kind of initialisation is also the reason why the gui variables cannot be final.
private final transient boolean editable;
// Variables declaration - do not modify//GEN-BEGIN:variables
private transient de.cismet.cismap.cids.geometryeditor.DefaultCismapGeometryComboBoxEditor cboGeom;
private transient javax.swing.JCheckBox chkForecast;
private transient javax.swing.JScrollPane jScrollPane1;
private transient javax.swing.JLabel lblFiller;
private transient javax.swing.JLabel lblGeometry;
private transient javax.swing.JLabel lblInterval;
private transient javax.swing.JLabel lblName;
private transient javax.swing.JTextArea txaRainevent;
private transient javax.swing.JTextField txtInterval;
private transient javax.swing.JTextField txtName;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form RaineventEditor.
*/
public RaineventEditor() {
this(true);
}
/**
* Creates a new RaineventEditor object.
*
* @param editable DOCUMENT ME!
*/
public RaineventEditor(final boolean editable) {
this.editable = true;
initComponents();
txaRainevent.setEditable(editable);
txtName.setEditable(editable);
cboGeom.setEnabled(editable);
chkForecast.setEnabled(editable);
txtInterval.setEditable(editable);
}
//~ Methods ----------------------------------------------------------------
/**
* 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();
jScrollPane1 = new javax.swing.JScrollPane();
txaRainevent = new javax.swing.JTextArea();
lblName = new javax.swing.JLabel();
txtName = new javax.swing.JTextField();
lblGeometry = new javax.swing.JLabel();
chkForecast = new javax.swing.JCheckBox();
cboGeom = new de.cismet.cismap.cids.geometryeditor.DefaultCismapGeometryComboBoxEditor(editable);
lblFiller = new javax.swing.JLabel();
lblInterval = new javax.swing.JLabel();
txtInterval = new javax.swing.JTextField();
setOpaque(false);
setLayout(new java.awt.GridBagLayout());
txaRainevent.setEditable(false);
txaRainevent.setColumns(20);
txaRainevent.setRows(5);
txaRainevent.setBorder(javax.swing.BorderFactory.createTitledBorder(
NbBundle.getMessage(RaineventEditor.class, "RaineventEditor.txaRainevent.border.title"))); // NOI18N
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
this,
org.jdesktop.beansbinding.ELProperty.create("${cidsBean.data}"),
txaRainevent,
org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
jScrollPane1.setViewportView(txaRainevent);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(8, 8, 8, 8);
add(jScrollPane1, gridBagConstraints);
lblName.setText(NbBundle.getMessage(RaineventEditor.class, "RaineventEditor.lblName.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(lblName, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
this,
org.jdesktop.beansbinding.ELProperty.create("${cidsBean.name}"),
txtName,
org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(txtName, gridBagConstraints);
lblGeometry.setText(NbBundle.getMessage(RaineventEditor.class, "RaineventEditor.lblGeometry.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(lblGeometry, gridBagConstraints);
chkForecast.setText(NbBundle.getMessage(RaineventEditor.class, "RaineventEditor.chkForecast.text")); // NOI18N
chkForecast.setContentAreaFilled(false);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
this,
org.jdesktop.beansbinding.ELProperty.create("${cidsBean.forecast}"),
chkForecast,
org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(chkForecast, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
this,
org.jdesktop.beansbinding.ELProperty.create("${cidsBean.geom}"),
cboGeom,
org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
binding.setConverter(cboGeom.getConverter());
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(cboGeom, gridBagConstraints);
lblFiller.setText(NbBundle.getMessage(RaineventEditor.class, "RaineventEditor.lblFiller.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
add(lblFiller, gridBagConstraints);
lblInterval.setText(NbBundle.getMessage(
RaineventEditor.class,
"RaineventEditor.lblInterval.text",
new Object[] {})); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(lblInterval, gridBagConstraints);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
this,
org.jdesktop.beansbinding.ELProperty.create("${cidsBean.interval}"),
txtInterval,
org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(txtInterval, gridBagConstraints);
bindingGroup.bind();
} // </editor-fold>//GEN-END:initComponents
@Override
protected void init() {
DefaultCustomObjectEditor.setMetaClassInformationToMetaClassStoreComponentsInBindingGroup(
bindingGroup,
cidsBean);
bindingGroup.unbind();
bindingGroup.bind();
}
@Override
public void dispose() {
bindingGroup.unbind();
}
@Override
public void editorClosed(final EditorClosedEvent event) {
// noop
}
@Override
public boolean prepareForSave() {
try {
cidsBean.setProperty("forecast", Boolean.valueOf(chkForecast.isSelected()));
return true;
} catch (final Exception ex) {
LOG.error("cannot set forecast value: " + Boolean.valueOf(chkForecast.isSelected()), ex); // NOI18N
JOptionPane.showMessageDialog(
this,
"Cannot set forecast value",
"Forecast value",
JOptionPane.WARNING_MESSAGE);
return false;
}
}
}