20 package net.sf.gridarta.gui.misc;
22 import java.awt.BorderLayout;
23 import java.awt.Component;
24 import java.awt.Rectangle;
25 import java.awt.Toolkit;
26 import java.awt.event.ActionEvent;
27 import java.awt.event.ActionListener;
28 import java.awt.event.WindowAdapter;
29 import java.awt.event.WindowEvent;
30 import java.awt.geom.RectangularShape;
31 import java.util.prefs.Preferences;
32 import javax.swing.ImageIcon;
33 import javax.swing.JFrame;
34 import javax.swing.JOptionPane;
35 import javax.swing.WindowConstants;
44 import org.jetbrains.annotations.NotNull;
45 import org.jetbrains.annotations.Nullable;
68 private static final String
WINDOW_X =
"MainWindow.x";
73 private static final String
WINDOW_Y =
"MainWindow.y";
105 public MainView(@NotNull
final JFrame
frame, @NotNull
final ActionListener exitAction, @NotNull
final Component mapDesktop, @Nullable
final ImageIcon icon, @NotNull
final Exiter exiter) {
107 frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
108 frame.addWindowListener(
new WindowAdapter() {
111 public void windowClosing(
final WindowEvent e) {
112 exitAction.actionPerformed(
new ActionEvent(e.getSource(), 0,
null));
116 frame.setIconImage(icon.getImage());
122 public void preExitNotify() {
127 public void appExitNotify() {
128 final Rectangle bounds =
frame.getBounds();
137 public void waitExitNotify() {
142 exiter.addExiterListener(exiterListener);
145 final RectangularShape screen =
frame.getGraphicsConfiguration().getBounds();
146 final int defaultWidth = (int) (0.9 * screen.getWidth());
147 final int defaultHeight = (int) (0.9 * screen.getHeight());
164 tab.addTabListener(tabListener);
188 tab.getButton().setForeground(severity.getColor());
195 Toolkit.getDefaultToolkit().beep();
196 JOptionPane.showMessageDialog(
frame, t.getMessage(),
"Error", JOptionPane.WARNING_MESSAGE);