/** * Copyright 2011 multibit.org * * Licensed under the MIT license (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License * at * * http://opensource.org/licenses/mit-license.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package net.bither.viewsystem.action; import net.bither.ApplicationInstanceManager; import net.bither.Bither; import net.bither.bitherj.core.PeerManager; import net.bither.utils.LocaliserUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; /** * Exit the application. */ public class ExitAction extends AbstractExitAction { private static final Logger log = LoggerFactory.getLogger(ExitAction.class); /** * Creates a new {@link ExitAction}. */ public ExitAction() { super(); } @Override public void actionPerformed(ActionEvent arg0) { String shuttingDownTitle = LocaliserUtils.getString("BitherFrame.title.shuttingDown"); if (Bither.getMainFrame() != null) { Bither.getMainFrame().setTitle(shuttingDownTitle); if (EventQueue.isDispatchThread()) { Bither.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } else { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Bither.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } }); } } PeerManager.instance().stop(); ApplicationInstanceManager.shutdownSocket(); // Get rid of main display. if (Bither.getMainFrame() != null) { Bither.getMainFrame().setVisible(false); } if (Bither.getMainFrame() != null) { Bither.getMainFrame().dispose(); } ApplicationInstanceManager.txDBHelper.close(); System.exit(0); } }