/* This file is part of jpcsp. Jpcsp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Jpcsp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Jpcsp. If not, see <http://www.gnu.org/licenses/>. */ package jpcsp.GUI; import jpcsp.log.LogWindow; import jpcsp.settings.Settings; import jpcsp.Emulator; import jpcsp.MainGUI; import java.io.File; import java.io.RandomAccessFile; import javax.swing.JFileChooser; import jpcsp.WindowPropSaver; import jpcsp.util.Constants; public class LogGUI extends javax.swing.JFrame { private static final long serialVersionUID = -732715495873159718L; private static final String LB = System.getProperty("line.separator"); private MainGUI mainWindow = null; private String LogSettingsPath; public LogGUI(MainGUI main) { this.mainWindow = main; setLocationRelativeTo(main); initComponents(); setLogSettingsFile(); RefreshWindow(); WindowPropSaver.loadWindowProperties(this); } public void setMainGUI(MainGUI mainWindow) { this.mainWindow = mainWindow; } private void setLogSettingsFile() { LogSettingsPath = xmlpath.getText(); LogWindow.setConfXMLFile(LogSettingsPath); printLogSettingsFile(); } private void printLogSettingsFile() { try { RandomAccessFile raf = new RandomAccessFile(LogSettingsPath, "r"); while (raf.getFilePointer() < raf.length()) { settingsArea.append(raf.readLine() + LB); } raf.close(); } catch (Exception e) { settingsArea.setEnabled(false); } } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jButtonOK = new javax.swing.JButton(); jTabbedPane1 = new javax.swing.JTabbedPane(); LoggerGeneralPanel = new javax.swing.JPanel(); openLogWindowCheck = new javax.swing.JCheckBox(); snapConsoleCheck = new javax.swing.JCheckBox(); logKeywordField = new javax.swing.JTextField(); logByKeywordCheck = new javax.swing.JCheckBox(); LoggerSettingsPanel = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); settingsArea = new javax.swing.JTextArea(); fileButton = new javax.swing.JButton(); xmlpath = new javax.swing.JTextField(); lblSettingsPath = new javax.swing.JLabel(); outputToHTML = new javax.swing.JCheckBox(); outputToText = new javax.swing.JCheckBox(); lblOutputFile = new javax.swing.JLabel(); logoutpath = new javax.swing.JTextField(); lblMaxFileSize = new javax.swing.JLabel(); maxSizeSpinner = new javax.swing.JSpinner(); splitFilesBox = new javax.swing.JCheckBox(); LoggerAdvancedPanel = new javax.swing.JPanel(); rbGeneralDebug = new javax.swing.JRadioButton(); rbCPUDebug = new javax.swing.JRadioButton(); rbGPUDebug = new javax.swing.JRadioButton(); rbCoreDebug = new javax.swing.JRadioButton(); rbFullDebug = new javax.swing.JRadioButton(); rbCustom = new javax.swing.JRadioButton(); lblLogMethod = new javax.swing.JLabel(); interruptMgrBox = new javax.swing.JCheckBox(); ioFileMgrBox = new javax.swing.JCheckBox(); kernelLibBox = new javax.swing.JCheckBox(); loadCoreBox = new javax.swing.JCheckBox(); loadExecBox = new javax.swing.JCheckBox(); moduleMgrBox = new javax.swing.JCheckBox(); stdioBox = new javax.swing.JCheckBox(); sysMemKernelBox = new javax.swing.JCheckBox(); sysMemUserBox = new javax.swing.JCheckBox(); threadManBox = new javax.swing.JCheckBox(); utilsBox = new javax.swing.JCheckBox(); atracBox = new javax.swing.JCheckBox(); audioBox = new javax.swing.JCheckBox(); ctrlBox = new javax.swing.JCheckBox(); defltBox = new javax.swing.JCheckBox(); displayBox = new javax.swing.JCheckBox(); dmacBox = new javax.swing.JCheckBox(); fontBox = new javax.swing.JCheckBox(); geUserBox = new javax.swing.JCheckBox(); hprmBox = new javax.swing.JCheckBox(); imposeBox = new javax.swing.JCheckBox(); mp3Box = new javax.swing.JCheckBox(); mpegBox = new javax.swing.JCheckBox(); powerBox = new javax.swing.JCheckBox(); psmfBox = new javax.swing.JCheckBox(); psmfPlayerBox = new javax.swing.JCheckBox(); rtcBox = new javax.swing.JCheckBox(); sasBox = new javax.swing.JCheckBox(); suspendBox = new javax.swing.JCheckBox(); umdBox = new javax.swing.JCheckBox(); utilityBox = new javax.swing.JCheckBox(); cpuBox = new javax.swing.JCheckBox(); gpuBox = new javax.swing.JCheckBox(); compilerBox = new javax.swing.JCheckBox(); memBox = new javax.swing.JCheckBox(); emuBox = new javax.swing.JCheckBox(); jSeparator1 = new javax.swing.JSeparator(); lblCustom = new javax.swing.JLabel(); loaderBox = new javax.swing.JCheckBox(); runtimeBox = new javax.swing.JCheckBox(); stdoutBox = new javax.swing.JCheckBox(); stderrBox = new javax.swing.JCheckBox(); jSeparator2 = new javax.swing.JSeparator(); saveButton = new javax.swing.JButton(); jButtonCancel = new jpcsp.GUI.CancelButton(); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("jpcsp/languages/jpcsp"); // NOI18N setTitle(bundle.getString("LogGUI.title")); // NOI18N setResizable(false); jButtonOK.setText(bundle.getString("OkButton.text")); // NOI18N jButtonOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOKActionPerformed(evt); } }); openLogWindowCheck.setText(bundle.getString("LogGUI.openLogWindowCheck.text")); // NOI18N snapConsoleCheck.setText(bundle.getString("LogGUI.snapConsoleCheck.text")); // NOI18N logKeywordField.setEditable(false); logKeywordField.setText("LOG_ALL"); // NOI18N logByKeywordCheck.setText(bundle.getString("LogGUI.logByKeywordCheck.text")); // NOI18N logByKeywordCheck.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { logByKeywordCheckActionPerformed(evt); } }); javax.swing.GroupLayout LoggerGeneralPanelLayout = new javax.swing.GroupLayout(LoggerGeneralPanel); LoggerGeneralPanel.setLayout(LoggerGeneralPanelLayout); LoggerGeneralPanelLayout.setHorizontalGroup( LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerGeneralPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerGeneralPanelLayout.createSequentialGroup() .addComponent(logByKeywordCheck) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(logKeywordField, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 306, Short.MAX_VALUE)) .addComponent(openLogWindowCheck, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(snapConsoleCheck, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); LoggerGeneralPanelLayout.setVerticalGroup( LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerGeneralPanelLayout.createSequentialGroup() .addContainerGap() .addComponent(openLogWindowCheck) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(snapConsoleCheck) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(logByKeywordCheck) .addComponent(logKeywordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(248, Short.MAX_VALUE)) ); jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerGeneralPanel.TabConstraints.tabTitle"), LoggerGeneralPanel); // NOI18N settingsArea.setEditable(false); settingsArea.setColumns(20); settingsArea.setRows(5); jScrollPane1.setViewportView(settingsArea); fileButton.setText("..."); // NOI18N fileButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fileButtonActionPerformed(evt); } }); xmlpath.setEditable(false); xmlpath.setText("LogSettings.xml"); // NOI18N lblSettingsPath.setText(bundle.getString("LogGUI.lblSettingsPath.text")); // NOI18N outputToHTML.setSelected(true); outputToHTML.setText(bundle.getString("LogGUI.outputToHTML.text")); // NOI18N outputToText.setText(bundle.getString("LogGUI.outputToText.text")); // NOI18N lblOutputFile.setText(bundle.getString("LogGUI.lblOutputFile.text")); // NOI18N logoutpath.setText("log"); // NOI18N lblMaxFileSize.setText(bundle.getString("LogGUI.lblMaxFileSize.text")); // NOI18N maxSizeSpinner.setModel(new javax.swing.SpinnerNumberModel(0, 0, 100000, 1)); maxSizeSpinner.setEnabled(splitFilesBox.isSelected()); splitFilesBox.setText(bundle.getString("LogGUI.splitFilesBox.text")); // NOI18N splitFilesBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { splitFilesBoxActionPerformed(evt); } }); javax.swing.GroupLayout LoggerSettingsPanelLayout = new javax.swing.GroupLayout(LoggerSettingsPanel); LoggerSettingsPanel.setLayout(LoggerSettingsPanelLayout); LoggerSettingsPanelLayout.setHorizontalGroup( LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerSettingsPanelLayout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 418, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(outputToText, javax.swing.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE) .addComponent(outputToHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE) .addGroup(LoggerSettingsPanelLayout.createSequentialGroup() .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblOutputFile) .addComponent(lblMaxFileSize) .addComponent(lblSettingsPath)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerSettingsPanelLayout.createSequentialGroup() .addComponent(xmlpath) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(fileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(LoggerSettingsPanelLayout.createSequentialGroup() .addComponent(maxSizeSpinner) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(splitFilesBox)) .addComponent(logoutpath)))) .addContainerGap()) ); LoggerSettingsPanelLayout.setVerticalGroup( LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerSettingsPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, LoggerSettingsPanelLayout.createSequentialGroup() .addComponent(outputToHTML) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(outputToText) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblOutputFile) .addComponent(logoutpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblMaxFileSize) .addComponent(splitFilesBox) .addComponent(maxSizeSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 162, Short.MAX_VALUE) .addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblSettingsPath) .addComponent(xmlpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fileButton))) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)) .addContainerGap()) ); jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerSettingsPanel.TabConstraints.tabTitle"), LoggerSettingsPanel); // NOI18N LoggerAdvancedPanel.setEnabled(rbCustom.isSelected()); buttonGroup1.add(rbGeneralDebug); rbGeneralDebug.setSelected(true); rbGeneralDebug.setText(bundle.getString("LogGUI.rbGeneralDebug.text")); // NOI18N rbGeneralDebug.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbGeneralDebugActionPerformed(evt); } }); buttonGroup1.add(rbCPUDebug); rbCPUDebug.setText(bundle.getString("LogGUI.rbCPUDebug.text")); // NOI18N rbCPUDebug.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbCPUDebugActionPerformed(evt); } }); buttonGroup1.add(rbGPUDebug); rbGPUDebug.setText(bundle.getString("LogGUI.rbGPUDebug.text")); // NOI18N rbGPUDebug.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbGPUDebugActionPerformed(evt); } }); buttonGroup1.add(rbCoreDebug); rbCoreDebug.setText(bundle.getString("LogGUI.rbCoreDebug.text")); // NOI18N rbCoreDebug.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbCoreDebugActionPerformed(evt); } }); buttonGroup1.add(rbFullDebug); rbFullDebug.setText(bundle.getString("LogGUI.rbFullDebug.text")); // NOI18N rbFullDebug.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbFullDebugActionPerformed(evt); } }); buttonGroup1.add(rbCustom); rbCustom.setText(bundle.getString("LogGUI.rbCustom.text")); // NOI18N rbCustom.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rbCustomActionPerformed(evt); } }); lblLogMethod.setText(bundle.getString("LogGUI.lblLogMethod.text")); // NOI18N interruptMgrBox.setText("InterruptManager"); // NOI18N interruptMgrBox.setEnabled(rbCustom.isSelected()); ioFileMgrBox.setText("IoFileMgrForUser"); // NOI18N ioFileMgrBox.setEnabled(rbCustom.isSelected()); kernelLibBox.setText("Kernel_Library"); // NOI18N kernelLibBox.setEnabled(rbCustom.isSelected()); loadCoreBox.setText("LoadCoreForKernel"); // NOI18N loadCoreBox.setEnabled(rbCustom.isSelected()); loadExecBox.setText("LoadExecForUser"); // NOI18N loadExecBox.setEnabled(rbCustom.isSelected()); moduleMgrBox.setText("ModuleMgrForUser"); // NOI18N moduleMgrBox.setEnabled(rbCustom.isSelected()); stdioBox.setText("StdioForUser"); // NOI18N stdioBox.setEnabled(rbCustom.isSelected()); sysMemKernelBox.setText("SysMemForKernel"); // NOI18N sysMemKernelBox.setEnabled(rbCustom.isSelected()); sysMemUserBox.setText("SysMemUserForUser"); // NOI18N sysMemUserBox.setEnabled(rbCustom.isSelected()); threadManBox.setText("ThreadManForUser"); // NOI18N threadManBox.setEnabled(rbCustom.isSelected()); utilsBox.setText("UtilsForUser"); // NOI18N utilsBox.setEnabled(rbCustom.isSelected()); atracBox.setText("sceAtrac3plus"); // NOI18N atracBox.setEnabled(rbCustom.isSelected()); audioBox.setText("sceAudio"); // NOI18N audioBox.setEnabled(rbCustom.isSelected()); ctrlBox.setText("sceCtrl"); // NOI18N ctrlBox.setEnabled(rbCustom.isSelected()); defltBox.setText("sceDeflt"); // NOI18N defltBox.setEnabled(rbCustom.isSelected()); displayBox.setText("sceDisplay"); // NOI18N displayBox.setEnabled(rbCustom.isSelected()); dmacBox.setText("sceDmac"); // NOI18N dmacBox.setEnabled(rbCustom.isSelected()); fontBox.setText("sceFont"); // NOI18N fontBox.setEnabled(rbCustom.isSelected()); geUserBox.setText("sceGe_user"); // NOI18N geUserBox.setEnabled(rbCustom.isSelected()); hprmBox.setText("sceHprm"); // NOI18N hprmBox.setEnabled(rbCustom.isSelected()); imposeBox.setText("sceImpose"); // NOI18N imposeBox.setEnabled(rbCustom.isSelected()); mp3Box.setText("sceMp3"); // NOI18N mp3Box.setEnabled(rbCustom.isSelected()); mpegBox.setText("sceMpeg"); // NOI18N mpegBox.setEnabled(rbCustom.isSelected()); powerBox.setText("scePower"); // NOI18N powerBox.setEnabled(rbCustom.isSelected()); psmfBox.setText("scePsmf"); // NOI18N psmfBox.setEnabled(rbCustom.isSelected()); psmfPlayerBox.setText("scePsmfPlayer"); // NOI18N psmfPlayerBox.setEnabled(rbCustom.isSelected()); rtcBox.setText("sceRtc"); // NOI18N rtcBox.setEnabled(rbCustom.isSelected()); sasBox.setText("sceSasCore"); // NOI18N sasBox.setEnabled(rbCustom.isSelected()); suspendBox.setText("sceSuspendForUser"); // NOI18N suspendBox.setEnabled(rbCustom.isSelected()); umdBox.setText("sceUmdUser"); // NOI18N umdBox.setEnabled(rbCustom.isSelected()); utilityBox.setText("sceUtility"); // NOI18N utilityBox.setEnabled(rbCustom.isSelected()); cpuBox.setText("CPU"); // NOI18N cpuBox.setEnabled(rbCustom.isSelected()); gpuBox.setText("GPU"); // NOI18N gpuBox.setEnabled(rbCustom.isSelected()); compilerBox.setText("Compiler"); // NOI18N compilerBox.setEnabled(rbCustom.isSelected()); memBox.setText("Memory"); // NOI18N memBox.setEnabled(rbCustom.isSelected()); emuBox.setText("Emulator"); // NOI18N emuBox.setEnabled(rbCustom.isSelected()); lblCustom.setText(bundle.getString("LogGUI.lblCustom.text")); // NOI18N loaderBox.setText("Loader"); // NOI18N loaderBox.setEnabled(rbCustom.isSelected()); runtimeBox.setText("Runtime"); // NOI18N runtimeBox.setEnabled(rbCustom.isSelected()); stdoutBox.setText("STDOUT"); // NOI18N stdoutBox.setEnabled(rbCustom.isSelected()); stderrBox.setText("STDERR"); // NOI18N stderrBox.setEnabled(rbCustom.isSelected()); javax.swing.GroupLayout LoggerAdvancedPanelLayout = new javax.swing.GroupLayout(LoggerAdvancedPanel); LoggerAdvancedPanel.setLayout(LoggerAdvancedPanelLayout); LoggerAdvancedPanelLayout.setHorizontalGroup( LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerAdvancedPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rbCoreDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rbFullDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rbCustom, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rbGPUDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lblLogMethod, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rbCPUDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rbGeneralDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addComponent(stdoutBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(stderrBox)) .addComponent(jSeparator2) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(loadExecBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(sysMemKernelBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(dmacBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(audioBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(imposeBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(psmfBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(suspendBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addComponent(interruptMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ioFileMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(moduleMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(sysMemUserBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(ctrlBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fontBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(mp3Box, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(psmfPlayerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(umdBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(geUserBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(defltBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(threadManBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(kernelLibBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(utilsBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(mpegBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(rtcBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(sasBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(powerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(hprmBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(displayBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(atracBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(loadCoreBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(stdioBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addComponent(utilityBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addComponent(cpuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(gpuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(loaderBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(runtimeBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(compilerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(memBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(emuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(lblCustom, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING)) .addContainerGap()) ); LoggerAdvancedPanelLayout.setVerticalGroup( LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblCustom) .addComponent(lblLogMethod, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cpuBox) .addComponent(emuBox) .addComponent(memBox) .addComponent(compilerBox) .addComponent(runtimeBox) .addComponent(loaderBox) .addComponent(gpuBox)) .addGap(5, 5, 5) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(kernelLibBox) .addComponent(loadCoreBox))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(interruptMgrBox) .addComponent(ioFileMgrBox))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(moduleMgrBox) .addComponent(threadManBox) .addComponent(stdioBox) .addComponent(loadExecBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(sysMemUserBox) .addComponent(utilsBox) .addComponent(atracBox) .addComponent(sysMemKernelBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(displayBox) .addComponent(ctrlBox) .addComponent(defltBox) .addComponent(audioBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(fontBox) .addComponent(geUserBox) .addComponent(hprmBox) .addComponent(dmacBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(imposeBox) .addComponent(mp3Box) .addComponent(mpegBox) .addComponent(powerBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(psmfBox) .addComponent(psmfPlayerBox) .addComponent(rtcBox) .addComponent(sasBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(suspendBox) .addComponent(umdBox)) .addComponent(utilityBox))) .addGroup(LoggerAdvancedPanelLayout.createSequentialGroup() .addGap(25, 25, 25) .addComponent(rbGeneralDebug) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbCPUDebug) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbGPUDebug) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbCoreDebug) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbFullDebug) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rbCustom))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(stdoutBox) .addComponent(stderrBox)) .addContainerGap(36, Short.MAX_VALUE)) ); jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerAdvancedPanel.TabConstraints.tabTitle"), LoggerAdvancedPanel); // NOI18N saveButton.setText(bundle.getString("LogGUI.saveButton.text")); // NOI18N saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); jButtonCancel.setText(bundle.getString("CancelButton.text")); // NOI18N jButtonCancel.setParent(this); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTabbedPane1) .addGroup(layout.createSequentialGroup() .addComponent(saveButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButtonOK, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButtonCancel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jTabbedPane1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonOK) .addComponent(saveButton) .addComponent(jButtonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents final public void RefreshWindow() { openLogWindowCheck.setSelected(Settings.getInstance().readBool("gui.openLogwindow")); snapConsoleCheck.setSelected(Settings.getInstance().readBool("gui.snapLogwindow")); String keyword = Settings.getInstance().readString("log.keyword"); if (!keyword.equals("LOG_ALL")) { logKeywordField.setText(keyword); logByKeywordCheck.setSelected(true); } else { logKeywordField.setText("LOG_ALL"); logByKeywordCheck.setSelected(false); } } private void setCustom(boolean useCustom) { interruptMgrBox.setEnabled(useCustom); ioFileMgrBox.setEnabled(useCustom); kernelLibBox.setEnabled(useCustom); loadCoreBox.setEnabled(useCustom); loadExecBox.setEnabled(useCustom); moduleMgrBox.setEnabled(useCustom); stdioBox.setEnabled(useCustom); sysMemKernelBox.setEnabled(useCustom); sysMemUserBox.setEnabled(useCustom); threadManBox.setEnabled(useCustom); utilsBox.setEnabled(useCustom); atracBox.setEnabled(useCustom); audioBox.setEnabled(useCustom); ctrlBox.setEnabled(useCustom); defltBox.setEnabled(useCustom); displayBox.setEnabled(useCustom); dmacBox.setEnabled(useCustom); fontBox.setEnabled(useCustom); geUserBox.setEnabled(useCustom); hprmBox.setEnabled(useCustom); imposeBox.setEnabled(useCustom); mp3Box.setEnabled(useCustom); mpegBox.setEnabled(useCustom); powerBox.setEnabled(useCustom); psmfBox.setEnabled(useCustom); psmfPlayerBox.setEnabled(useCustom); rtcBox.setEnabled(useCustom); sasBox.setEnabled(useCustom); suspendBox.setEnabled(useCustom); umdBox.setEnabled(useCustom); utilityBox.setEnabled(useCustom); cpuBox.setEnabled(useCustom); gpuBox.setEnabled(useCustom); compilerBox.setEnabled(useCustom); memBox.setEnabled(useCustom); emuBox.setEnabled(useCustom); loaderBox.setEnabled(useCustom); runtimeBox.setEnabled(useCustom); stdoutBox.setEnabled(useCustom); stderrBox.setEnabled(useCustom); } private String selectLoggers() { String loggers = ""; if (rbGeneralDebug.isSelected()) { loggers += LB + "<logger name='cpu' />" + LB + "<logger name='hle' />" + LB + "<logger name='memory' />" + LB + "<logger name='ge' />" + LB + "<logger name='emu' />" + LB + "<logger name='compiler' > <level value='off' /> </logger>" + LB + "<logger name='runtime' > <level value='off' /> </logger>" + LB + "<logger name='loader' > <level value='off' /> </logger>" + LB + "<logger name='stdout' />" + LB + "<logger name='stderr' />" + LB + "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } else if (rbCPUDebug.isSelected()) { loggers += LB + "<logger name='cpu' />" + LB + "<logger name='hle' > <level value='off' /> </logger>" + LB + "<logger name='memory' > <level value='off' /> </logger>" + LB + "<logger name='ge' > <level value='off' /> </logger>" + LB + "<logger name='emu' > <level value='off' /> </logger>" + LB + "<logger name='compiler' />" + LB + "<logger name='runtime' > <level value='off' /> </logger>" + LB + "<logger name='loader' > <level value='off' /> </logger>" + LB + "<logger name='stdout' />" + LB + "<logger name='stderr' />" + LB + "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } else if (rbGPUDebug.isSelected()) { loggers += LB + "<logger name='cpu' > <level value='off' /> </logger>" + LB + "<logger name='hle' > <level value='off' /> </logger>" + LB + "<logger name='memory' > <level value='off' /> </logger>" + LB + "<logger name='ge' />" + LB + "<logger name='emu' > <level value='off' /> </logger>" + LB + "<logger name='compiler' > <level value='off' /> </logger>" + LB + "<logger name='runtime' > <level value='off' /> </logger>" + LB + "<logger name='loader' > <level value='off' /> </logger>" + LB + "<logger name='stdout' />" + LB + "<logger name='stderr' />" + LB + "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } else if (rbCoreDebug.isSelected()) { loggers += LB + "<logger name='cpu' > <level value='off' /> </logger>" + LB + "<logger name='hle' > <level value='off' /> </logger>" + LB + "<logger name='memory' > <level value='off' /> </logger>" + LB + "<logger name='ge' > <level value='off' /> </logger>" + LB + "<logger name='emu' />" + LB + "<logger name='compiler' />" + LB + "<logger name='runtime' />" + LB + "<logger name='loader' />" + LB + "<logger name='stdout' > <level value='off' /> </logger>" + LB + "<logger name='stderr' > <level value='off' /> </logger>" + LB + "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } else if (rbFullDebug.isSelected()) { loggers += LB + "<logger name='cpu' />" + LB + "<logger name='hle' />" + LB + "<logger name='memory' />" + LB + "<logger name='ge' />" + LB + "<logger name='emu' />" + LB + "<logger name='compiler' />" + LB + "<logger name='runtime' />" + LB + "<logger name='loader' />" + LB + "<logger name='stdout' />" + LB + "<logger name='stderr' />" + LB + "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } else if (rbCustom.isSelected()) { if (interruptMgrBox.isSelected()) { loggers += LB + "<logger name='hle.InterruptManager' />" + LB; } else { loggers += LB + "<logger name='hle.InterruptManager' > <level value='off' /> </logger>" + LB; } if (ioFileMgrBox.isSelected()) { loggers += "<logger name='hle.IoFileMgrForUser' />" + LB; } else { loggers += "<logger name='hle.IoFileMgrForUser' > <level value='off' /> </logger>" + LB; } if (kernelLibBox.isSelected()) { loggers += "<logger name='hle.Kernel_Library' />" + LB; } else { loggers += "<logger name='hle.Kernel_Library' > <level value='off' /> </logger>" + LB; } if (loadCoreBox.isSelected()) { loggers += "<logger name='hle.LoadCoreForKernel' />" + LB; } else { loggers += "<logger name='hle.LoadCoreForKernel' > <level value='off' /> </logger>" + LB; } if (loadExecBox.isSelected()) { loggers += "<logger name='hle.LoadExecForUser' />" + LB; } else { loggers += "<logger name='hle.LoadExecForUser' > <level value='off' /> </logger>" + LB; } if (moduleMgrBox.isSelected()) { loggers += "<logger name='hle.ModuleMgrForUser' />" + LB; } else { loggers += "<logger name='hle.ModuleMgrForUser' > <level value='off' /> </logger>" + LB; } if (stdioBox.isSelected()) { loggers += "<logger name='hle.StdioForUser' />" + LB; } else { loggers += "<logger name='hle.StdioForUser' > <level value='off' /> </logger>" + LB; } if (sysMemKernelBox.isSelected()) { loggers += "<logger name='hle.SysMemForKernel' />" + LB; } else { loggers += "<logger name='hle.SysMemForKernel' > <level value='off' /> </logger>" + LB; } if (sysMemUserBox.isSelected()) { loggers += "<logger name='hle.SysMemUserForUser' />" + LB; } else { loggers += "<logger name='hle.SysMemUserForUser' > <level value='off' /> </logger>" + LB; } if (threadManBox.isSelected()) { loggers += "<logger name='hle.ThreadManForUser' />" + LB; } else { loggers += "<logger name='hle.ThreadManForUser' > <level value='off' /> </logger>" + LB; } if (utilsBox.isSelected()) { loggers += "<logger name='hle.UtilsForUser' />" + LB; } else { loggers += "<logger name='hle.UtilsForUser' > <level value='off' /> </logger>" + LB; } if (atracBox.isSelected()) { loggers += "<logger name='hle.sceAtrac3plus' />" + LB; } else { loggers += "<logger name='hle.sceAtrac3plus' > <level value='off' /> </logger>" + LB; } if (audioBox.isSelected()) { loggers += "<logger name='hle.sceAudio' />" + LB; } else { loggers += "<logger name='hle.sceAudio' > <level value='off' /> </logger>" + LB; } if (ctrlBox.isSelected()) { loggers += "<logger name='hle.sceCtrl' />" + LB; } else { loggers += "<logger name='hle.sceCtrl' > <level value='off' /> </logger>" + LB; } if (defltBox.isSelected()) { loggers += "<logger name='hle.sceDeflt' />" + LB; } else { loggers += "<logger name='hle.sceDeflt' > <level value='off' /> </logger>" + LB; } if (displayBox.isSelected()) { loggers += "<logger name='hle.sceDisplay' />" + LB; } else { loggers += "<logger name='hle.sceDisplay' > <level value='off' /> </logger>" + LB; } if (dmacBox.isSelected()) { loggers += "<logger name='hle.sceDmac' />" + LB; } else { loggers += "<logger name='hle.sceDmac' > <level value='off' /> </logger>" + LB; } if (fontBox.isSelected()) { loggers += "<logger name='hle.sceFont' />" + LB; } else { loggers += "<logger name='hle.sceFont' > <level value='off' /> </logger>" + LB; } if (geUserBox.isSelected()) { loggers += "<logger name='hle.sceGe_user' />" + LB; } else { loggers += "<logger name='hle.sceGe_user' > <level value='off' /> </logger>" + LB; } if (hprmBox.isSelected()) { loggers += "<logger name='hle.sceHprm' />" + LB; } else { loggers += "<logger name='hle.sceHprm' > <level value='off' /> </logger>" + LB; } if (imposeBox.isSelected()) { loggers += "<logger name='hle.sceImpose' />" + LB; } else { loggers += "<logger name='hle.sceImpose' > <level value='off' /> </logger>" + LB; } if (mp3Box.isSelected()) { loggers += "<logger name='hle.sceMp3' />" + LB; } else { loggers += "<logger name='hle.sceMp3' > <level value='off' /> </logger>" + LB; } if (mpegBox.isSelected()) { loggers += "<logger name='hle.sceMpeg' />" + LB; } else { loggers += "<logger name='hle.sceMpeg' > <level value='off' /> </logger>" + LB; } if (powerBox.isSelected()) { loggers += "<logger name='hle.scePower' />" + LB; } else { loggers += "<logger name='hle.scePower' > <level value='off' /> </logger>" + LB; } if (psmfBox.isSelected()) { loggers += "<logger name='hle.scePsmf' />" + LB; } else { loggers += "<logger name='hle.scePsmf' > <level value='off' /> </logger>" + LB; } if (psmfPlayerBox.isSelected()) { loggers += "<logger name='hle.scePsmfPlayer' />" + LB; } else { loggers += "<logger name='hle.scePsmfPlayer' > <level value='off' /> </logger>" + LB; } if (rtcBox.isSelected()) { loggers += "<logger name='hle.sceRtc' />" + LB; } else { loggers += "<logger name='hle.sceRtc' > <level value='off' /> </logger>" + LB; } if (sasBox.isSelected()) { loggers += "<logger name='hle.sceSasCore' />" + LB; } else { loggers += "<logger name='hle.sceSasCore' > <level value='off' /> </logger>" + LB; } if (suspendBox.isSelected()) { loggers += "<logger name='hle.sceSuspendForUser' />" + LB; } else { loggers += "<logger name='hle.sceSuspendForUser' > <level value='off' /> </logger>" + LB; } if (umdBox.isSelected()) { loggers += "<logger name='hle.sceUmdUser' />" + LB; } else { loggers += "<logger name='hle.sceUmdUser' > <level value='off' /> </logger>" + LB; } if (utilityBox.isSelected()) { loggers += "<logger name='hle.sceUtility' />" + LB; } else { loggers += "<logger name='hle.sceUtility' > <level value='off' /> </logger>" + LB; } if (cpuBox.isSelected()) { loggers += "<logger name='cpu' />" + LB; } else { loggers += "<logger name='cpu' > <level value='off' /> </logger>" + LB; } if (gpuBox.isSelected()) { loggers += "<logger name='ge' />" + LB; } else { loggers += "<logger name='ge' > <level value='off' /> </logger>" + LB; } if (compilerBox.isSelected()) { loggers += "<logger name='compiler' />" + LB; } else { loggers += "<logger name='compiler' > <level value='off' /> </logger>" + LB; } if (memBox.isSelected()) { loggers += "<logger name='memory' />" + LB; } else { loggers += "<logger name='memory' > <level value='off' /> </logger>" + LB; } if (emuBox.isSelected()) { loggers += "<logger name='emu' />" + LB; } else { loggers += "<logger name='emu' > <level value='off' /> </logger>" + LB; } if (loaderBox.isSelected()) { loggers += "<logger name='loader' />" + LB; } else { loggers += "<logger name='loader' > <level value='off' /> </logger>" + LB; } if (runtimeBox.isSelected()) { loggers += "<logger name='runtime' />" + LB; } else { loggers += "<logger name='runtime' > <level value='off' /> </logger>" + LB; } if (stdoutBox.isSelected()) { loggers += "<logger name='stdout' />" + LB; } else { loggers += "<logger name='stdout' > <level value='off' /> </logger>" + LB; } if (stderrBox.isSelected()) { loggers += "<logger name='stderr' />" + LB; } else { loggers += "<logger name='stderr' > <level value='off' /> </logger>" + LB; } loggers += "<!-- Output profiler info to 'profiler.txt' -->" + LB + "<logger name='profiler' additivity='false'>" + LB + "<level value='info' />" + LB + "<appender-ref ref='ProfilerTxtAppender' />" + LB + "</logger>" + LB; } return loggers; } private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed Settings.getInstance().writeBool("gui.openLogwindow", openLogWindowCheck.isSelected()); Settings.getInstance().writeBool("gui.snapLogwindow", snapConsoleCheck.isSelected()); if (!logKeywordField.getText().isEmpty()) { Settings.getInstance().writeString("log.keyword", logKeywordField.getText()); } else { Settings.getInstance().writeString("log.keyword", "LOG_ALL"); } if (snapConsoleCheck.isSelected() && mainWindow != null) { mainWindow.updateConsoleWinPosition(); } dispose(); }//GEN-LAST:event_jButtonOKActionPerformed private void fileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileButtonActionPerformed JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new java.io.File(".")); fc.setSelectedFile(new File(xmlpath.getText())); fc.addChoosableFileFilter(Constants.fltXMLFiles); fc.setFileFilter(Constants.fltXMLFiles); int result = fc.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { xmlpath.setText(fc.getSelectedFile().getPath()); setLogSettingsFile(); } }//GEN-LAST:event_fileButtonActionPerformed private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed try { File f = new File(LogSettingsPath); if (f.exists()) { f.delete(); } String outName = "log"; if (!logoutpath.getText().equals("")) { outName = logoutpath.getText(); } RandomAccessFile raf = new RandomAccessFile(LogSettingsPath, "rw"); String header = "<?xml version='1.0' encoding='UTF-8' ?>" + LB + "<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>" + LB + LB + "<log4j:configuration>" + LB + LB; String windowAppender = "<appender name='JpcspAppender' class='jpcsp.log.TextPaneAppender'>" + LB + "<layout class='org.apache.log4j.PatternLayout'>" + LB + "<param name='ConversionPattern' value='%r [%t] %-5p %c - %m%n' />" + LB + "</layout>" + LB + "</appender>" + LB; String htmlAppender; if (splitFilesBox.isSelected()) { htmlAppender = "<appender name='HTMLAppender' class='org.apache.log4j.RollingFileAppender'>" + LB + "<param name='MaxFileSize' value='" + maxSizeSpinner.getValue() + "KB' />" + LB + "<param name='MaxBackupIndex' value='500' />" + LB + "<param name='File' value='" + outName + ".html' />" + LB + "<param name='Append' value='false' />" + LB + "<layout class='jpcsp.log.HTMLLayout'>" + LB + "<param name='Title' value='Jpcsp log file' />" + LB + "</layout>" + LB + "</appender>" + LB; } else { htmlAppender = "<appender name='HTMLAppender' class='org.apache.log4j.FileAppender'>" + LB + "<param name='File' value='" + outName + ".html' />" + LB + "<param name='Append' value='false' />" + LB + "<layout class='jpcsp.log.HTMLLayout'>" + LB + "<param name='Title' value='Jpcsp log file' />" + LB + "</layout>" + LB + "</appender>" + LB; } String textAppender; if (splitFilesBox.isSelected()) { textAppender = "<appender name='TxtAppender' class='org.apache.log4j.RollingFileAppender'>" + LB + "<param name='MaxFileSize' value='" + maxSizeSpinner.getValue() + "KB' />" + LB + "<param name='MaxBackupIndex' value='500' />" + LB + "<param name='File' value='" + outName + ".txt' />" + LB + "<param name='Append' value='false' />" + LB + "<layout class='org.apache.log4j.PatternLayout'>" + LB + "<param name='ConversionPattern' value='%5p %8c - %t - %m%n' />" + LB + "</layout>" + LB + "</appender>" + LB; } else { textAppender = "<appender name='TxtAppender' class='org.apache.log4j.FileAppender'>" + LB + "<param name='File' value='" + outName + ".txt' />" + LB + "<param name='Append' value='false' />" + LB + "<layout class='org.apache.log4j.PatternLayout'>" + LB + "<param name='ConversionPattern' value='%5p %8c - %t - %m%n' />" + LB + "</layout>" + LB + "</appender>" + LB; } String profilerAppender = "<appender name='ProfilerTxtAppender' class='org.apache.log4j.FileAppender'>" + LB + "<param name='File' value='profiler.txt' />" + LB + "<param name='Append' value='false' />" + LB + "<layout class='org.apache.log4j.PatternLayout'>" + LB + "<param name='ConversionPattern' value='%m%n' />" + LB + "</layout>" + LB + "</appender>" + LB; String loggers = selectLoggers(); String rootStart = LB + "<root>" + LB + "<level value ='off' />" + LB; String rootWindowAppender = "<appender-ref ref='JpcspAppender' />" + LB; String rootHtmlAppender = "<appender-ref ref='HTMLAppender' />" + LB; String rootTextAppender = "<appender-ref ref='TxtAppender' />" + LB; String rootEnd = "</root>" + LB + LB + "</log4j:configuration>" + LB; String contents = header + windowAppender; if (outputToHTML.isSelected()) { contents += htmlAppender; } if (outputToText.isSelected()) { contents += textAppender; } contents += profilerAppender; contents += loggers; contents += rootStart; contents += rootWindowAppender; if (outputToHTML.isSelected()) { contents += rootHtmlAppender; } if (outputToText.isSelected()) { contents += rootTextAppender; } contents += rootEnd; raf.writeBytes(contents); raf.close(); } catch (Exception e) { // Ignore. } settingsArea.setText(""); setLogSettingsFile(); }//GEN-LAST:event_saveButtonActionPerformed private void splitFilesBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_splitFilesBoxActionPerformed maxSizeSpinner.setEnabled(splitFilesBox.isSelected()); }//GEN-LAST:event_splitFilesBoxActionPerformed private void rbCustomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCustomActionPerformed setCustom(true); }//GEN-LAST:event_rbCustomActionPerformed private void rbFullDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbFullDebugActionPerformed setCustom(false); }//GEN-LAST:event_rbFullDebugActionPerformed private void rbCoreDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCoreDebugActionPerformed setCustom(false); }//GEN-LAST:event_rbCoreDebugActionPerformed private void rbGPUDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbGPUDebugActionPerformed setCustom(false); }//GEN-LAST:event_rbGPUDebugActionPerformed private void rbCPUDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCPUDebugActionPerformed setCustom(false); }//GEN-LAST:event_rbCPUDebugActionPerformed private void rbGeneralDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbGeneralDebugActionPerformed setCustom(false); }//GEN-LAST:event_rbGeneralDebugActionPerformed private void logByKeywordCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_logByKeywordCheckActionPerformed if (logByKeywordCheck.isSelected()) { logKeywordField.setEditable(true); } else { logKeywordField.setText("LOG_ALL"); logKeywordField.setEditable(false); } }//GEN-LAST:event_logByKeywordCheckActionPerformed @Override public void dispose() { Emulator.getMainGUI().endWindowDialog(); super.dispose(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel LoggerAdvancedPanel; private javax.swing.JPanel LoggerGeneralPanel; private javax.swing.JPanel LoggerSettingsPanel; private javax.swing.JCheckBox atracBox; private javax.swing.JCheckBox audioBox; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JCheckBox compilerBox; private javax.swing.JCheckBox cpuBox; private javax.swing.JCheckBox ctrlBox; private javax.swing.JCheckBox defltBox; private javax.swing.JCheckBox displayBox; private javax.swing.JCheckBox dmacBox; private javax.swing.JCheckBox emuBox; private javax.swing.JButton fileButton; private javax.swing.JCheckBox fontBox; private javax.swing.JCheckBox geUserBox; private javax.swing.JCheckBox gpuBox; private javax.swing.JCheckBox hprmBox; private javax.swing.JCheckBox imposeBox; private javax.swing.JCheckBox interruptMgrBox; private javax.swing.JCheckBox ioFileMgrBox; private jpcsp.GUI.CancelButton jButtonCancel; private javax.swing.JButton jButtonOK; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JCheckBox kernelLibBox; private javax.swing.JLabel lblCustom; private javax.swing.JLabel lblLogMethod; private javax.swing.JLabel lblMaxFileSize; private javax.swing.JLabel lblOutputFile; private javax.swing.JLabel lblSettingsPath; private javax.swing.JCheckBox loadCoreBox; private javax.swing.JCheckBox loadExecBox; private javax.swing.JCheckBox loaderBox; private javax.swing.JCheckBox logByKeywordCheck; private javax.swing.JTextField logKeywordField; private javax.swing.JTextField logoutpath; private javax.swing.JSpinner maxSizeSpinner; private javax.swing.JCheckBox memBox; private javax.swing.JCheckBox moduleMgrBox; private javax.swing.JCheckBox mp3Box; private javax.swing.JCheckBox mpegBox; private javax.swing.JCheckBox openLogWindowCheck; private javax.swing.JCheckBox outputToHTML; private javax.swing.JCheckBox outputToText; private javax.swing.JCheckBox powerBox; private javax.swing.JCheckBox psmfBox; private javax.swing.JCheckBox psmfPlayerBox; private javax.swing.JRadioButton rbCPUDebug; private javax.swing.JRadioButton rbCoreDebug; private javax.swing.JRadioButton rbCustom; private javax.swing.JRadioButton rbFullDebug; private javax.swing.JRadioButton rbGPUDebug; private javax.swing.JRadioButton rbGeneralDebug; private javax.swing.JCheckBox rtcBox; private javax.swing.JCheckBox runtimeBox; private javax.swing.JCheckBox sasBox; private javax.swing.JButton saveButton; private javax.swing.JTextArea settingsArea; private javax.swing.JCheckBox snapConsoleCheck; private javax.swing.JCheckBox splitFilesBox; private javax.swing.JCheckBox stderrBox; private javax.swing.JCheckBox stdioBox; private javax.swing.JCheckBox stdoutBox; private javax.swing.JCheckBox suspendBox; private javax.swing.JCheckBox sysMemKernelBox; private javax.swing.JCheckBox sysMemUserBox; private javax.swing.JCheckBox threadManBox; private javax.swing.JCheckBox umdBox; private javax.swing.JCheckBox utilityBox; private javax.swing.JCheckBox utilsBox; private javax.swing.JTextField xmlpath; // End of variables declaration//GEN-END:variables }