/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cids.custom.switchon.objecteditors; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import de.cismet.cids.custom.switchon.gui.ISO8601JXDatePicker; import de.cismet.cids.custom.switchon.gui.InfoProviderJPanel; import de.cismet.cids.custom.switchon.gui.MarkMandtoryFieldsStrong; import de.cismet.cids.custom.switchon.gui.MarkMandtoryFieldsStrongUtils; import de.cismet.cids.custom.switchon.gui.TimestampToDateConverter; import de.cismet.cids.custom.switchon.gui.utils.RendererTools; import de.cismet.cids.dynamics.CidsBean; import de.cismet.cids.dynamics.CidsBeanStore; import de.cismet.cids.dynamics.Disposable; /** * DOCUMENT ME! * * @author Gilles Baatz * @version $Revision$, $Date$ */ public class TemporalInformationPanel extends InfoProviderJPanel implements CidsBeanStore, Disposable, MarkMandtoryFieldsStrong { //~ Static fields/initializers --------------------------------------------- private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger( TemporalInformationPanel.class); //~ Instance fields -------------------------------------------------------- private CidsBean resource; // Variables declaration - do not modify//GEN-BEGIN:variables private org.jdesktop.swingx.JXDatePicker dpCreationDate; private org.jdesktop.swingx.JXDatePicker dpEndDate; private org.jdesktop.swingx.JXDatePicker dpLastModificationDate; private org.jdesktop.swingx.JXDatePicker dpPublicationDate; private org.jdesktop.swingx.JXDatePicker dpStartDate; private javax.swing.Box.Filler filler1; private javax.swing.Box.Filler filler2; private javax.swing.Box.Filler filler3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblStartDate; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form TemporalInformationPanel. */ public TemporalInformationPanel() { this(false); } /** * Creates a new TemporalInformationPanel object. * * @param editable DOCUMENT ME! */ public TemporalInformationPanel(final boolean editable) { initComponents(); if (!editable) { RendererTools.makeReadOnly(dpCreationDate); RendererTools.makeReadOnly(dpEndDate); RendererTools.makeReadOnly(dpLastModificationDate); RendererTools.makeReadOnly(dpPublicationDate); RendererTools.makeReadOnly(dpStartDate); } setFocusListenersOnDatePickers(); } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! */ private void setFocusListenersOnDatePickers() { dpCreationDate.getEditor().addFocusListener(new FocusAdapter() { @Override public void focusGained(final FocusEvent e) { provideInformation("Please specifiy the date of creation of the resource."); } }); dpEndDate.getEditor().addFocusListener(new FocusAdapter() { @Override public void focusGained(final FocusEvent e) { provideInformation( "Please specifiy the end date of the temporal coverage of the resource. If not end date is provided, it is assumed that the data is continiously uppdated."); } }); dpLastModificationDate.getEditor().addFocusListener(new FocusAdapter() { @Override public void focusGained(final FocusEvent e) { provideInformation("Please specify the date of last revision of the resource."); } }); dpPublicationDate.getEditor().addFocusListener(new FocusAdapter() { @Override public void focusGained(final FocusEvent e) { provideInformation( "Please specify the date of publication of the resource at the orign website, catalogue, etc."); } }); dpStartDate.getEditor().addFocusListener(new FocusAdapter() { @Override public void focusGained(final FocusEvent e) { provideInformation("Please specifiy the start date of the temporal coverage of the resource."); } }); } /** * 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(); jPanel1 = new javax.swing.JPanel(); lblStartDate = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); dpStartDate = new ISO8601JXDatePicker(); ; dpEndDate = new ISO8601JXDatePicker(); ; filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0)); jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); dpCreationDate = new ISO8601JXDatePicker(); ; dpPublicationDate = new ISO8601JXDatePicker(); ; dpLastModificationDate = new ISO8601JXDatePicker(); ; filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0)); filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767)); setLayout(new java.awt.GridBagLayout()); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder( org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jPanel1.border.title"))); // NOI18N jPanel1.setLayout(new java.awt.GridBagLayout()); org.openide.awt.Mnemonics.setLocalizedText( lblStartDate, org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.lblStartDate.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 5); jPanel1.add(lblStartDate, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel5, org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jLabel5.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 10, 10, 5); jPanel1.add(jLabel5, gridBagConstraints); org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.fromdate}"), dpStartDate, org.jdesktop.beansbinding.BeanProperty.create("date")); binding.setConverter(new TimestampToDateConverter()); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(10, 5, 5, 5); jPanel1.add(dpStartDate, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.todate}"), dpEndDate, org.jdesktop.beansbinding.BeanProperty.create("date")); binding.setConverter(new TimestampToDateConverter()); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 5); jPanel1.add(dpEndDate, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; jPanel1.add(filler2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); add(jPanel1, gridBagConstraints); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder( org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jPanel2.border.title"))); // NOI18N jPanel2.setLayout(new java.awt.GridBagLayout()); org.openide.awt.Mnemonics.setLocalizedText( jLabel1, org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jLabel1.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 5); jPanel2.add(jLabel1, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel2, org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jLabel2.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 10, 5, 5); jPanel2.add(jLabel2, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel3, org.openide.util.NbBundle.getMessage( TemporalInformationPanel.class, "TemporalInformationPanel.jLabel3.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 10, 10, 5); jPanel2.add(jLabel3, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.creationdate}"), dpCreationDate, org.jdesktop.beansbinding.BeanProperty.create("date")); binding.setConverter(new TimestampToDateConverter()); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(10, 5, 5, 5); jPanel2.add(dpCreationDate, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.publicationdate}"), dpPublicationDate, org.jdesktop.beansbinding.BeanProperty.create("date")); binding.setConverter(new TimestampToDateConverter()); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanel2.add(dpPublicationDate, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.lastmodificationdate}"), dpLastModificationDate, org.jdesktop.beansbinding.BeanProperty.create("date")); binding.setConverter(new TimestampToDateConverter()); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 5); jPanel2.add(dpLastModificationDate, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; jPanel2.add(filler3, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); add(jPanel2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL; gridBagConstraints.weighty = 1.0; add(filler1, gridBagConstraints); bindingGroup.bind(); } // </editor-fold>//GEN-END:initComponents @Override public CidsBean getCidsBean() { return resource; } @Override public void setCidsBean(final CidsBean cidsBean) { bindingGroup.unbind(); if (cidsBean != null) { this.resource = cidsBean; bindingGroup.bind(); } } @Override public void dispose() { bindingGroup.unbind(); } @Override public void markMandatoryFieldsStrong() { MarkMandtoryFieldsStrongUtils.markJLabelString(lblStartDate); } }