//$Header: /cvsroot-fuse/mec-as2/39/mendelson/comm/as2/preferences/PreferencesPanelDirectories.java,v 1.1 2012/04/18 14:10:35 heller Exp $ package de.mendelson.comm.as2.preferences; import de.mendelson.util.MecResourceBundle; import java.sql.Connection; import de.mendelson.util.clientserver.BaseClient; import de.mendelson.util.clientserver.clients.filesystemview.RemoteFileBrowser; import de.mendelson.util.clientserver.clients.preferences.PreferencesClient; import java.util.ArrayList; import java.util.List; import java.util.MissingResourceException; import java.util.ResourceBundle; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; /* * 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. */ /** *Panel to define the directory preferences * @author S.Heller * @version: $Revision: 1.1 $ */ public class PreferencesPanelDirectories extends PreferencesPanel { /**Localize the GUI*/ private MecResourceBundle rb = null; /**GUI prefs*/ private PreferencesClient preferences; private BaseClient baseClient; /** Creates new form PreferencesPanelDirectories */ public PreferencesPanelDirectories(BaseClient baseClient) { //load resource bundle try { this.rb = (MecResourceBundle) ResourceBundle.getBundle( ResourceBundlePreferences.class.getName()); } catch (MissingResourceException e) { throw new RuntimeException("Oops..resource bundle " + e.getClassName() + " not found."); } this.preferences = new PreferencesClient(baseClient); this.baseClient = baseClient; this.initComponents(); this.setButtonState(); } /**checks the state of the buttons, it depends on the selection in *the table */ private void setButtonState() { this.jButtonChange.setEnabled(this.jTable.getSelectedRow() >= 0); } /**Sets new preferences to this panel to changes/modify */ @Override public void loadPreferences(Connection configConnection, Connection runtimeConnection) { String[] keys = new String[]{ PreferencesAS2.DIR_MSG,}; //fill in data List<PreferencesObjectKeyValue> list = new ArrayList<PreferencesObjectKeyValue>(); for (String key : keys) { list.add(new PreferencesObjectKeyValue(key, this.preferences.get(key))); } ((TableModelPreferencesDir) this.jTable.getModel()).passNewData(list); this.jCheckBoxReceiverSubdirectory.setSelected(this.preferences.getBoolean(PreferencesAS2.RECEIPT_PARTNER_SUBDIR)); } /**Modifies the selected row in the table*/ private void modifySelection() { PreferencesObjectKeyValue directory = ((TableModelPreferencesDir) this.jTable.getModel()).getPreference(this.jTable.getSelectedRow()); String existingPath = directory.getValue(); JFrame parent = (JFrame) SwingUtilities.getAncestorOfClass(JFrame.class, this); RemoteFileBrowser browser = new RemoteFileBrowser(parent, this.baseClient, this.rb.getResourceString("remotedir.select")); browser.setDirectoriesOnly(true); browser.setSelectedFile(existingPath); browser.setVisible(true); String selectedPath = browser.getSelectedPath(); if (selectedPath != null) { directory.setValue(selectedPath); ((TableModelPreferencesDir) this.jTable.getModel()).fireTableDataChanged(); this.preferences.put(directory.getKey(), selectedPath); } } /** 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; jCheckBoxReceiverSubdirectory = new javax.swing.JCheckBox(); jPanelDirSelection = new javax.swing.JPanel(); jScrollPane = new javax.swing.JScrollPane(); jTable = new javax.swing.JTable(); jButtonChange = new javax.swing.JButton(); setLayout(new java.awt.GridBagLayout()); jCheckBoxReceiverSubdirectory.setText(this.rb.getResourceString( "receipt.subdir" )); jCheckBoxReceiverSubdirectory.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); jCheckBoxReceiverSubdirectory.setMargin(new java.awt.Insets(0, 0, 0, 0)); jCheckBoxReceiverSubdirectory.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxReceiverSubdirectoryActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); add(jCheckBoxReceiverSubdirectory, gridBagConstraints); jPanelDirSelection.setLayout(new java.awt.GridBagLayout()); jTable.setModel(new TableModelPreferencesDir()); jTable.setShowHorizontalLines(false); jTable.setShowVerticalLines(false); jTable.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jTableMouseClicked(evt); } }); jScrollPane.setViewportView(jTable); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelDirSelection.add(jScrollPane, gridBagConstraints); jButtonChange.setText(this.rb.getResourceString( "button.modify" )); jButtonChange.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonChangeActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); jPanelDirSelection.add(jButtonChange, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); add(jPanelDirSelection, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents private void jTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableMouseClicked this.setButtonState(); if (evt.getClickCount() == 2) { this.modifySelection(); } }//GEN-LAST:event_jTableMouseClicked private void jButtonChangeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonChangeActionPerformed this.modifySelection(); }//GEN-LAST:event_jButtonChangeActionPerformed private void jCheckBoxReceiverSubdirectoryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxReceiverSubdirectoryActionPerformed this.preferences.putBoolean(PreferencesAS2.RECEIPT_PARTNER_SUBDIR, this.jCheckBoxReceiverSubdirectory.isSelected()); }//GEN-LAST:event_jCheckBoxReceiverSubdirectoryActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButtonChange; private javax.swing.JCheckBox jCheckBoxReceiverSubdirectory; private javax.swing.JPanel jPanelDirSelection; private javax.swing.JScrollPane jScrollPane; private javax.swing.JTable jTable; // End of variables declaration//GEN-END:variables @Override public void savePreferences() { //NOP } @Override public String getIconResource() { return ("/de/mendelson/comm/as2/preferences/folder32x32.gif"); } @Override public String getTabResource() { return ("tab.dir"); } }