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