1 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 43 public class LogPane extends javax.swing.JPanel implements java.awt.event.ActionListener { 44 45 private LogTextArea mainLogTextArea; 46 private Vector logsComponents = new Vector(); 47 private LogTextArea pointedLogTextArea = null; 48 private Properties properties; 49 50 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 103 private void initComponents() { 105 jPopupMenuLog = new javax.swing.JPopupMenu (); 106 jMenuItemClearLog = new javax.swing.JMenuItem (); 107 jMenuItemCloseLog = new javax.swing.JMenuItem (); 108 jMenuItemKeepLog = new javax.swing.JMenuItem (); 109 jTabbedPaneLogs = new javax.swing.JTabbedPane (); 110 111 jMenuItemClearLog.setText("Clear log"); 112 jMenuItemClearLog.addActionListener(new java.awt.event.ActionListener () { 113 public void actionPerformed(java.awt.event.ActionEvent 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 () { 122 public void actionPerformed(java.awt.event.ActionEvent 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 () { 131 public void actionPerformed(java.awt.event.ActionEvent evt) { 132 jMenuItemKeepLogActionPerformed(evt); 133 } 134 }); 135 136 jPopupMenuLog.add(jMenuItemKeepLog); 137 138 setLayout(new java.awt.BorderLayout ()); 139 140 jTabbedPaneLogs.addMouseListener(new java.awt.event.MouseAdapter () { 141 public void mouseClicked(java.awt.event.MouseEvent evt) { 142 jTabbedPaneLogsMouseClicked(evt); 143 } 144 }); 145 146 add(jTabbedPaneLogs, java.awt.BorderLayout.CENTER); 147 148 } 150 private void jMenuItemKeepLogActionPerformed(java.awt.event.ActionEvent evt) { this.pointedLogTextArea.setRemovable(false); 152 } 154 private void jMenuItemCloseLogActionPerformed(java.awt.event.ActionEvent evt) { if (this.pointedLogTextArea != getMainLogTextArea()) 156 { 157 this.removeLog(pointedLogTextArea); 158 } 159 } 161 private void jTabbedPaneLogsMouseClicked(java.awt.event.MouseEvent evt) { 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 } 170 private void jMenuItemClearLogActionPerformed(java.awt.event.ActionEvent evt) { 172 this.pointedLogTextArea.clearConsole(); 173 174 } 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 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 ex) {} 233 } 234 235 private javax.swing.JMenuItem jMenuItemClearLog; 237 private javax.swing.JMenuItem jMenuItemCloseLog; 238 private javax.swing.JMenuItem jMenuItemKeepLog; 239 private javax.swing.JPopupMenu jPopupMenuLog; 240 private javax.swing.JTabbedPane jTabbedPaneLogs; 241 243 public void applyI18n() { 245 jMenuItemCloseLog.setText(I18n.getString("logPane.menuItemCloseLog","Close log")); 247 jMenuItemKeepLog.setText(I18n.getString("logPane.menuItemKeepLog","Keep log")); 248 jMenuItemClearLog.setText(it.businesslogic.ireport.util.I18n.getString("clearLog", "Clear log")); 250 251 } 252 public void languageChanged(LanguageChangedEvent evt) { 253 this.applyI18n(); 254 }} 256 | Popular Tags |