001    package nl.cwi.sen1.visplugin.csvexport;
002    
003    import java.awt.BorderLayout;
004    import java.io.IOException;
005    
006    import javax.swing.JLabel;
007    import javax.swing.JPanel;
008    
009    import nl.cwi.sen1.relationstores.types.RTuple;
010    import nl.cwi.sen1.visplugin.VisualizationPluginWindow;
011    
012    /**
013     * This class represents the window of the CSV Export plugin in the meta environment
014     * @author  Antoine Savelkoul
015     * @author  Chris Woolderink
016     * @date    14-03-2007
017     */
018    public class CsvExportVisualizationWindow extends VisualizationPluginWindow {
019        private RTuple m_fact; // used to store the RTuple that has to be exported
020        private JLabel m_message; // used for the message that will be shown after the export is completed
021    
022        /**
023         * Returns JPanel including JTable with Data.
024         * @param fact the RStore to be exported
025         * @return the content for the tab that will be shown in the Meta Environment
026             * @author Antoine Savelkoul
027             * @author Chris Woolderink
028             * @date   16-03-2007    
029         */
030        public JPanel render(RTuple fact) {
031            m_fact = fact;
032            
033            // Create and return the content for the tab that will be shown in the Meta Environment
034            JPanel controlArea = new JPanel(new BorderLayout());
035            m_message = new JLabel();
036            controlArea.add(m_message);
037            return controlArea;
038        }
039        
040        /**
041         * Called when the plugin is loaded
042         * @author Raymond Bergen
043             * @date   16-03-2007 
044         */
045            public void executeOnLoad() {
046                    exportToCsvClicked();
047            }
048            
049            /**
050             * Exports the loaded RTuple to a CSV file
051             * @param fileName The name of the the CSV output will be written to
052             * @author Antoine Savelkoul
053             * @author Chris Woolderink
054             * @date   16-03-2007    
055             */
056            protected void exportToCsv(String fileName){
057            String message = "";
058            try {
059                    Exporter.exportToFile( m_fact, fileName, Exporter.ExportSelection.DATA_ONLY);
060                    message = "The RStore has been exported successfully. You can close this window.";
061            }
062            catch( IOException e ) {
063                    message = "The RStore has not been succesfully exported. Error while writing file. You can close this window. ";
064            }
065            
066            m_message.setText(message);
067            }
068    }
069