20 package net.sf.gridarta.mainactions;
22 import java.awt.Window;
23 import java.lang.reflect.InvocationTargetException;
24 import java.util.prefs.Preferences;
25 import javax.swing.SwingUtilities;
32 import net.
sf.japi.swing.action.ActionBuilder;
33 import net.
sf.japi.swing.action.ActionBuilderFactory;
34 import org.apache.log4j.Category;
35 import org.apache.log4j.Logger;
36 import org.jetbrains.annotations.NotNull;
48 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
84 exiterListeners.
add(listener);
89 exiterListeners.
remove(listener);
93 public void doExit(
final int returnCode) {
94 mainViewFrame.setEnabled(
false);
96 listener.preExitNotify();
99 listener.appExitNotify();
101 final Thread thread =
new Thread(
new Runnable() {
106 listener.waitExitNotify();
109 SwingUtilities.invokeAndWait(mainViewFrame::dispose);
110 }
catch (
final InterruptedException ex) {
111 Thread.currentThread().interrupt();
112 LOG.warn(
"Cannot destroy main view: " + ex.getMessage());
113 }
catch (
final InvocationTargetException ex) {
114 LOG.warn(
"Cannot destroy main view: " + ex.getMessage());
128 public static void callExit(
final int returnCode) {
130 if (LOG.isDebugEnabled()) {
133 System.exit(returnCode);
135 if (LOG.isDebugEnabled()) {
void addExiterListener(@NotNull final ExiterListener listener)
Adds an ExiterListener to be notified.
Graphical User Interface of Gridarta.
T [] getListeners()
Returns an array of all the listeners.
static final Category LOG
The logger for printing log messages.
static String getString(@NotNull final ActionBuilder actionBuilder, @NotNull final String key, @NotNull final String defaultValue)
Returns the value of a key.
Base package of all Gridarta classes.
void removeExiterListener(@NotNull final ExiterListener listener)
Removes an ExiterListener to be notified.
This package contains the preferences ui modules.
void remove(@NotNull final T listener)
Removes a listener.
Interface for listeners interested in Exiter related events.
Interface used as preferences location.
void add(@NotNull final T listener)
Adds a listener.
static final ActionBuilder ACTION_BUILDER
The ActionBuilder.
static final Preferences PREFERENCES
The Preferences.
final EventListenerList2< ExiterListener > exiterListeners
The ExiterListeners to notify.
Preferences Module for developer preferences.
static void callExit(final int returnCode)
Calls System#exit(int) or does nothing depending on the user's settings.
Utility class for ActionBuilder related functions.
static final boolean PREFERENCES_SYSTEM_EXIT_DEFAULT
Preferences default value for using System.exit().
Type-safe version of EventListenerList.
static final String PREFERENCES_SYSTEM_EXIT
Preferences key for using System.exit().
DefaultExiter(@NotNull final Window mainViewFrame)
Creates a new instance.
void doExit(final int returnCode)
Exits the application.
final Window mainViewFrame
The main window's frame.