コード例 #1
0
  // Grafiskā lietotāja interfeisa inicializācija
  private void getGUI() {
    JFrame frame = new mainForm();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setVisible(true);
    frame.setTitle("Your Monitoring Agent");
    String icoPath = "./images/eye.gif";
    ImageIcon img = new ImageIcon(icoPath);

    if (!SystemTray.isSupported()) {
      System.out.println("SystemTray is not supported");
      return;
    }
    final TrayIcon trayIcon = new TrayIcon(img.getImage());
    final SystemTray tray = SystemTray.getSystemTray();

    trayIcon.addMouseListener(
        new MouseAdapter() {
          public void mouseClicked(MouseEvent e) {
            frame.setVisible(true);
          }
        });

    try {
      tray.add(trayIcon);
    } catch (AWTException e) {
      JOptionPane.showMessageDialog(
          null, "TrayIcon could not be added.", "Alert", JOptionPane.ERROR_MESSAGE);
    }
  }
コード例 #2
0
ファイル: Chrome.java プロジェクト: Pjrat111/RSBot-1
  public void setTray() {
    boolean showTip = false;
    if (tray == null) {
      showTip = true;
      final Image image = Configuration.getImage(Configuration.Paths.Resources.ICON);
      tray = new TrayIcon(image, Configuration.NAME, null);
      tray.setImageAutoSize(true);
      tray.addMouseListener(
          new MouseListener() {
            public void mouseClicked(MouseEvent arg0) {}

            public void mouseEntered(MouseEvent arg0) {}

            public void mouseExited(MouseEvent arg0) {}

            public void mouseReleased(MouseEvent arg0) {}

            public void mousePressed(MouseEvent arg0) {
              SystemTray.getSystemTray().remove(tray);
              setVisible(true);
              lessCpu(false);
            }
          });
    }
    try {
      SystemTray.getSystemTray().add(tray);
      if (showTip) {
        tray.displayMessage(
            Configuration.NAME + " Hidden",
            "Bots are still running in the background.\nClick this icon to restore the window.",
            MessageType.INFO);
      }
    } catch (Exception ignored) {
      log.warning("Unable to hide window");
    }
    setVisible(false);
    lessCpu(true);
  }
コード例 #3
0
ファイル: SystemTrayDaemon.java プロジェクト: Tema/screenshot
  private void init(final SettingsUI settingsUI) throws AWTException {
    SystemTray tray = SystemTray.getSystemTray();

    PopupMenu popup = new PopupMenu();

    final CheckboxMenuItem ftpItem = new CheckboxMenuItem(" Ftp ");
    final CheckboxMenuItem picasawebItem = new CheckboxMenuItem(" Picasaweb ");

    ftpItem.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Settings.getInstance().setPicasawebMode(false);
            Settings.getInstance().save();
            start();
          }
        });
    popup.add(ftpItem);

    picasawebItem.addItemListener(
        new ItemListener() {
          @Override
          public void itemStateChanged(ItemEvent e) {
            Settings.getInstance().setPicasawebMode(true);
            Settings.getInstance().save();
            start();
          }
        });
    popup.add(picasawebItem);

    checkMenuItem(picasawebItem, ftpItem, Settings.getInstance().isPicasawebMode());

    MenuItem settingsItem = new MenuItem(" Settings ");
    settingsItem.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            settingsUI.open(mousePoint);
          }
        });
    popup.add(settingsItem);

    MenuItem exitItem = new MenuItem(" Exit ");
    exitItem.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            System.out.println("Exiting...");
            System.exit(0);
          }
        });
    popup.add(exitItem);

    URL imgURL = getClass().getClassLoader().getResource("icon.png");
    final TrayIcon trayIcon = new TrayIcon(new ImageIcon(imgURL).getImage(), "Screenshot", popup);

    trayIcon.setImageAutoSize(true);
    trayIcon.addMouseListener(
        new MouseAdapter() {
          public void mousePressed(MouseEvent e) {
            checkMenuItem(picasawebItem, ftpItem, Settings.getInstance().isPicasawebMode());
          }

          public void mouseClicked(MouseEvent e) {
            mousePoint = e.getPoint();
            if (e.getButton() == BUTTON1) {
              start();
            }
          }
        });

    tray.add(trayIcon);
  }
コード例 #4
0
  private static void createAndShowGUI() {
    if (!SystemTray.isSupported()) {
      Logger.getLogger(StartAgentGUI.class.getName()).log(Level.SEVERE, "SYSTRAY_NOT_SUPPORTED");
      agent.exitProcess();
      return;
    }

    trayIcon =
        new TrayIcon(
            TrayProcess.createImage(AgentConstants.ICON16_PATH, AgentConstants.ICON_DESCRIPTION),
            AgentConstants.APP_PUBLIC_NAME);
    final SystemTray tray = SystemTray.getSystemTray();
    final AgentPopUpMenu popUpMenu = new AgentPopUpMenu(tray, trayIcon, agent, deviceService);

    MOUSE_HOOK = new JNIMouseHook(popUpMenu);
    trayIcon.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseReleased(MouseEvent e) {
            if (e.isPopupTrigger()) {
              popUpMenu.setLocation(e.getX(), e.getY());
              popUpMenu.setInvoker(popUpMenu);
              popUpMenu.setVisible(true);
            }
          }
        });

    popUpMenu.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseClicked(MouseEvent e) {
            if (e instanceof MouseClickOutsideComponentEvent) {
              popUpMenu.setVisible(false);
            }
          }
        });

    popUpMenu.addPropertyChangeListener(
        new PropertyChangeListener() {
          @Override
          public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getPropertyName().equals(VISIBLE_PROPERTY)) {
              if (evt.getNewValue().equals(Boolean.TRUE)) {
                if (!MOUSE_HOOK.isIsHooked()) {
                  MOUSE_HOOK.setMouseHook();
                }
              } else if (MOUSE_HOOK.isIsHooked()) {
                MOUSE_HOOK.unsetMouseHook();
              }
            }
          }
        });

    try {
      tray.add(trayIcon);
    } catch (AWTException e) {
      Logger.getLogger(StartAgentGUI.class.getName()).log(Level.SEVERE, "TRAY_ICON_LOAD_ERROR", e);
      return;
    }
    trayIcon.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(
                null,
                LocalizedLogger.getLocalizedMessage("APPLICATION_INFO", AgentConstants.VERSION));
          }
        });
  }
コード例 #5
0
  @Override
  public void initialize() {

    if (SystemTray.isSupported()) {

      JMenuItem openMenu = new JMenuItem(Res.getString("menuitem.open"));
      JMenuItem minimizeMenu = new JMenuItem(Res.getString("menuitem.hide"));
      JMenuItem exitMenu = new JMenuItem(Res.getString("menuitem.exit"));
      statusMenu = new JMenu(Res.getString("menuitem.status"));
      JMenuItem logoutMenu = new JMenuItem(Res.getString("menuitem.logout.no.status"));

      SystemTray tray = SystemTray.getSystemTray();
      SparkManager.getNativeManager().addNativeHandler(this);
      ChatManager.getInstance().addChatMessageHandler(chatMessageHandler);
      // XEP-0085 suport (replaces the obsolete XEP-0022)
      org.jivesoftware.smack.chat.ChatManager.getInstanceFor(SparkManager.getConnection())
          .addChatListener(this);

      if (Spark.isLinux()) {
        newMessageIcon = SparkRes.getImageIcon(SparkRes.MESSAGE_NEW_TRAY_LINUX);
        typingIcon = SparkRes.getImageIcon(SparkRes.TYPING_TRAY_LINUX);
      } else {
        newMessageIcon = SparkRes.getImageIcon(SparkRes.MESSAGE_NEW_TRAY);
        typingIcon = SparkRes.getImageIcon(SparkRes.TYPING_TRAY);
      }

      availableIcon = Default.getImageIcon(Default.TRAY_IMAGE);
      if (Spark.isLinux()) {
        if (availableIcon == null) {
          availableIcon = SparkRes.getImageIcon(SparkRes.TRAY_IMAGE_LINUX);
          Log.error(availableIcon.toString());
        }
        awayIcon = SparkRes.getImageIcon(SparkRes.TRAY_AWAY_LINUX);
        dndIcon = SparkRes.getImageIcon(SparkRes.TRAY_DND_LINUX);
        offlineIcon = SparkRes.getImageIcon(SparkRes.TRAY_OFFLINE_LINUX);
        connectingIcon = SparkRes.getImageIcon(SparkRes.TRAY_CONNECTING_LINUX);
      } else {
        if (availableIcon == null) {
          availableIcon = SparkRes.getImageIcon(SparkRes.TRAY_IMAGE);
        }
        awayIcon = SparkRes.getImageIcon(SparkRes.TRAY_AWAY);
        dndIcon = SparkRes.getImageIcon(SparkRes.TRAY_DND);
        offlineIcon = SparkRes.getImageIcon(SparkRes.TRAY_OFFLINE);
        connectingIcon = SparkRes.getImageIcon(SparkRes.TRAY_CONNECTING);
      }

      popupMenu.add(openMenu);
      openMenu.addActionListener(
          new AbstractAction() {

            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent event) {
              SparkManager.getMainWindow().setVisible(true);
              SparkManager.getMainWindow().toFront();
            }
          });
      popupMenu.add(minimizeMenu);
      minimizeMenu.addActionListener(
          new AbstractAction() {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent event) {
              SparkManager.getMainWindow().setVisible(false);
            }
          });
      popupMenu.addSeparator();
      addStatusMessages();
      popupMenu.add(statusMenu);
      statusMenu.addActionListener(
          new AbstractAction() {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent event) {}
          });

      if (Spark.isWindows()) {
        if (!Default.getBoolean("DISABLE_EXIT")) popupMenu.add(logoutMenu);

        logoutMenu.addActionListener(
            new AbstractAction() {
              private static final long serialVersionUID = 1L;

              @Override
              public void actionPerformed(ActionEvent e) {
                SparkManager.getMainWindow().logout(false);
              }
            });
      }
      // Exit Menu
      exitMenu.addActionListener(
          new AbstractAction() {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
              SparkManager.getMainWindow().shutdown();
            }
          });
      if (!Default.getBoolean("DISABLE_EXIT")) popupMenu.add(exitMenu);

      /** If connection closed set offline tray image */
      SparkManager.getConnection()
          .addConnectionListener(
              new ConnectionListener() {

                @Override
                public void connected(XMPPConnection xmppConnection) {
                  trayIcon.setImage(availableIcon.getImage());
                }

                @Override
                public void authenticated(XMPPConnection xmppConnection, boolean b) {
                  trayIcon.setImage(availableIcon.getImage());
                }

                @Override
                public void connectionClosed() {
                  trayIcon.setImage(offlineIcon.getImage());
                }

                @Override
                public void connectionClosedOnError(Exception arg0) {
                  trayIcon.setImage(offlineIcon.getImage());
                }

                @Override
                public void reconnectingIn(int arg0) {
                  trayIcon.setImage(connectingIcon.getImage());
                }

                @Override
                public void reconnectionSuccessful() {
                  trayIcon.setImage(availableIcon.getImage());
                }

                @Override
                public void reconnectionFailed(Exception arg0) {
                  trayIcon.setImage(offlineIcon.getImage());
                }
              });

      SparkManager.getSessionManager()
          .addPresenceListener(
              presence -> {
                if (presence.getMode() == Presence.Mode.available) {
                  trayIcon.setImage(availableIcon.getImage());
                } else if (presence.getMode() == Presence.Mode.away
                    || presence.getMode() == Presence.Mode.xa) {
                  trayIcon.setImage(awayIcon.getImage());
                } else if (presence.getMode() == Presence.Mode.dnd) {
                  trayIcon.setImage(dndIcon.getImage());
                } else {
                  trayIcon.setImage(availableIcon.getImage());
                }
              });

      try {

        trayIcon =
            new TrayIcon(
                availableIcon.getImage(), Default.getString(Default.APPLICATION_NAME), null);
        trayIcon.setImageAutoSize(true);

        trayIcon.addMouseListener(
            new MouseListener() {

              @Override
              public void mouseClicked(MouseEvent event) {
                // if we are using double click on tray icon
                if ((!pref.isUsingSingleTrayClick()
                        && event.getButton() == MouseEvent.BUTTON1
                        && event.getClickCount() % 2 == 0)
                    ||
                    // if we using single click on tray icon
                    (pref.isUsingSingleTrayClick()
                        && event.getButton() == MouseEvent.BUTTON1
                        && event.getClickCount() == 1)) {

                  // bring the mainwindow to front
                  if ((SparkManager.getMainWindow().isVisible())
                      && (SparkManager.getMainWindow().getState() == java.awt.Frame.NORMAL)) {
                    SparkManager.getMainWindow().setVisible(false);
                  } else {
                    SparkManager.getMainWindow().setVisible(true);
                    SparkManager.getMainWindow().setState(java.awt.Frame.NORMAL);
                    SparkManager.getMainWindow().toFront();
                  }

                } else if (event.getButton() == MouseEvent.BUTTON1) {
                  SparkManager.getMainWindow().toFront();
                  // SparkManager.getMainWindow().requestFocus();
                } else if (event.getButton() == MouseEvent.BUTTON3) {

                  if (popupMenu.isVisible()) {
                    popupMenu.setVisible(false);
                  } else {

                    double x = MouseInfo.getPointerInfo().getLocation().getX();
                    double y = MouseInfo.getPointerInfo().getLocation().getY();

                    if (Spark.isMac()) {
                      popupMenu.setLocation((int) x, (int) y);
                    } else {
                      popupMenu.setLocation(event.getX(), event.getY());
                    }

                    popupMenu.setInvoker(popupMenu);
                    popupMenu.setVisible(true);
                  }
                }
              }

              @Override
              public void mouseEntered(MouseEvent event) {}

              @Override
              public void mouseExited(MouseEvent event) {}

              @Override
              public void mousePressed(MouseEvent event) {

                // on Mac i would want the window to show when i left-click the Icon
                if (Spark.isMac() && event.getButton() != MouseEvent.BUTTON3) {
                  SparkManager.getMainWindow().setVisible(false);
                  SparkManager.getMainWindow().setVisible(true);
                  SparkManager.getMainWindow().requestFocusInWindow();
                  SparkManager.getMainWindow().bringFrameIntoFocus();
                  SparkManager.getMainWindow().toFront();
                  SparkManager.getMainWindow().requestFocus();
                }
              }

              @Override
              public void mouseReleased(MouseEvent event) {}
            });

        tray.add(trayIcon);
      } catch (Exception e) {
        // Not Supported
      }
    } else {
      Log.error("Tray don't supports on this platform.");
    }
  }
コード例 #6
0
  private void trayIconListener(final JPopupMenu popup, TrayIcon icon) {

    Timer notificationTimer = new Timer();
    notificationTimer.schedule(
        new TimerTask() {
          @Override
          public void run() {
            if (visible && !inBound) {
              visible = !visible;
              popup.setVisible(visible);
            }
            inBound = false;
          }
        },
        250,
        1500);

    icon.addMouseMotionListener(
        new MouseMotionAdapter() {
          @Override
          public void mouseMoved(MouseEvent e) {
            inBound = true;
          }
        });

    popup.addMouseMotionListener(
        new MouseMotionAdapter() {
          @Override
          public void mouseMoved(MouseEvent e) {
            inBound = true;
          }
        });

    icon.addMouseListener(
        new MouseAdapter() {

          @Override
          public void mouseReleased(MouseEvent e) {

            if (e.getButton() != MouseEvent.BUTTON1) {
              return;
            }

            Point point = e.getPoint();
            Rectangle bounds = getScreenViewableBounds(getGraphicsDeviceAt(point));
            int x = point.x;
            int y = point.y;
            if (y < bounds.y) {
              y = bounds.y;
            } else if (y > bounds.y + bounds.height) {
              y = bounds.y + bounds.height;
            }
            if (x < bounds.x) {
              x = bounds.x;
            } else if (x > bounds.x + bounds.width) {
              x = bounds.x + bounds.width;
            }

            if (x + popup.getWidth() > bounds.x + bounds.width) {
              x = (bounds.x + bounds.width) - popup.getWidth();
            }
            if (y + popup.getWidth() > bounds.y + bounds.height) {
              y = (bounds.y + bounds.height) - popup.getHeight();
            }

            visible = !visible;

            if (visible) {
              popup.setLocation(x, y);
            }
            popup.setVisible(visible);
          }

          @Override
          public void mouseExited(MouseEvent e) {
            visible = false;
            popup.setVisible(visible);
          }
        });

    popup.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseExited(MouseEvent e) {
            if ((e.getX() < popup.getBounds().getMaxX())
                && (e.getX() >= popup.getBounds().getMinX())
                && (e.getY() < popup.getBounds().getMaxY())
                && (e.getY() >= popup.getBounds().getMinY())) {
              return;
            }
            visible = false;
            popup.setVisible(visible);
          }
        });
  }
コード例 #7
0
  private void init() {
    final TrayIcon trayIcon;
    if (SystemTray.isSupported()) {

      String path = System.getProperty("user.dir");
      // log.info(path);
      SystemTray tray = SystemTray.getSystemTray();

      MouseListener mouseListener =
          new MouseListener() {

            public void mouseClicked(MouseEvent e) {
              System.out.println("Tray Icon - Mouse clicked!");
            }

            public void mouseEntered(MouseEvent e) {
              System.out.println("Tray Icon - Mouse entered!");
            }

            public void mouseExited(MouseEvent e) {
              System.out.println("Tray Icon - Mouse exited!");
            }

            public void mousePressed(MouseEvent e) {
              System.out.println("Tray Icon - Mouse pressed!");
            }

            public void mouseReleased(MouseEvent e) {
              System.out.println("Tray Icon - Mouse released!");
            }
          };

      ActionListener exitListener =
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              System.out.println("Exiting...");
              System.exit(0);
            }
          };

      ActionListener testListener =
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              System.out.println("Just test...");
              System.exit(0);
            }
          };

      PopupMenu popup = new PopupMenu();
      MenuItem defaultItem = new MenuItem("Exit");
      defaultItem.addActionListener(exitListener);
      popup.add(defaultItem);

      MenuItem defaultItem2 = new MenuItem("test");
      defaultItem.addActionListener(testListener);
      popup.add(defaultItem2);

      Image image =
          Toolkit.getDefaultToolkit()
              .getImage(this.getClass().getClassLoader().getResource("ico.gif"));
      trayIcon = new TrayIcon(image, "chimera", popup);

      ActionListener actionListener =
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              trayIcon.displayMessage(
                  "Action Event", "An Action Event Has Been Peformed!", TrayIcon.MessageType.INFO);
            }
          };

      trayIcon.setImageAutoSize(true);
      trayIcon.addActionListener(actionListener);
      trayIcon.addMouseListener(mouseListener);

      //    Depending on which Mustang build you have, you may need to uncomment
      //    out the following code to check for an AWTException when you add
      //    an image to the system tray.

      //    try {
      try {
        tray.add(trayIcon);
      } catch (AWTException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
      }
      //    } catch (AWTException e) {
      //        System.err.println("TrayIcon could not be added.");
      //    }

      trayIcon.displayMessage("chimera", "", TrayIcon.MessageType.INFO);

    } else {
      System.err.println("System tray is currently not supported.");
    }
  }