davmail/src/java/davmail/ui/tray/OSXFrameGatewayTray.java

82 lines
2.8 KiB
Java

/*
* DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway
* Copyright (C) 2009 Mickael Guessant
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package davmail.ui.tray;
import davmail.BundleMessage;
import davmail.DavGateway;
import davmail.ui.OSXAdapter;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* MacOSX specific frame to handle menu
*/
public class OSXFrameGatewayTray extends FrameGatewayTray {
/**
* Exit DavMail Gateway.
*
* @return true
*/
@SuppressWarnings({"SameReturnValue", "UnusedDeclaration"})
public boolean quit() {
DavGateway.stop();
// dispose frames
settingsFrame.dispose();
aboutFrame.dispose();
if (logBrokerMonitor != null) {
logBrokerMonitor.dispose();
}
return true;
}
@Override
protected void buildMenu() {
// create a popup menu
JMenu menu = new JMenu(BundleMessage.format("UI_LOGS"));
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
mainFrame.setJMenuBar(menuBar);
JMenuItem logItem = new JMenuItem(BundleMessage.format("UI_SHOW_LOGS"));
logItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showLogs();
}
});
menu.add(logItem);
}
@Override
protected void createAndShowGUI() {
System.setProperty("apple.laf.useScreenMenuBar", "true");
super.createAndShowGUI();
try {
OSXAdapter.setAboutHandler(this, FrameGatewayTray.class.getDeclaredMethod("about", (Class[]) null));
OSXAdapter.setPreferencesHandler(this, FrameGatewayTray.class.getDeclaredMethod("preferences", (Class[]) null));
OSXAdapter.setQuitHandler(this, OSXFrameGatewayTray.class.getDeclaredMethod("quit", (Class[]) null));
} catch (Exception e) {
DavGatewayTray.error(new BundleMessage("LOG_ERROR_LOADING_OSXADAPTER"), e);
}
}
}