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

Last change on this file since 2512 was 2512, checked in by stoecker, 14 years ago

i18n updated, fixed files to reduce problems when applying patches, fix #4017

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