/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cids.custom.switchon.objecteditors; import Sirius.navigator.ui.RequestsFullSizeComponent; import de.cismet.cids.client.tools.DevelopmentTools; import de.cismet.cids.custom.switchon.gui.ISO8601JXDatePicker; import de.cismet.cids.custom.switchon.gui.TimestampToDateConverter; import de.cismet.cids.custom.switchon.gui.utils.FastBindableReferenceComboFactory; import de.cismet.cids.custom.switchon.utils.Taggroups; import de.cismet.cids.dynamics.CidsBean; import de.cismet.cids.editors.DefaultCustomObjectEditor; import de.cismet.cids.editors.FastBindableReferenceCombo; import de.cismet.tools.gui.StaticSwingTools; /** * DOCUMENT ME! * * @author Gilles Baatz * @version $Revision$, $Date$ */ public class MetadataEditor extends AbstractEditorShowableInDialog implements RequestsFullSizeComponent { //~ Static fields/initializers --------------------------------------------- private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(MetadataEditor.class); // Variables declaration - do not modify//GEN-BEGIN:variables private de.cismet.cids.custom.switchon.objecteditors.AdditionalTagsPanel additionalTagsPanel; private de.cismet.cids.custom.switchon.objecteditors.BasicPropertiesPanel basicPropertiesPanel; private javax.swing.JButton btnNewContact; private javax.swing.JButton btnNewContentType; private javax.swing.JButton btnNewStandard; private javax.swing.JComboBox cmbContact; private javax.swing.JComboBox cmbContentType; private javax.swing.JComboBox cmbStandard; private de.cismet.cids.custom.switchon.gui.utils.CreateNewTagAction createNewContentType; private de.cismet.cids.custom.switchon.gui.utils.CreateNewTagAction createNewStandard; private org.jdesktop.swingx.JXDatePicker dpCreationDate; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JPanel pnlDocument; private javax.swing.JPanel pnlProperties; private javax.swing.JTextField txtContentLocation; private javax.swing.JTextArea txtaDocumentDescription; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form MetadataEditor. */ public MetadataEditor() { initComponents(); } //~ 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(); createNewStandard = new de.cismet.cids.custom.switchon.gui.utils.CreateNewTagAction(); createNewContentType = new de.cismet.cids.custom.switchon.gui.utils.CreateNewTagAction(); basicPropertiesPanel = new BasicPropertiesPanel(Taggroups.META_DATA_TYPE); pnlProperties = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); dpCreationDate = new ISO8601JXDatePicker(); cmbStandard = FastBindableReferenceComboFactory.createTagsFastBindableReferenceComboBox( Taggroups.META_DATA_STANDARD); btnNewStandard = new javax.swing.JButton(); btnNewContact = new javax.swing.JButton(); cmbContact = new FastBindableReferenceCombo("%1$2s", new String[] { "organisation" }); jPanel1 = new javax.swing.JPanel(); additionalTagsPanel = new de.cismet.cids.custom.switchon.objecteditors.AdditionalTagsPanel(null); pnlDocument = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); txtaDocumentDescription = new javax.swing.JTextArea(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); txtContentLocation = new javax.swing.JTextField(); cmbContentType = FastBindableReferenceComboFactory.createTagsFastBindableReferenceComboBox( Taggroups.CONTENT_TYPE); btnNewContentType = new javax.swing.JButton(); setOpaque(false); setPreferredSize(new java.awt.Dimension(1050, 666)); setLayout(new java.awt.GridBagLayout()); basicPropertiesPanel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 10); add(basicPropertiesPanel, gridBagConstraints); pnlProperties.setBorder(javax.swing.BorderFactory.createTitledBorder( org.openide.util.NbBundle.getMessage( MetadataEditor.class, "MetadataEditor.pnlProperties.border.title"))); // NOI18N pnlProperties.setOpaque(false); pnlProperties.setLayout(new java.awt.GridBagLayout()); org.openide.awt.Mnemonics.setLocalizedText( jLabel3, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.jLabel3.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); pnlProperties.add(jLabel3, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel4, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.jLabel4.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); pnlProperties.add(jLabel4, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel5, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.jLabel5.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); pnlProperties.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.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); pnlProperties.add(dpCreationDate, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.standard}"), cmbStandard, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); pnlProperties.add(cmbStandard, gridBagConstraints); createNewStandard.setCombo((FastBindableReferenceCombo)cmbStandard); btnNewStandard.setAction(createNewStandard); org.openide.awt.Mnemonics.setLocalizedText( btnNewStandard, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.btnNewStandard.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10); pnlProperties.add(btnNewStandard, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( btnNewContact, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.btnNewContact.text")); // NOI18N btnNewContact.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { btnNewContactActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 10); pnlProperties.add(btnNewContact, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.contact}"), cmbContact, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 10, 5); pnlProperties.add(cmbContact, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); add(pnlProperties, gridBagConstraints); jPanel1.setOpaque(false); jPanel1.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridheight = 2; 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(10, 0, 10, 10); jPanel1.add(additionalTagsPanel, gridBagConstraints); pnlDocument.setBorder(javax.swing.BorderFactory.createTitledBorder( org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.pnlDocument.border.title"))); // NOI18N pnlDocument.setOpaque(false); pnlDocument.setLayout(new java.awt.GridBagLayout()); txtaDocumentDescription.setColumns(20); txtaDocumentDescription.setRows(20); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.content}"), txtaDocumentDescription, org.jdesktop.beansbinding.BeanProperty.create("text")); bindingGroup.addBinding(binding); jScrollPane1.setViewportView(txtaDocumentDescription); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 0.5; gridBagConstraints.insets = new java.awt.Insets(10, 10, 5, 10); pnlDocument.add(jScrollPane1, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel1, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.jLabel1.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); pnlDocument.add(jLabel1, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText( jLabel2, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.jLabel2.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, 11, 5); pnlDocument.add(jLabel2, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.contentlocation}"), txtContentLocation, org.jdesktop.beansbinding.BeanProperty.create("text")); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 10); pnlDocument.add(txtContentLocation, gridBagConstraints); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding( org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${cidsBean.contenttype}"), cmbContentType, org.jdesktop.beansbinding.BeanProperty.create("selectedItem")); bindingGroup.addBinding(binding); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 11, 5); pnlDocument.add(cmbContentType, gridBagConstraints); createNewContentType.setCombo((FastBindableReferenceCombo)cmbContentType); btnNewContentType.setAction(createNewContentType); org.openide.awt.Mnemonics.setLocalizedText( btnNewContentType, org.openide.util.NbBundle.getMessage(MetadataEditor.class, "MetadataEditor.btnNewContentType.text")); // NOI18N btnNewContentType.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent evt) { btnNewContentTypeActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 11, 10); pnlDocument.add(btnNewContentType, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; 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(10, 0, 0, 10); jPanel1.add(pnlDocument, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; add(jPanel1, gridBagConstraints); bindingGroup.bind(); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void btnNewContactActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnNewContactActionPerformed final CidsBean contact; try { contact = CidsBean.createNewCidsBeanFromTableName("SWITCHON", "contact"); } catch (Exception ex) { LOG.error("Contact cidsBean could not be created.", ex); return; } final ContactEditor contactEditor = new ContactEditor(true); contactEditor.setCidsBean(contact); final ShowEditorInDialog dialog = new ShowEditorInDialog(StaticSwingTools.getParentFrame(this), contactEditor); dialog.setTitle(contactEditor.getTitle()); dialog.showDialog(); // contactEditor.getModifiedCidsBeans().size() should be 0 or 1 for (final CidsBean persistedContact : contactEditor.getModifiedCidsBeans()) { try { cidsBean.setProperty("contact", persistedContact); } catch (Exception ex) { LOG.error("Property contact can not be set.", ex); } } ((FastBindableReferenceCombo)cmbContact).refreshModel(); } //GEN-LAST:event_btnNewContactActionPerformed /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void btnNewContentTypeActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnNewContentTypeActionPerformed // TODO add your handling code here: } //GEN-LAST:event_btnNewContentTypeActionPerformed @Override public void setCidsBean(final CidsBean cidsBean) { bindingGroup.unbind(); if (cidsBean != null) { this.cidsBean = cidsBean; DefaultCustomObjectEditor.setMetaClassInformationToMetaClassStoreComponentsInBindingGroup( bindingGroup, this.cidsBean); basicPropertiesPanel.setCidsBean(cidsBean); additionalTagsPanel.setCidsBean(cidsBean); bindingGroup.bind(); } } @Override public void dispose() { bindingGroup.unbind(); basicPropertiesPanel.dispose(); additionalTagsPanel.dispose(); } /** * DOCUMENT ME! * * @param args DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public static void main(final String[] args) throws Exception { DevelopmentTools.createEditorInFrameFromRMIConnectionOnLocalhost( "SWITCHON", "Administratoren", "admin", "cismet", "metadata", 1, 1280, 1024); } }