package org.chartsy.stockscanpro.ui;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.font.TextAttribute;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import org.openide.util.NbBundle;
/**
*
* @author Viorel
*/
public class ExchangesPanel extends JPanel
{
private ExchangePopup exchangePopup;
private JLabel exchangeLbl;
private JButton exchangeBtn;
public ExchangesPanel()
{
super(new FlowLayout(FlowLayout.LEADING));
setOpaque(false);
initComponents();
}
private void initComponents()
{
exchangePopup = new ExchangePopup();
exchangeLbl = new JLabel(
NbBundle.getMessage(ExchangesPanel.class, "Exchange_Lbl",
exchangePopup.getSelectedExchanges()));
exchangeLbl.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
exchangeLbl.setOpaque(false);
exchangeLbl.setFont(getExtraBoldFont(exchangeLbl.getFont()));
exchangePopup.setExchangeListener(exchangeLbl);
exchangeBtn = new JButton(
NbBundle.getMessage(ExchangesPanel.class, "Exchange_Btn"));
exchangeBtn.setOpaque(false);
exchangeBtn.setBorder(BorderFactory.createEmptyBorder(1, 11, 1, 1));
exchangeBtn.setMargin(new Insets(0, 0, 0, 0));
exchangeBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
exchangeBtn.setHorizontalAlignment(SwingConstants.CENTER);
exchangeBtn.setBorderPainted(false);
exchangeBtn.setFocusPainted(false);
exchangeBtn.setContentAreaFilled(false);
exchangeBtn.setRolloverEnabled(true);
exchangeBtn.setFocusable(true);
exchangeBtn.setFont(getExtraBoldFont(exchangeBtn.getFont()));
exchangeBtn.setForeground(new Color(0x203673));
exchangeBtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
exchangePopup.show(exchangeBtn, 11, exchangeBtn.getHeight());
}
});
exchangeBtn.addMouseListener(new MouseAdapter()
{
public @Override void mouseEntered(MouseEvent e)
{
exchangeBtn.setForeground(new Color(0x284693));
exchangeBtn.setFont(getUnderlineFont(exchangeBtn.getFont()));
}
public @Override void mouseExited(MouseEvent e)
{
exchangeBtn.setForeground(new Color(0x203673));
exchangeBtn.setFont(getNonUnderlineFont(exchangeBtn.getFont()));
}
});
add(exchangeLbl);
add(exchangeBtn);
}
public Object[] getSelectedExchanges()
{
return exchangePopup.getSelectedItems();
}
private Font getExtraBoldFont(Font font)
{
Map attr = font.getAttributes();
attr.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_EXTRABOLD);
return font.deriveFont(attr);
}
private Font getUnderlineFont(Font font)
{
Map attr = font.getAttributes();
attr.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
return font.deriveFont(attr);
}
private Font getNonUnderlineFont(Font font)
{
Map attr = font.getAttributes();
attr.put(TextAttribute.UNDERLINE, -1);
return font.deriveFont(attr);
}
}