/*************************************************** * * 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; } } }