2 * This file is part of NixNote
\r
3 * Copyright 2009 Randy Baumgarte
\r
5 * This file may be licensed under the terms of of the
\r
6 * GNU General Public License Version 2 (the ``GPL'').
\r
8 * Software distributed under the License is distributed
\r
9 * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
\r
10 * express or implied. See the GPL for the specific language
\r
11 * governing rights and limitations.
\r
13 * You should have received a copy of the GPL along with this
\r
14 * program. If not, go to http://www.gnu.org/licenses/gpl.html
\r
15 * or write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\r
20 package cx.fbn.nevernote.dialog;
\r
22 //**********************************************
\r
23 //**********************************************
\r
24 //* This dialog is called when the Help/Log
\r
25 //* menu option is clicked.
\r
26 //**********************************************
\r
27 //**********************************************
\r
30 import java.io.BufferedReader;
\r
31 import java.io.File;
\r
32 import java.io.FileNotFoundException;
\r
33 import java.io.FileReader;
\r
34 import java.io.IOException;
\r
35 import java.util.List;
\r
37 import com.trolltech.qt.gui.QComboBox;
\r
38 import com.trolltech.qt.gui.QDialog;
\r
39 import com.trolltech.qt.gui.QHBoxLayout;
\r
40 import com.trolltech.qt.gui.QIcon;
\r
41 import com.trolltech.qt.gui.QLabel;
\r
42 import com.trolltech.qt.gui.QTextEdit;
\r
43 import com.trolltech.qt.gui.QVBoxLayout;
\r
45 import cx.fbn.nevernote.Global;
\r
47 public class LogFileDialog extends QDialog {
\r
48 public final QComboBox fileCombo;
\r
49 public final QTextEdit textField;
\r
50 private final List<String> logs;
\r
51 private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");
\r
54 public LogFileDialog(List<String> l) {
\r
55 setWindowTitle(tr("Application Logs"));
\r
57 setWindowIcon(new QIcon(iconPath+"notebook-green.png"));
\r
58 QVBoxLayout main = new QVBoxLayout();
\r
60 fileCombo = new QComboBox(this);
\r
62 QHBoxLayout comboLayout = new QHBoxLayout();
\r
63 comboLayout.addWidget(new QLabel(tr("Log File:")));
\r
64 comboLayout.addWidget(fileCombo);
\r
65 comboLayout.addStretch(100);
\r
66 fileCombo.currentIndexChanged.connect(this, "indexChanged(Integer)");
\r
68 main.addLayout(comboLayout);
\r
70 textField = new QTextEdit(this);
\r
71 main.addWidget(textField);
\r
73 fileCombo.addItem(tr("Message Log"), "MessageLog");
\r
74 fileCombo.addItem(tr("Application Log"), "NeverNoteLog");
\r
75 fileCombo.addItem(tr("Synchronization Log"), "SyncLog");
\r
76 fileCombo.addItem(tr("Save Log"), "SaveLog");
\r
77 fileCombo.addItem(tr("Tag Counter Log"), "TagCounterLog");
\r
78 fileCombo.addItem(tr("Notebook Counter Log"), "NotebookCounterLog");
\r
79 fileCombo.addItem(tr("Trash Counter Log"), "TrashCounterLog");
\r
80 fileCombo.addItem(tr("Note Browser Log"), "NoteBrowserLog");
\r
81 fileCombo.addItem(tr("Export Log"), "ExportLog");
\r
82 fileCombo.addItem(tr("Import Log"), "ImportLog");
\r
83 // fileCombo.addItem(tr("Global Log"), "GlobalLog");
\r
84 fileCombo.addItem(tr("Index Log"), "IndexLog");
\r
85 fileCombo.addItem(tr("Database Connection Log"), "DatabaseLog");
\r
86 fileCombo.addItem(tr("Thumbnail Generator Log"), "ThumbnailLog");
\r
87 fileCombo.addItem(tr("NeighborNote Database SQL Trace File"), "NeverNoteDBLog");
\r
88 fileCombo.addItem(tr("Index Database SQL Trace File"), "IndexDBLog");
\r
89 fileCombo.addItem(tr("Resource Database SQL Trace File"), "ResourceDBLog");
\r
94 @SuppressWarnings("unused")
\r
95 private void restoreAsNewPushed() {
\r
98 @SuppressWarnings("unused")
\r
99 private void restorePushed() {
\r
102 @SuppressWarnings("unused")
\r
103 private void cancelPressed() {
\r
107 @SuppressWarnings("unused")
\r
108 private void indexChanged(Integer index) {
\r
109 String value = (String) fileCombo.itemData(index);
\r
111 if (value.equals("MessageLog")) {
\r
113 for (int i=0; i<logs.size(); i++) {
\r
114 textField.append(logs.get(i));
\r
118 if (value.equals("NeverNoteLog")) {
\r
119 loadFile("nevernote.log");
\r
122 if (value.equals("SyncLog")) {
\r
123 loadFile("syncRunner.log");
\r
126 if (value.equals("SaveLog")) {
\r
127 loadFile("saveRunner.log");
\r
130 if (value.equals("SaveLog")) {
\r
131 loadFile("saveRunner.log");
\r
134 if (value.equals("TagCounterLog")) {
\r
135 loadFile("tag_counter.log");
\r
138 if (value.equals("NotebookCounterLog")) {
\r
139 loadFile("notebook_counter.log");
\r
142 if (value.equals("TrashCounterLog")) {
\r
143 loadFile("trash_counter.log");
\r
146 if (value.equals("NoteBrowserLog")) {
\r
147 loadFile("browser.log");
\r
150 if (value.equals("ExportLog")) {
\r
151 loadFile("export.log");
\r
154 if (value.equals("ImportLog")) {
\r
155 loadFile("import.log");
\r
158 if (value.equals("GlobalLog")) {
\r
159 loadFile("global.log");
\r
162 if (value.equals("IndexLog")) {
\r
163 loadFile("indexRunner.log");
\r
166 if (value.equals("DatabaseLog")) {
\r
167 loadFile("nevernote-database.log");
\r
170 if (value.equals("ThumbnailLog")) {
\r
171 loadFile("thumbnailRunner.log");
\r
174 if (value.equals("NeverNoteDBLog")) {
\r
175 loadTraceFile("NeverNote.trace.db");
\r
178 if (value.equals("IndexDBLog")) {
\r
179 loadTraceFile("Index.trace.db");
\r
182 if (value.equals("ResourceDBLog")) {
\r
183 loadTraceFile("Resources.trace.db");
\r
188 private void loadFile(String file) {
\r
190 File f = Global.getFileManager().getLogsDirFile(file);
\r
192 BufferedReader in = new BufferedReader(new FileReader(f.getAbsolutePath()));
\r
194 while ((data=in.readLine()) != null) {
\r
195 textField.append(data);
\r
197 } catch (FileNotFoundException e) {
\r
198 e.printStackTrace();
\r
200 } catch (IOException e) {
\r
201 // TODO Auto-generated catch block
\r
202 e.printStackTrace();
\r
206 private void loadTraceFile(String file) {
\r
208 File f = Global.getFileManager().getDbDirFile(file);
\r
210 BufferedReader in = new BufferedReader(new FileReader(f.getAbsolutePath()));
\r
212 while ((data=in.readLine()) != null) {
\r
213 textField.append(data);
\r
215 } catch (FileNotFoundException e) {
\r
217 } catch (IOException e) {
\r
218 e.printStackTrace();
\r