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