@Override
    public void run() {
        ArrayList<Site> sites = Site.model().checkAll();

        final Color panelBgColor = UIManager.getLookAndFeelDefaults().getColor("Panel.background");

        TelegraphQueue queue = new TelegraphQueue();
        TelegraphAppearance appearance = new TelegraphAppearance();
        appearance.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(panelBgColor.getRed() - 20, panelBgColor.getGreen() - 20, panelBgColor.getBlue() - 20), 1));
        appearance.setIcon(new javax.swing.ImageIcon(getClass().getResource("/web/notifier/resources/ico-32x32.png")));

        for (Site site : sites) {

            String message = null;

            if (site.hasState("availability") && (Boolean)site.getState("availability") == false) {
                message = "Strona \"" + site.getName() + "\" nie jest dostępna.";
            } else if (site.hasState("status") && (Integer)site.getState("status") != 200) {
                message = "Strona \"" + site.getName() + "\" zwraca nieprawidłowy status (" + (Integer)site.getState("status") + ").";
            } else if (site.hasState("content") && (Boolean)site.getState("content") == true) {
                message = "Zawartość strony \"" + site.getName() + "\" uległa zmianie.";
            }

            final String url = site.getUrl();
            
            if (message != null && message.length() > 0) {

                MouseListener mouseListener = new MouseListener() {

                    @Override
                    public void mouseClicked(MouseEvent e) {
                        Browser.open(url);
                    }

                    @Override
                    public void mousePressed(MouseEvent e) {
                    }

                    @Override
                    public void mouseReleased(MouseEvent e) {
                    }

                    @Override
                    public void mouseEntered(MouseEvent e) {
                        e.getComponent().setCursor(new Cursor(Cursor.HAND_CURSOR));
                        e.getComponent().setBackground(new Color(panelBgColor.getRed() - 15, panelBgColor.getGreen() - 15, panelBgColor.getBlue() - 15));
                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                        e.getComponent().setCursor(Cursor.getDefaultCursor());
                        e.getComponent().setBackground(panelBgColor);
                    }
                };

                // dodaniie do okna logow
                LogFrame logFrame = (LogFrame)Registry.get("logFrame");
                logFrame.appendSiteToList(site);
                logFrame.fillLogTable();
                
                // wyswietlenie komunikatu
                Telegraph telegraph = new Telegraph(message, appearance, mouseListener, WindowPosition.BOTTOMRIGHT, 4000);
                queue.add(telegraph);
            }
        }
    }