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