KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > sqlprofiler > gui > ToolbarPanel


1 /*
2  * Copyright (C) Jahia Ltd. All rights reserved.
3  *
4  * This software is published under the terms of the Jahia Open Software
5  * License version 1.1, a copy of which has been included with this
6  * distribution in the LICENSE.txt file.
7  */

8 package org.jahia.sqlprofiler.gui;
9
10 import java.awt.*;
11 import javax.swing.JPanel JavaDoc;
12 import javax.swing.JToolBar JavaDoc;
13 import javax.swing.JButton JavaDoc;
14 import javax.swing.Icon JavaDoc;
15 import javax.swing.ImageIcon JavaDoc;
16 import javax.swing.JFileChooser JavaDoc;
17 import java.net.URL JavaDoc;
18 import java.io.InputStream JavaDoc;
19 import java.io.IOException JavaDoc;
20 import java.awt.event.ActionListener JavaDoc;
21 import java.awt.event.ActionEvent JavaDoc;
22
23 /**
24  * <p>Title: SQL Profiler</p>
25  * <p>Description: </p>
26  * <p>Copyright: Copyright (c) 2003</p>
27  * <p>Company: Jahia Ltd</p>
28  * @author Serge Huber
29  * @author Jean-Philippe Valentin
30  * @version 1.0
31  *
32  * 11/14/2003 : Add button to save table profile statistics as report file CSV by Jean-Philippe VALENTIN (JPV)
33  */

34
35 public class ToolbarPanel extends JPanel JavaDoc {
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 JavaDoc playButton;
42     private JButton JavaDoc pauseButton;
43     private JButton JavaDoc reportButton; //jpv : Add a button to save SQL table profile statistics generated in a file
44
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 JavaDoc ex) {
55             ex.printStackTrace();
56         }
57     }
58
59     void jbInit() throws Exception JavaDoc {
60         this.setLayout(borderLayout1);
61         JToolBar JavaDoc toolbar = new JToolBar JavaDoc();
62         java.net.URL JavaDoc saveAsIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/SaveAs16.gif");
63         Icon JavaDoc saveAsIcon = new ImageIcon JavaDoc(saveAsIconURL, "Save As");
64         JButton JavaDoc myButton = new JButton JavaDoc(saveAsIcon);
65         myButton.setToolTipText("Save the generated SQL INDEX File as...");
66         myButton.addActionListener(new ActionListener JavaDoc() {
67             public void actionPerformed(ActionEvent JavaDoc aEvent) {
68                 JFileChooser JavaDoc chooser = new JFileChooser JavaDoc();
69                 // Note: source for ExampleFileFilter can be found in FileChooserDemo,
70
// under the demo/jfc directory in the Java 2 SDK, Standard Edition.
71
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 JavaDoc clearIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/Delete16.gif");
81         Icon JavaDoc clearIcon = new ImageIcon JavaDoc(clearIconURL, "Clear");
82         myButton = new JButton JavaDoc(clearIcon);
83         myButton.setToolTipText("Clear all the log entries from memory");
84         myButton.addActionListener(new ActionListener JavaDoc() {
85             public void actionPerformed(ActionEvent JavaDoc aEvent) {
86                 loggerModel.clear();
87             }
88         });
89         toolbar.add(myButton);
90         toolbar.addSeparator();
91         java.net.URL JavaDoc playIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/media/Play16.gif");
92         Icon JavaDoc playIcon = new ImageIcon JavaDoc(playIconURL, "Play");
93         playButton = new JButton JavaDoc(playIcon);
94         playButton.setEnabled(false);
95         playButton.setToolTipText("Resume real-time display and gather SQL statistics");
96         playButton.addActionListener(new ActionListener JavaDoc() {
97             public void actionPerformed(ActionEvent JavaDoc aEvent) {
98                 loggerModel.toggle();
99                 togglePlayButtons();
100             }
101         });
102         toolbar.add(playButton);
103         java.net.URL JavaDoc pauseIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/media/Pause16.gif");
104         Icon JavaDoc pauseIcon = new ImageIcon JavaDoc(pauseIconURL, "Pause");
105         pauseButton = new JButton JavaDoc(pauseIcon);
106         pauseButton.setToolTipText("Pause real-time display and display SQL table profile statistics");
107         pauseButton.addActionListener(new ActionListener JavaDoc() {
108             public void actionPerformed(ActionEvent JavaDoc aEvent) {
109                 loggerModel.toggle();
110                 togglePlayButtons();
111             }
112         });
113         toolbar.add(pauseButton);
114 // JPV Add a button to save SQL table profile statistics generated in a file
115
java.net.URL JavaDoc reportIconURL = ClassLoader.getSystemResource("toolbarButtonGraphics/general/Edit16.gif");
116         Icon JavaDoc reportIcon = new ImageIcon JavaDoc(reportIconURL, "Report");
117         reportButton = new JButton JavaDoc(reportIcon);
118         reportButton.setEnabled(false);
119         reportButton.setToolTipText("Save SQL table profile statistics generated in a file ...");
120         reportButton.addActionListener(new ActionListener JavaDoc() {
121             public void actionPerformed(ActionEvent JavaDoc aEvent) {
122                 JFileChooser JavaDoc chooser = new JFileChooser JavaDoc();
123                 // Note: source for ExampleFileFilter can be found in FileChooserDemo,
124
// under the demo/jfc directory in the Java 2 SDK, Standard Edition.
125
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 //End JPV
135
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); //JPV : set to false the button to save SQL table profile statistics generated in a file
144
} else {
145             playButton.setEnabled(true);
146             pauseButton.setEnabled(false);
147             reportButton.setEnabled(true); //JPV : set to true the button to save SQL table profile statistics generated in a file
148
}
149     }
150
151 }
Popular Tags