source: josm/trunk/src/org/openstreetmap/josm/gui/help/HelpApplication.java@ 2679

Last change on this file since 2679 was 2676, checked in by jttt, 14 years ago

Fix some of the warnings found by FindBugs

File size: 3.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.help;
3
4import java.awt.Dimension;
5import java.awt.Point;
6import java.awt.Rectangle;
7import java.awt.Toolkit;
8import java.io.PrintWriter;
9import java.io.StringWriter;
10import java.lang.Thread.UncaughtExceptionHandler;
11import java.util.Collection;
12import java.util.HashMap;
13import java.util.LinkedList;
14import java.util.Map;
15import java.util.logging.Level;
16import java.util.logging.Logger;
17
18import org.openstreetmap.josm.Main;
19import org.openstreetmap.josm.gui.MainApplication;
20import org.openstreetmap.josm.tools.I18n;
21
22/**
23 * The JOSM help browser wrapped in its own application. It is listening to commands
24 * on standard in.
25 *
26 */
27public class HelpApplication {
28 static private final Logger logger = Logger.getLogger(HelpApplication.class.getName());
29 private HelpBrowser browser;
30 private HelpBrowserCommandProcessor commandProcessor;
31
32 protected void setGeometry(HelpBrowser browser) {
33 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
34 d.width = Math.min(800, d.width -50);
35 Rectangle bounds = new Rectangle(
36 new Point(
37 Toolkit.getDefaultToolkit().getScreenSize().width - d.width,
38 0
39 ),
40 d
41 );
42 browser.setBounds(bounds);
43 }
44
45 public void start() {
46 browser = new HelpBrowser();
47 setGeometry(browser);
48 commandProcessor = new HelpBrowserCommandProcessor(browser);
49 new Thread(commandProcessor).start();
50 }
51
52 static public void main(String argArray[]) {
53 I18n.init();
54 // initialize the plaform hook, and
55 Main.determinePlatformHook();
56 // call the really early hook before we anything else
57 Main.platform.preStartupHook();
58
59 // construct argument table
60 final Map<String, Collection<String>> args = new HashMap<String, Collection<String>>();
61 for (String arg : argArray) {
62 if (!arg.startsWith("--")) {
63 arg = "--download="+arg;
64 }
65 int i = arg.indexOf('=');
66 String key = i == -1 ? arg.substring(2) : arg.substring(2,i);
67 String value = i == -1 ? "" : arg.substring(i+1);
68 Collection<String> v = args.get(key);
69 if (v == null) {
70 v = new LinkedList<String>();
71 }
72 v.add(value);
73 args.put(key, v);
74 }
75
76 Main.pref.init(false /* don't reset preferences */);
77
78 // Check if passed as parameter
79 if (args.containsKey("language")) {
80 I18n.set((String)(args.get("language").toArray()[0]));
81 } else {
82 I18n.set(Main.pref.get("language", null));
83 }
84 MainApplication.preConstructorInit(args);
85 Thread.setDefaultUncaughtExceptionHandler(
86 new UncaughtExceptionHandler() {
87 public void uncaughtException(Thread t, Throwable e) {
88 StringWriter sw = new StringWriter();
89 e.printStackTrace(new PrintWriter(sw));
90 logger.log(Level.SEVERE, sw.getBuffer().toString());
91 }
92 }
93 );
94
95 new HelpApplication().start();
96 }
97}
Note: See TracBrowser for help on using the repository browser.