View Javadoc

1   /*
2    *  XNap
3    *
4    *  A pure java file sharing client.
5    *
6    *  See AUTHORS for copyright information.
7    *
8    *  This program is free software; you can redistribute it and/or modify
9    *  it under the terms of the GNU General Public License as published by
10   *  the Free Software Foundation; either version 2 of the License, or
11   *  (at your option) any later version.
12   *
13   *  This program is distributed in the hope that it will be useful,
14   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   *  GNU General Public License for more details.
17   *
18   *  You should have received a copy of the GNU General Public License
19   *  along with this program; if not, write to the Free Software
20   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21   *
22   */
23  package org.xnap.platform.macos;
24  
25  import org.xnap.gui.AboutDialog;
26  import org.xnap.gui.PreferencesDialog;
27  import org.xnap.gui.XNapFrame;
28  
29  import com.apple.mrj.MRJAboutHandler;
30  import com.apple.mrj.MRJApplicationUtils;
31  import com.apple.mrj.MRJQuitHandler;
32  
33  public class MacOSHandler 
34      implements MRJAboutHandler, /*MRJPrefsHandler, */MRJQuitHandler {
35  
36      private MacOSHandler() 
37      {
38      }
39  
40      public static void register()
41      {
42  		if (MRJApplicationUtils.isMRJToolkitAvailable()) {
43  			MacOSHandler h = new MacOSHandler();
44  			MRJApplicationUtils.registerAboutHandler(h);
45  			//MRJApplicationUtils.registerPrefsHandler(h);
46  			MRJApplicationUtils.registerQuitHandler(h);
47  		}
48      }
49  
50      public void handleAbout() 
51      {
52  		AboutDialog.showDialog(XNapFrame.getInstance());
53      }
54  
55      public void handlePrefs() 
56      {
57  		PreferencesDialog.showDialog(XNapFrame.getInstance());
58      }
59  
60      public void handleQuit() 
61      {
62  		if (!XNapFrame.getInstance().exit()) {
63  			// looks like user did not want to quit
64  			throw new IllegalStateException();
65  		}
66  	}
67  
68  }