Projects STRLCPY jadx Commits c7e6e288
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■
    jadx-gui/src/main/java/jadx/gui/ui/dialog/LogViewerDialog.java
    skipped 1 lines
    2 2   
    3 3  import java.awt.BorderLayout;
    4 4  import java.awt.Container;
     5 +import java.awt.event.WindowAdapter;
     6 +import java.awt.event.WindowEvent;
    5 7   
    6 8  import javax.swing.BorderFactory;
    7 9  import javax.swing.JButton;
    8 10  import javax.swing.JComboBox;
    9  -import javax.swing.JDialog;
     11 +import javax.swing.JFrame;
    10 12  import javax.swing.JLabel;
    11 13  import javax.swing.JPanel;
    12 14  import javax.swing.JScrollPane;
    skipped 7 lines
    20 22  import jadx.gui.ui.MainWindow;
    21 23  import jadx.gui.ui.codearea.AbstractCodeArea;
    22 24  import jadx.gui.utils.NLS;
     25 +import jadx.gui.utils.UiUtils;
    23 26  import jadx.gui.utils.logs.ILogListener;
    24 27  import jadx.gui.utils.logs.LogCollector;
    25 28   
    26  -public class LogViewerDialog extends JDialog {
     29 +public class LogViewerDialog extends JFrame {
    27 30   private static final long serialVersionUID = -2188700277429054641L;
    28 31   private static final Level[] LEVEL_ITEMS = { Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR };
    29 32   
    skipped 1 lines
    31 34   
    32 35   private final transient JadxSettings settings;
    33 36   private transient RSyntaxTextArea textPane;
     37 + private JComboBox<Level> levelCb;
     38 + 
     39 + private static LogViewerDialog openLogDialog;
    34 40   
    35 41   public static void open(MainWindow mainWindow) {
    36 42   openWithLevel(mainWindow, level);
    skipped 1 lines
    38 44   
    39 45   public static void openWithLevel(MainWindow mainWindow, Level newLevel) {
    40 46   level = newLevel;
    41  - new LogViewerDialog(mainWindow).setVisible(true);
     47 + if (openLogDialog == null) {
     48 + LogViewerDialog newLogDialog = new LogViewerDialog(mainWindow);
     49 + newLogDialog.setVisible(true);
     50 + openLogDialog = newLogDialog;
     51 + } else {
     52 + LogViewerDialog logDialog = openLogDialog;
     53 + logDialog.levelCb.setSelectedItem(level);
     54 + logDialog.setVisible(true);
     55 + logDialog.toFront();
     56 + }
    42 57   }
    43 58   
    44 59   private LogViewerDialog(MainWindow mainWindow) {
    skipped 1 lines
    46 61   initUI(mainWindow);
    47 62   registerLogListener();
    48 63   settings.loadWindowPos(this);
     64 + addWindowListener(new WindowAdapter() {
     65 + @Override
     66 + public void windowClosing(WindowEvent e) {
     67 + openLogDialog = null;
     68 + }
     69 + });
    49 70   }
    50 71   
    51 72   public final void initUI(MainWindow mainWindow) {
     73 + UiUtils.setWindowIcons(this);
     74 + 
    52 75   textPane = AbstractCodeArea.getDefaultArea(mainWindow);
    53 76   textPane.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15));
    54 77   
    55 78   JPanel controlPane = new JPanel();
    56 79   controlPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    57  - final JComboBox<Level> cb = new JComboBox<>(LEVEL_ITEMS);
    58  - cb.setSelectedItem(level);
    59  - cb.addActionListener(e -> {
    60  - int i = cb.getSelectedIndex();
     80 + levelCb = new JComboBox<>(LEVEL_ITEMS);
     81 + levelCb.setSelectedItem(level);
     82 + levelCb.addActionListener(e -> {
     83 + int i = levelCb.getSelectedIndex();
    61 84   level = LEVEL_ITEMS[i];
    62 85   registerLogListener();
    63 86   });
    64 87   JLabel levelLabel = new JLabel(NLS.str("log_viewer.log_level"));
    65  - levelLabel.setLabelFor(cb);
     88 + levelLabel.setLabelFor(levelCb);
    66 89   controlPane.add(levelLabel);
    67  - controlPane.add(cb);
     90 + controlPane.add(levelCb);
    68 91   
    69 92   JScrollPane scrollPane = new JScrollPane(textPane);
    70 93   
    skipped 10 lines
    81 104   pack();
    82 105   setSize(800, 600);
    83 106   setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    84  - setModalityType(ModalityType.MODELESS);
    85 107   setLocationRelativeTo(null);
    86 108   }
    87 109   
    skipped 29 lines
Please wait...
Page is in error, reload to recover