+/*\r
+ * This file is part of NeverNote \r
+ * Copyright 2009 Randy Baumgarte\r
+ * \r
+ * This file may be licensed under the terms of of the\r
+ * GNU General Public License Version 2 (the ``GPL'').\r
+ *\r
+ * Software distributed under the License is distributed\r
+ * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
+ * express or implied. See the GPL for the specific language\r
+ * governing rights and limitations.\r
+ *\r
+ * You should have received a copy of the GPL along with this\r
+ * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
+ * or write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
+ *\r
+*/\r
+\r
+package cx.fbn.nevernote.dialog;\r
+\r
+import java.io.BufferedReader;\r
+import java.io.File;\r
+import java.io.FileNotFoundException;\r
+import java.io.FileReader;\r
+import java.io.IOException;\r
+import java.util.List;\r
+\r
+import com.trolltech.qt.gui.QComboBox;\r
+import com.trolltech.qt.gui.QDialog;\r
+import com.trolltech.qt.gui.QHBoxLayout;\r
+import com.trolltech.qt.gui.QIcon;\r
+import com.trolltech.qt.gui.QLabel;\r
+import com.trolltech.qt.gui.QTextEdit;\r
+import com.trolltech.qt.gui.QVBoxLayout;\r
+\r
+import cx.fbn.nevernote.Global;\r
+\r
+public class LogFileDialog extends QDialog {\r
+ public final QComboBox fileCombo; \r
+ public final QTextEdit textField;\r
+ private final List<String> logs;\r
+ private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
+ \r
+ // Constructor\r
+ public LogFileDialog(List<String> l) {\r
+ setWindowTitle(tr("Application Logs"));\r
+ logs = l;\r
+ setWindowIcon(new QIcon(iconPath+"notebook-green.png"));\r
+ QVBoxLayout main = new QVBoxLayout();\r
+ setLayout(main);\r
+ fileCombo = new QComboBox(this);\r
+ \r
+ QHBoxLayout comboLayout = new QHBoxLayout();\r
+ comboLayout.addWidget(new QLabel(tr("Log File:")));\r
+ comboLayout.addWidget(fileCombo);\r
+ comboLayout.addStretch(100);\r
+ fileCombo.currentIndexChanged.connect(this, "indexChanged(Integer)");\r
+ \r
+ main.addLayout(comboLayout);\r
+ \r
+ textField = new QTextEdit(this);\r
+ main.addWidget(textField);\r
+ \r
+ fileCombo.addItem(tr("Message Log"), "MessageLog");\r
+ fileCombo.addItem(tr("Application Log"), "NeverNoteLog");\r
+ fileCombo.addItem(tr("Synchronization Log"), "SyncLog");\r
+ fileCombo.addItem(tr("Save Log"), "SaveLog");\r
+ fileCombo.addItem(tr("Tag Counter Log"), "TagCounterLog");\r
+ fileCombo.addItem(tr("Notebook Counter Log"), "NotebookCounterLog");\r
+ fileCombo.addItem(tr("Trash Counter Log"), "TrashCounterLog");\r
+ fileCombo.addItem(tr("Note Browser Log"), "NoteBrowserLog");\r
+ fileCombo.addItem(tr("Export Log"), "ExportLog");\r
+ fileCombo.addItem(tr("Import Log"), "ImportLog");\r
+// fileCombo.addItem(tr("Global Log"), "GlobalLog");\r
+ fileCombo.addItem(tr("Index Log"), "IndexLog");\r
+ fileCombo.addItem(tr("Database Connection Log"), "DatabaseLog");\r
+ fileCombo.addItem(tr("Thumbnail Generator Log"), "ThumbnailLog");\r
+ fileCombo.addItem(tr("NeverNote Database SQL Trace File"), "NeverNoteDBLog");\r
+ fileCombo.addItem(tr("Index Database SQL Trace File"), "IndexDBLog");\r
+ fileCombo.addItem(tr("Resource Database SQL Trace File"), "ResourceDBLog");\r
+ \r
+ \r
+ }\r
+ \r
+ @SuppressWarnings("unused")\r
+ private void restoreAsNewPushed() {\r
+ this.close();\r
+ }\r
+ @SuppressWarnings("unused")\r
+ private void restorePushed() {\r
+ this.close();\r
+ }\r
+ @SuppressWarnings("unused")\r
+ private void cancelPressed() {\r
+ this.close();\r
+ }\r
+ \r
+ @SuppressWarnings("unused")\r
+ private void indexChanged(Integer index) {\r
+ String value = (String) fileCombo.itemData(index);\r
+\r
+ if (value.equals("MessageLog")) {\r
+ textField.clear();\r
+ for (int i=0; i<logs.size(); i++) {\r
+ textField.append(logs.get(i));\r
+ }\r
+ return;\r
+ } \r
+ if (value.equals("NeverNoteLog")) {\r
+ loadFile("nevernote.log");\r
+ return;\r
+ }\r
+ if (value.equals("SyncLog")) {\r
+ loadFile("syncRunner.log");\r
+ return;\r
+ }\r
+ if (value.equals("SaveLog")) {\r
+ loadFile("saveRunner.log");\r
+ return;\r
+ }\r
+ if (value.equals("SaveLog")) {\r
+ loadFile("saveRunner.log");\r
+ return;\r
+ }\r
+ if (value.equals("TagCounterLog")) {\r
+ loadFile("tag_counter.log");\r
+ return;\r
+ }\r
+ if (value.equals("NotebookCounterLog")) {\r
+ loadFile("notebook_counter.log");\r
+ return;\r
+ }\r
+ if (value.equals("TrashCounterLog")) {\r
+ loadFile("trash_counter.log");\r
+ return;\r
+ }\r
+ if (value.equals("NoteBrowserLog")) {\r
+ loadFile("browser.log");\r
+ return;\r
+ }\r
+ if (value.equals("ExportLog")) {\r
+ loadFile("export.log");\r
+ return;\r
+ }\r
+ if (value.equals("ImportLog")) {\r
+ loadFile("import.log");\r
+ return;\r
+ }\r
+ if (value.equals("GlobalLog")) {\r
+ loadFile("global.log");\r
+ return;\r
+ }\r
+ if (value.equals("IndexLog")) {\r
+ loadFile("indexRunner.log");\r
+ return;\r
+ }\r
+ if (value.equals("DatabaseLog")) {\r
+ loadFile("nevernote-database.log");\r
+ return;\r
+ }\r
+ if (value.equals("ThumbnailLog")) {\r
+ loadFile("thumbnailRunner.log");\r
+ return;\r
+ }\r
+ if (value.equals("NeverNoteDBLog")) {\r
+ loadTraceFile("NeverNote.trace.db");\r
+ return;\r
+ } \r
+ if (value.equals("IndexDBLog")) {\r
+ loadTraceFile("Index.trace.db");\r
+ return;\r
+ } \r
+ if (value.equals("ResourceDBLog")) {\r
+ loadTraceFile("Resources.trace.db");\r
+ return;\r
+ } \r
+ }\r
+ \r
+ private void loadFile(String file) {\r
+ textField.clear();\r
+ File f = Global.getFileManager().getLogsDirFile(file);\r
+ try {\r
+ BufferedReader in = new BufferedReader(new FileReader(f.getAbsolutePath()));\r
+ String data;\r
+ while ((data=in.readLine()) != null) {\r
+ textField.append(data);\r
+ }\r
+ } catch (FileNotFoundException e) {\r
+ e.printStackTrace();\r
+ return;\r
+ } catch (IOException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ } \r
+ }\r
+ \r
+ private void loadTraceFile(String file) {\r
+ textField.clear();\r
+ File f = Global.getFileManager().getDbDirFile(file);\r
+ try {\r
+ BufferedReader in = new BufferedReader(new FileReader(f.getAbsolutePath()));\r
+ String data;\r
+ while ((data=in.readLine()) != null) {\r
+ textField.append(data);\r
+ }\r
+ } catch (FileNotFoundException e) {\r
+ return;\r
+ } catch (IOException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+}\r
+ \r
+\r
+\r
+ \r
+ \r
+ \r
+ \r
+\r