package de.tud.socom.client.gui.cookies;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.border.EmptyBorder;
import de.tud.socom.client.logic.Cookies;
@SuppressWarnings("serial")
public class CookieViewer extends JFrame {
private JPanel contentPane;
/**
* Create the frame.
*/
public CookieViewer() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
setLocationRelativeTo(null);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
final JList list = new JList();
fillListWithCookies(list);
contentPane.add(list, BorderLayout.CENTER);
JPopupMenu popupMenu = new JPopupMenu();
addPopup(list, popupMenu);
JMenuItem mntmDeleteCookie = new JMenuItem("Remove Cookie");
mntmDeleteCookie.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String selectedCookie = (String) list.getSelectedValue();
if (selectedCookie != null)
Cookies.removeCookie(selectedCookie);
fillListWithCookies(list);
}
});
popupMenu.add(mntmDeleteCookie);
JButton btnNewButton = new JButton("Close");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CookieViewer.this.dispose();
}
});
contentPane.add(btnNewButton, BorderLayout.SOUTH);
this.setVisible(true);
}
private void fillListWithCookies(JList list) {
DefaultListModel model = new DefaultListModel();
list.setModel(model);
List<String> cookies = Cookies.getCookies();
for (int i = 0; i < cookies.size(); i++) {
model.add(i, cookies.get(i));
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
}