From 4fa2f01c4e8d0390e1406d0ebdcd040698426fa0 Mon Sep 17 00:00:00 2001 From: krakjoe Date: Sat, 30 Nov 2013 07:27:11 +0000 Subject: [PATCH] add systray and logo --- tutorials/java/dist/phpdbg-ui.jar | Bin 37874 -> 42506 bytes tutorials/java/src/phpdbg/ui/JConsole.form | 22 +++++++++ tutorials/java/src/phpdbg/ui/JConsole.java | 52 +++++++++++++++++++++ tutorials/java/src/phpdbg/ui/logo-dbg.png | Bin 0 -> 248 bytes 4 files changed, 74 insertions(+) create mode 100644 tutorials/java/src/phpdbg/ui/logo-dbg.png diff --git a/tutorials/java/dist/phpdbg-ui.jar b/tutorials/java/dist/phpdbg-ui.jar index c6eb0fa3d2122f5a3b9bf169b639c689f4cd9023..b02e649c52befbe5ddeeefa2905ec70707b57ebf 100644 GIT binary patch delta 10281 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 a>Au=oyerFj)$u0=5yV@}q!Pcb-Tw{G(Efw~ delta 7623 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 + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/java/src/phpdbg/ui/JConsole.java b/tutorials/java/src/phpdbg/ui/JConsole.java index 60001d385c2..383e225a85f 100644 --- a/tutorials/java/src/phpdbg/ui/JConsole.java +++ b/tutorials/java/src/phpdbg/ui/JConsole.java @@ -1,9 +1,15 @@ package phpdbg.ui; +import java.awt.AWTException; +import java.awt.Frame; +import java.awt.Image; +import java.awt.SystemTray; +import java.awt.TrayIcon; import static java.awt.event.KeyEvent.VK_DOWN; import static java.awt.event.KeyEvent.VK_ENTER; import static java.awt.event.KeyEvent.VK_UP; +import java.awt.event.WindowEvent; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -46,6 +52,8 @@ public class JConsole extends javax.swing.JDialog { stdoutPopupMenu = new javax.swing.JPopupMenu(); resetStdout = new javax.swing.JMenuItem(); + systrayMenu = new java.awt.PopupMenu(); + systrayExitMenuItem = new java.awt.MenuItem(); host = new javax.swing.JTextField(); stdoutPort = new javax.swing.JTextField(); stdinCheckBox = new javax.swing.JCheckBox(); @@ -67,6 +75,22 @@ public class JConsole extends javax.swing.JDialog { }); stdoutPopupMenu.add(resetStdout); + systrayMenu.setLabel("phpdbg"); + systrayMenu.setName(""); + systrayMenu.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + systrayMenuActionPerformed(evt); + } + }); + + systrayExitMenuItem.setLabel("Exit"); + systrayExitMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + systrayExitMenuItemActionPerformed(evt); + } + }); + systrayMenu.add(systrayExitMenuItem); + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("phpdbg jui"); @@ -219,6 +243,16 @@ public class JConsole extends javax.swing.JDialog { // TODO add your handling code here: output.setText(null); }//GEN-LAST:event_resetStdoutActionPerformed + + private void systrayExitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_systrayExitMenuItemActionPerformed + // TODO add your handling code here: + dialog.disconnect(); + System.exit(0); + }//GEN-LAST:event_systrayExitMenuItemActionPerformed + + private void systrayMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_systrayMenuActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_systrayMenuActionPerformed private void disconnect() { if (in != null) { @@ -376,6 +410,21 @@ public class JConsole extends javax.swing.JDialog { System.exit(0); } }); + try { + if (tray == null) { + Image trayIconImage = ImageIO.read( + JConsole.class.getResource("logo-dbg.png")); + dialog.setIconImage(trayIconImage); + + tray = new TrayIcon(trayIconImage); + tray.setPopupMenu(systrayMenu); + tray.setToolTip("phpdbg - The Interactive PHP Debugger"); + + SystemTray.getSystemTray().add(tray); + } + } catch ( AWTException | IOException ex) { + dialog.messageBox(ex.getMessage(), MessageType.ERROR); + } dialog.setVisible(true); } }); @@ -386,6 +435,7 @@ public class JConsole extends javax.swing.JDialog { private static JConsole dialog; private static Boolean connected = false; private static CommandHistory history = new CommandHistory(); + private static TrayIcon tray; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel commandLabel; @@ -402,6 +452,8 @@ public class JConsole extends javax.swing.JDialog { private javax.swing.JCheckBox stdoutCheckBox; private javax.swing.JPopupMenu stdoutPopupMenu; private javax.swing.JTextField stdoutPort; + private java.awt.MenuItem systrayExitMenuItem; + private static java.awt.PopupMenu systrayMenu; // End of variables declaration//GEN-END:variables public enum MessageType { INFO (JOptionPane.INFORMATION_MESSAGE), diff --git a/tutorials/java/src/phpdbg/ui/logo-dbg.png b/tutorials/java/src/phpdbg/ui/logo-dbg.png new file mode 100644 index 0000000000000000000000000000000000000000..621f29b53e90c74c9db330ffdbab145efacc6577 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYYs>cdx@v7EBjq;Id)c)KkpXJ1PaM!hD4M&=jZ08=9K`s3=Gaisfi`2 zDGKG8B^e6tp1uJoda3L{@fc4R#}JR>Z>R1RVi4eI7JmLW-crq*pEi_@% literal 0 HcmV?d00001