1 8 package org.jahia.sqlprofiler.gui; 9 10 import java.awt.*; 11 import javax.swing.JPanel ; 12 import javax.swing.JToolBar ; 13 import javax.swing.JButton ; 14 import javax.swing.Icon ; 15 import javax.swing.ImageIcon ; 16 import javax.swing.JFileChooser ; 17 import java.net.URL ; 18 import java.io.InputStream ; 19 import java.io.IOException ; 20 import java.awt.event.ActionListener ; 21 import java.awt.event.ActionEvent ; 22 23 34 35 public class ToolbarPanel extends JPanel { 36 private static final org.apache.log4j.Logger logger = org.apache.log4j. 37 Logger.getLogger(ToolbarPanel.class); 38 39 BorderLayout borderLayout1 = new BorderLayout(); 40 41 private JButton playButton; 42 private JButton pauseButton; 43 private JButton reportButton; private boolean playing = true; 45 46 private LoggerTableModel loggerModel; 47 private ProfileStatementTableModel profileStatementTableModel; 48 49 public ToolbarPanel(LoggerTableModel loggerModel, ProfileStatementTableModel profileStatementTableModel) { 50 this.loggerModel = loggerModel; 51 this.profileStatementTableModel = profileStatementTableModel; 52 try { 53 jbInit(); 54 } catch (Exception ex) { 55 ex.printStackTrace(); 56 } 57 } 58 59 void jbInit() throws Exception { 60 this.setLayout(borderLayout1); 61 JToolBar toolbar = new JToolBar (); 62 java.net.URL saveAsIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/SaveAs16.gif"); 63 Icon saveAsIcon = new ImageIcon (saveAsIconURL, "Save As"); 64 JButton myButton = new JButton (saveAsIcon); 65 myButton.setToolTipText("Save the generated SQL INDEX File as..."); 66 myButton.addActionListener(new ActionListener () { 67 public void actionPerformed(ActionEvent aEvent) { 68 JFileChooser chooser = new JFileChooser (); 69 chooser.setDialogTitle("Save Index SQL File As..."); 72 int returnVal = chooser.showSaveDialog(null); 73 if(returnVal == JFileChooser.APPROVE_OPTION) { 74 profileStatementTableModel.saveSQLIndexFile(chooser.getSelectedFile().toString()); 75 } 76 } 77 }); 78 toolbar.add(myButton); 79 toolbar.addSeparator(); 80 java.net.URL clearIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/Delete16.gif"); 81 Icon clearIcon = new ImageIcon (clearIconURL, "Clear"); 82 myButton = new JButton (clearIcon); 83 myButton.setToolTipText("Clear all the log entries from memory"); 84 myButton.addActionListener(new ActionListener () { 85 public void actionPerformed(ActionEvent aEvent) { 86 loggerModel.clear(); 87 } 88 }); 89 toolbar.add(myButton); 90 toolbar.addSeparator(); 91 java.net.URL playIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/media/Play16.gif"); 92 Icon playIcon = new ImageIcon (playIconURL, "Play"); 93 playButton = new JButton (playIcon); 94 playButton.setEnabled(false); 95 playButton.setToolTipText("Resume real-time display and gather SQL statistics"); 96 playButton.addActionListener(new ActionListener () { 97 public void actionPerformed(ActionEvent aEvent) { 98 loggerModel.toggle(); 99 togglePlayButtons(); 100 } 101 }); 102 toolbar.add(playButton); 103 java.net.URL pauseIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/media/Pause16.gif"); 104 Icon pauseIcon = new ImageIcon (pauseIconURL, "Pause"); 105 pauseButton = new JButton (pauseIcon); 106 pauseButton.setToolTipText("Pause real-time display and display SQL table profile statistics"); 107 pauseButton.addActionListener(new ActionListener () { 108 public void actionPerformed(ActionEvent aEvent) { 109 loggerModel.toggle(); 110 togglePlayButtons(); 111 } 112 }); 113 toolbar.add(pauseButton); 114 java.net.URL reportIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/Edit16.gif"); 116 Icon reportIcon = new ImageIcon (reportIconURL, "Report"); 117 reportButton = new JButton (reportIcon); 118 reportButton.setEnabled(false); 119 reportButton.setToolTipText("Save SQL table profile statistics generated in a file ..."); 120 reportButton.addActionListener(new ActionListener () { 121 public void actionPerformed(ActionEvent aEvent) { 122 JFileChooser chooser = new JFileChooser (); 123 chooser.setDialogTitle("Save Report File As..."); 126 int returnVal = chooser.showSaveDialog(null); 127 if(returnVal == JFileChooser.APPROVE_OPTION) { 128 profileStatementTableModel.saveReportFile(chooser.getSelectedFile().toString()); 129 } 130 } 131 }); 132 toolbar.addSeparator(); 133 toolbar.add(reportButton); 134 add(toolbar, BorderLayout.NORTH); 136 } 137 138 public void togglePlayButtons() { 139 playing = !playing; 140 if (playing) { 141 playButton.setEnabled(false); 142 pauseButton.setEnabled(true); 143 reportButton.setEnabled(false); } else { 145 playButton.setEnabled(true); 146 pauseButton.setEnabled(false); 147 reportButton.setEnabled(true); } 149 } 150 151 } | Popular Tags |