import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Gui {
private static final int GLASS_PANE_ALPHA = 180;
public void setBusy(boolean busy) {
if (busy) {
getGlassPane().setVisible(true);
} else {
getGlassPane().setVisible(false);
}
}
Gui(ListenerFactory listenerFactory) {
JPanel glassPane = new JPanel(new BorderLayout());
glassPane.setBackground(
new Color(Color.BLACK.getRed(), Color.BLACK.getGreen(),
Color.BLACK.getBlue(), GLASS_PANE_ALPHA));
glassPane.addMouseListener(new MouseListener() {
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
});
glassPane.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
});
JLabel label = new JLabel("Busy...", JLabel.CENTER);
label.setForeground(Color.white);
glassPane.add(label, BorderLayout.CENTER);
setGlassPane(glassPane);
}
protected JMenu createOptionsMenu() {
JMenu optionsMenu = original();
optionsMenu.add(createSolutionHintMenuItem());
return optionsMenu;
}
protected JMenuItem createSolutionHintMenuItem() {
JMenuItem solutionMenuItem = new JMenuItem();
solutionMenuItem.setText("Solution Hint");
solutionMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,
Event.CTRL_MASK, true));
solutionMenuItem.addActionListener(listenerFactory
.getSolutionHintListener());
return solutionMenuItem;
}
}