package org.chartsy.stockscanpro.ui; import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.SwingConstants; import org.chartsy.main.utils.DesktopUtil; import org.openide.awt.StatusDisplayer; import org.openide.util.ImageUtilities; /** * * @author Viorel */ public class LogoBar extends JPanel { private static final String IMAGE_LOGO = "org/chartsy/stockscanpro/resources/logo.png"; private static final String STOCK_SCAN_PRO_URL = "http://www.stockscanpro.com"; public LogoBar() { super(new BorderLayout()); setOpaque(false); ImageIcon imageIcon = ImageUtilities.loadImageIcon(IMAGE_LOGO, true); LogoLink logoLink = new LogoLink(); logoLink.setIcon(imageIcon); logoLink.setPressedIcon(imageIcon); add(logoLink, BorderLayout.CENTER); setPreferredSize(new Dimension(imageIcon.getIconWidth(), imageIcon.getIconHeight())); } public class LogoLink extends JButton implements MouseListener, ActionListener { public LogoLink() { setOpaque(false); setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); setMargin(new Insets(0, 0, 0, 0)); setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); setHorizontalAlignment(SwingConstants.CENTER); setBorderPainted(false); setFocusPainted(false); addMouseListener((MouseListener) this); addActionListener((ActionListener) this); } public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) { StatusDisplayer.getDefault().setStatusText(STOCK_SCAN_PRO_URL); } public void mouseExited(MouseEvent e) { StatusDisplayer.getDefault().setStatusText(""); } public void actionPerformed(ActionEvent e) { try { DesktopUtil.browse(STOCK_SCAN_PRO_URL); } catch (IOException ex) { Logger.getLogger(LogoBar.class.getName()).log(Level.SEVERE, null, ex); } catch (InterruptedException ex) { Logger.getLogger(LogoBar.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(LogoBar.class.getName()).log(Level.SEVERE, null, ex); } } } }