/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.wizards;
import org.openide.util.NbBundle;
import org.openide.util.WeakListeners;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
/**
* DOCUMENT ME!
*
* @author mscholl
* @version $Revision$, $Date$
*/
public class VisualPanelFileExport extends javax.swing.JPanel {
//~ Instance fields --------------------------------------------------------
private final transient WizardPanelFileExport model;
private final transient DocumentListener docL;
private final transient ActionListener chooseL;
// Variables declaration - do not modify//GEN-BEGIN:variables
private final transient javax.swing.JButton btnChooseFile = new javax.swing.JButton();
private final transient javax.swing.JLabel lblExportFile = new javax.swing.JLabel();
private final transient javax.swing.JTextField txtExportFile = new javax.swing.JTextField();
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form TimeSeriesExportVisualPanelFile.
*
* @param model DOCUMENT ME!
*/
public VisualPanelFileExport(final WizardPanelFileExport model) {
this.model = model;
this.docL = new DocL();
this.chooseL = new ChooseL();
initComponents();
setName(NbBundle.getMessage(
VisualPanelFileExport.class,
"VisualPanelFileExport.this.name")); // NOI18N
txtExportFile.getDocument().addDocumentListener(WeakListeners.document(docL, txtExportFile.getDocument()));
btnChooseFile.addActionListener(WeakListeners.create(ActionListener.class, chooseL, btnChooseFile));
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*/
void init() {
final File exportFile = model.getExportFile();
if (exportFile == null) {
txtExportFile.setText(null);
} else {
txtExportFile.setText(exportFile.getAbsolutePath());
}
}
/**
* 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;
setOpaque(false);
setLayout(new java.awt.GridBagLayout());
lblExportFile.setText(NbBundle.getMessage(
VisualPanelFileExport.class,
"VisualPanelFileExport.lblExportFile.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 10, 5, 5);
add(lblExportFile, gridBagConstraints);
txtExportFile.setText(NbBundle.getMessage(
VisualPanelFileExport.class,
"VisualPanelFileExport.txtExportFile.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(txtExportFile, gridBagConstraints);
btnChooseFile.setText(NbBundle.getMessage(
VisualPanelFileExport.class,
"VisualPanelFileExport.btnChooseFile.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
add(btnChooseFile, gridBagConstraints);
} // </editor-fold>//GEN-END:initComponents
//~ Inner Classes ----------------------------------------------------------
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
private final class ChooseL implements ActionListener {
//~ Methods ------------------------------------------------------------
@Override
public void actionPerformed(final ActionEvent e) {
final JFileChooser chooser = new JFileChooser(model.getExportFile());
chooser.setFileFilter(new ZipFilter());
final int answer = chooser.showSaveDialog(VisualPanelFileExport.this);
if (JFileChooser.APPROVE_OPTION == answer) {
txtExportFile.setText(chooser.getSelectedFile().getAbsolutePath());
}
}
}
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
private final class DocL implements DocumentListener {
//~ Methods ------------------------------------------------------------
@Override
public void insertUpdate(final DocumentEvent e) {
changedUpdate(e);
}
@Override
public void removeUpdate(final DocumentEvent e) {
changedUpdate(e);
}
@Override
public void changedUpdate(final DocumentEvent e) {
model.setExportFile(new File(txtExportFile.getText()));
}
}
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
private final class ZipFilter extends javax.swing.filechooser.FileFilter {
//~ Methods ------------------------------------------------------------
@Override
public boolean accept(final File file) {
final String filename = file.getName();
return file.isDirectory() || filename.endsWith(".zip");
}
@Override
public String getDescription() {
return "Zipped CSV File";
}
}
}