//$Header: /cvsroot-fuse/mec-as2/39/mendelson/comm/as2/importexport/JDialogImportConfiguration.java,v 1.1 2012/04/18 14:10:30 heller Exp $ package de.mendelson.comm.as2.importexport; import de.mendelson.comm.as2.partner.Partner; import de.mendelson.util.MecResourceBundle; import de.mendelson.util.clientserver.BaseClient; import de.mendelson.util.clientserver.clients.datatransfer.TransferClient; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.util.ArrayList; import java.util.List; import java.util.MissingResourceException; import java.util.ResourceBundle; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.table.TableColumn; /* * Copyright (C) mendelson-e-commerce GmbH Berlin Germany * * This software is subject to the license agreement set forth in the license. * Please read and agree to all terms before using this software. * Other product and brand names are trademarks of their respective owners. */ /** * Dialog to configure a single partner * @author S.Heller * @version $Revision: 1.1 $ */ public class JDialogImportConfiguration extends JDialog { /**ResourceBundle to localize the GUI*/ private MecResourceBundle rb = null; /**Import filename*/ private String filename; /**component parent*/ private JFrame parentFrame; private BaseClient baseClient; /** Creates new form JDialogImportConfiguration * @param filename Import filename */ public JDialogImportConfiguration(JFrame parentFrame, String filename, Connection configConnection, Connection runtimeConnection, BaseClient baseClient) throws Exception { super(parentFrame, true); this.parentFrame = parentFrame; this.filename = filename; this.baseClient = baseClient; //load resource bundle try { this.rb = (MecResourceBundle) ResourceBundle.getBundle( ResourceBundleImportConfiguration.class.getName()); } catch (MissingResourceException e) { throw new RuntimeException("Oops..resource bundle " + e.getClassName() + " not found."); } this.initComponents(); InputStream inStream = null; List<Partner> partnerList = new ArrayList<Partner>(); try { inStream = new FileInputStream(filename); ConfigurationImport configImport = new ConfigurationImport(configConnection, runtimeConnection); partnerList.addAll(configImport.readPartner(inStream)); if (partnerList == null || partnerList.isEmpty()) { throw new Exception(this.rb.getResourceString("invalid.importfile")); } } finally { if (inStream != null) { try { inStream.close(); } catch (Exception e) { } } } this.jTablePartner.getTableHeader().setReorderingAllowed(false); TableColumn column = this.jTablePartner.getColumnModel().getColumn(0); column.setMaxWidth(20); column.setMinWidth(20); column.setResizable(false); column = this.jTablePartner.getColumnModel().getColumn(3); column.setMaxWidth(20); column.setMinWidth(20); column.setResizable(false); ((TableModelPartnerSelect) this.jTablePartner.getModel()).passNewData(partnerList); } /**Sets the ok and cancel buttons of this GUI*/ private void setButtonState() { } /**Finally performs the import*/ private void performImport() throws Throwable { //collect all selected Partner List<Partner> selectedParter = ((TableModelPartnerSelect) this.jTablePartner.getModel()).getSelectedPartner(); InputStream inStream = null; try { TransferClient transferClient = new TransferClient(this.baseClient); inStream = new FileInputStream(this.filename); //upload the data first, chunked String uploadHash = transferClient.uploadChunked(inStream); //..then perform the import process ConfigurationImportRequest request = new ConfigurationImportRequest(); request.setPartnerListToImport(selectedParter); request.setImportNotification(this.jCheckBoxImportNotification.isSelected()); request.setImportServerSettings(this.jCheckBoxImportServerProperties.isSelected()); request.setUploadHash(uploadHash); ConfigurationImportResponse response = (ConfigurationImportResponse) transferClient.upload(request); if (response.getException() != null) { throw response.getException(); } } finally { if (inStream != null) { try { inStream.close(); } catch (Exception e) { } } } } /** 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. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jPanelEdit = new javax.swing.JPanel(); jLabelIcon = new javax.swing.JLabel(); jPanelImportOptions = new javax.swing.JPanel(); jCheckBoxImportServerProperties = new javax.swing.JCheckBox(); jCheckBoxImportNotification = new javax.swing.JCheckBox(); jPanelSpace = new javax.swing.JPanel(); jLabelInfo = new javax.swing.JLabel(); jPanelPartner = new javax.swing.JPanel(); jScrollPanePartnerTable = new javax.swing.JScrollPane(); jTablePartner = new javax.swing.JTable(); jButtonNoPartner = new javax.swing.JButton(); jButtonAllPartner = new javax.swing.JButton(); jPanelButtons = new javax.swing.JPanel(); jButtonImport = new javax.swing.JButton(); jButtonCancel = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle(this.rb.getResourceString( "title")); getContentPane().setLayout(new java.awt.GridBagLayout()); jPanelEdit.setBorder(javax.swing.BorderFactory.createTitledBorder("")); jPanelEdit.setLayout(new java.awt.GridBagLayout()); jLabelIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/de/mendelson/comm/as2/importexport/import_32x32.gif"))); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 20, 10); jPanelEdit.add(jLabelIcon, gridBagConstraints); jPanelImportOptions.setBorder(javax.swing.BorderFactory.createTitledBorder(this.rb.getResourceString( "title.config"))); jPanelImportOptions.setLayout(new java.awt.GridBagLayout()); jCheckBoxImportServerProperties.setText(this.rb.getResourceString( "label.propertiesimport")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelImportOptions.add(jCheckBoxImportServerProperties, gridBagConstraints); jCheckBoxImportNotification.setText(this.rb.getResourceString( "label.notificationimport")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelImportOptions.add(jCheckBoxImportNotification, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; jPanelImportOptions.add(jPanelSpace, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelEdit.add(jPanelImportOptions, gridBagConstraints); jLabelInfo.setText(this.rb.getResourceString( "import.info")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelEdit.add(jLabelInfo, gridBagConstraints); jPanelPartner.setBorder(javax.swing.BorderFactory.createTitledBorder(this.rb.getResourceString( "title.partner"))); jPanelPartner.setLayout(new java.awt.GridBagLayout()); jTablePartner.setModel(new TableModelPartnerSelect()); jScrollPanePartnerTable.setViewportView(jTablePartner); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.gridheight = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelPartner.add(jScrollPanePartnerTable, gridBagConstraints); jButtonNoPartner.setIcon(new javax.swing.ImageIcon(getClass().getResource("/de/mendelson/comm/as2/importexport/no_partner_16x16.gif"))); // NOI18N jButtonNoPartner.setText(this.rb.getResourceString( "partner.none")); jButtonNoPartner.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButtonNoPartner.setMargin(new java.awt.Insets(2, 5, 2, 5)); jButtonNoPartner.setVerticalAlignment(javax.swing.SwingConstants.TOP); jButtonNoPartner.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButtonNoPartner.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonNoPartnerActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelPartner.add(jButtonNoPartner, gridBagConstraints); jButtonAllPartner.setIcon(new javax.swing.ImageIcon(getClass().getResource("/de/mendelson/comm/as2/importexport/all_partner_16x16.gif"))); // NOI18N jButtonAllPartner.setText(this.rb.getResourceString( "partner.all")); jButtonAllPartner.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jButtonAllPartner.setMargin(new java.awt.Insets(2, 5, 2, 5)); jButtonAllPartner.setVerticalAlignment(javax.swing.SwingConstants.TOP); jButtonAllPartner.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButtonAllPartner.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAllPartnerActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelPartner.add(jButtonAllPartner, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelEdit.add(jPanelPartner, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); 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(5, 5, 5, 5); getContentPane().add(jPanelEdit, gridBagConstraints); jPanelButtons.setLayout(new java.awt.GridBagLayout()); jButtonImport.setText(this.rb.getResourceString( "button.import" )); jButtonImport.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonImportActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); jPanelButtons.add(jButtonImport, gridBagConstraints); jButtonCancel.setText(this.rb.getResourceString( "button.cancel" )); jButtonCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); jPanelButtons.add(jButtonCancel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(jPanelButtons, gridBagConstraints); java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-596)/2, (screenSize.height-538)/2, 596, 538); }// </editor-fold>//GEN-END:initComponents private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelActionPerformed this.setVisible(false); this.dispose(); }//GEN-LAST:event_jButtonCancelActionPerformed private void jButtonImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonImportActionPerformed this.setVisible(false); try { this.performImport(); JOptionPane.showMessageDialog(this.parentFrame, this.rb.getResourceString("import.success.msg"), this.rb.getResourceString("import.success.title"), JOptionPane.INFORMATION_MESSAGE); } catch (Throwable e) { JOptionPane.showMessageDialog(this.parentFrame, this.rb.getResourceString("import.failed.msg", e.getMessage()), this.rb.getResourceString("import.failed.title"), JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_jButtonImportActionPerformed private void jButtonAllPartnerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAllPartnerActionPerformed ((TableModelPartnerSelect) this.jTablePartner.getModel()).selectAll(); }//GEN-LAST:event_jButtonAllPartnerActionPerformed private void jButtonNoPartnerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonNoPartnerActionPerformed ((TableModelPartnerSelect) this.jTablePartner.getModel()).selectNone(); }//GEN-LAST:event_jButtonNoPartnerActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButtonAllPartner; private javax.swing.JButton jButtonCancel; private javax.swing.JButton jButtonImport; private javax.swing.JButton jButtonNoPartner; private javax.swing.JCheckBox jCheckBoxImportNotification; private javax.swing.JCheckBox jCheckBoxImportServerProperties; private javax.swing.JLabel jLabelIcon; private javax.swing.JLabel jLabelInfo; private javax.swing.JPanel jPanelButtons; private javax.swing.JPanel jPanelEdit; private javax.swing.JPanel jPanelImportOptions; private javax.swing.JPanel jPanelPartner; private javax.swing.JPanel jPanelSpace; private javax.swing.JScrollPane jScrollPanePartnerTable; private javax.swing.JTable jTablePartner; // End of variables declaration//GEN-END:variables }