KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > logpane > LogPane


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * LogPane.java
28  *
29  * Created on 22 agosto 2005, 15.02
30  *
31  */

32
33 package it.businesslogic.ireport.gui.logpane;
34 import it.businesslogic.ireport.util.LanguageChangedListener;
35 import java.util.*;
36 import it.businesslogic.ireport.util.LanguageChangedEvent;
37 import it.businesslogic.ireport.util.I18n;
38
39 /**
40  *
41  * @author Administrator
42  */

43 public class LogPane extends javax.swing.JPanel JavaDoc implements java.awt.event.ActionListener JavaDoc {
44
45     private LogTextArea mainLogTextArea;
46     private Vector logsComponents = new Vector();
47     private LogTextArea pointedLogTextArea = null;
48     private Properties properties;
49
50     /** Creates new form LogPane */
51     public LogPane() {
52         initComponents();
53         mainLogTextArea = new LogTextArea(I18n.getString("logPane.mainConsole","Main console"));
54         mainLogTextArea.setLogPane( this );
55         mainLogTextArea.addActionListener( this );
56
57         updateLogTabs();
58         I18n.addOnLanguageChangedListener( new LanguageChangedListener() {
59              public void languageChanged(LanguageChangedEvent evt) {
60                 applyI18n();
61              }
62          });
63         applyI18n();
64     }
65
66     protected void updateLogTabs()
67     {
68         if (logsComponents.size() > 0)
69         {
70
71                 jTabbedPaneLogs.removeAll();
72                 jTabbedPaneLogs.add(mainLogTextArea.getTitle(), mainLogTextArea);
73
74                 for (int i=0; i<logsComponents.size(); ++i)
75                 {
76                     jTabbedPaneLogs.add(((LogTextArea)logsComponents.elementAt(i)).getTitle(),
77                                          (LogTextArea)logsComponents.elementAt(i));
78                 }
79
80                 if (getComponentCount()==0 || getComponent(0) != jTabbedPaneLogs)
81                 {
82                     remove(mainLogTextArea);
83                     add(jTabbedPaneLogs, java.awt.BorderLayout.CENTER);
84                 }
85         }
86         else
87         {
88             if (getComponentCount()==0 || getComponent(0) == jTabbedPaneLogs)
89             {
90                 if (getComponentCount() > 0) remove(jTabbedPaneLogs);
91                 add(mainLogTextArea, java.awt.BorderLayout.CENTER);
92             }
93         }
94
95         this.updateUI();
96     }
97
98     /** This method is called from within the constructor to
99      * initialize the form.
100      * WARNING: Do NOT modify this code. The content of this method is
101      * always regenerated by the Form Editor.
102      */

103     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
104
private void initComponents() {
105         jPopupMenuLog = new javax.swing.JPopupMenu JavaDoc();
106         jMenuItemClearLog = new javax.swing.JMenuItem JavaDoc();
107         jMenuItemCloseLog = new javax.swing.JMenuItem JavaDoc();
108         jMenuItemKeepLog = new javax.swing.JMenuItem JavaDoc();
109         jTabbedPaneLogs = new javax.swing.JTabbedPane JavaDoc();
110
111         jMenuItemClearLog.setText("Clear log");
112         jMenuItemClearLog.addActionListener(new java.awt.event.ActionListener JavaDoc() {
113             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
114                 jMenuItemClearLogActionPerformed(evt);
115             }
116         });
117
118         jPopupMenuLog.add(jMenuItemClearLog);
119
120         jMenuItemCloseLog.setText("Close log");
121         jMenuItemCloseLog.addActionListener(new java.awt.event.ActionListener JavaDoc() {
122             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
123                 jMenuItemCloseLogActionPerformed(evt);
124             }
125         });
126
127         jPopupMenuLog.add(jMenuItemCloseLog);
128
129         jMenuItemKeepLog.setText("Keep log");
130         jMenuItemKeepLog.addActionListener(new java.awt.event.ActionListener JavaDoc() {
131             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
132                 jMenuItemKeepLogActionPerformed(evt);
133             }
134         });
135
136         jPopupMenuLog.add(jMenuItemKeepLog);
137
138         setLayout(new java.awt.BorderLayout JavaDoc());
139
140         jTabbedPaneLogs.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
141             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
142                 jTabbedPaneLogsMouseClicked(evt);
143             }
144         });
145
146         add(jTabbedPaneLogs, java.awt.BorderLayout.CENTER);
147
148     }// </editor-fold>//GEN-END:initComponents
149

150     private void jMenuItemKeepLogActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jMenuItemKeepLogActionPerformed
151
this.pointedLogTextArea.setRemovable(false);
152     }//GEN-LAST:event_jMenuItemKeepLogActionPerformed
153

154     private void jMenuItemCloseLogActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jMenuItemCloseLogActionPerformed
155
if (this.pointedLogTextArea != getMainLogTextArea())
156         {
157             this.removeLog(pointedLogTextArea);
158         }
159     }//GEN-LAST:event_jMenuItemCloseLogActionPerformed
160

161     private void jTabbedPaneLogsMouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jTabbedPaneLogsMouseClicked
162

163
164         if (evt.getButton() == evt.BUTTON3 && evt.getClickCount() == 1) {
165             this.jPopupMenuLog.show(this, evt.getPoint().x, evt.getPoint().y);
166             this.pointedLogTextArea = (LogTextArea)jTabbedPaneLogs.getSelectedComponent();
167         }
168     }//GEN-LAST:event_jTabbedPaneLogsMouseClicked
169

170     private void jMenuItemClearLogActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jMenuItemClearLogActionPerformed
171

172            this.pointedLogTextArea.clearConsole();
173
174     }//GEN-LAST:event_jMenuItemClearLogActionPerformed
175

176
177     public LogTextArea createNewLog()
178     {
179         LogTextArea lta = new LogTextArea(I18n.getString("logPane.log","Log"));
180         lta.setLogPane( this );
181         lta.addActionListener( this );
182         logsComponents.addElement(lta);
183         for (int i=0; i<logsComponents.size(); ++i)
184         {
185             if ( ((LogTextArea)logsComponents.elementAt(i)).isRemovable())
186             {
187                 logsComponents.removeElementAt(i);
188                 i--;
189             }
190         }
191         updateLogTabs();
192         return lta;
193     }
194
195     public void removeLog(int logIndex)
196     {
197         logsComponents.removeElementAt(logIndex);
198         updateLogTabs();
199     }
200
201     public void removeLog(LogTextArea logTextArea)
202     {
203         logsComponents.removeElement(logTextArea);
204         updateLogTabs();
205     }
206
207     public void actionPerformed(java.awt.event.ActionEvent JavaDoc actionEvent) {
208
209         if (actionEvent.getSource() == null) return;
210         for (int i=0; i<jTabbedPaneLogs.getComponentCount(); ++i)
211         {
212             LogTextArea lta = (LogTextArea)jTabbedPaneLogs.getComponent(i);
213             if (lta == actionEvent.getSource())
214             {
215                 jTabbedPaneLogs.setTitleAt(i, lta.getTitle());
216                 break;
217             }
218         }
219     }
220
221     public LogTextArea getMainLogTextArea() {
222         return mainLogTextArea;
223     }
224
225     public void setMainLogTextArea(LogTextArea mainLogTextArea) {
226         this.mainLogTextArea = mainLogTextArea;
227     }
228
229     public void setActiveLog( LogTextArea logTextArea) {
230         try {
231         jTabbedPaneLogs.setSelectedComponent(logTextArea);
232         } catch (Exception JavaDoc ex) {}
233     }
234
235     // Variables declaration - do not modify//GEN-BEGIN:variables
236
private javax.swing.JMenuItem JavaDoc jMenuItemClearLog;
237     private javax.swing.JMenuItem JavaDoc jMenuItemCloseLog;
238     private javax.swing.JMenuItem JavaDoc jMenuItemKeepLog;
239     private javax.swing.JPopupMenu JavaDoc jPopupMenuLog;
240     private javax.swing.JTabbedPane JavaDoc jTabbedPaneLogs;
241     // End of variables declaration//GEN-END:variables
242

243     //Added by Felix Firgau for I18n on Feb 10th 2006
244
public void applyI18n() {
245                 // Start autogenerated code ----------------------
246
jMenuItemCloseLog.setText(I18n.getString("logPane.menuItemCloseLog","Close log"));
247                 jMenuItemKeepLog.setText(I18n.getString("logPane.menuItemKeepLog","Keep log"));
248                 // End autogenerated code ----------------------
249
jMenuItemClearLog.setText(it.businesslogic.ireport.util.I18n.getString("clearLog", "Clear log"));
250
251     }
252     public void languageChanged(LanguageChangedEvent evt) {
253       this.applyI18n();
254     }//End
255
}
256
Popular Tags