source: main/trunk/gli/src/org/greenstone/gatherer/GathererProg.java@ 36272

Last change on this file since 36272 was 32926, checked in by ak19, 5 years ago

Only the older Java versions we use to build nightlies seemed to trip over local variables declared outside private inner Runnable class invokedLater by SwingUtilities not being final

  • Property svn:keywords set to Author Date Id Revision
File size: 3.7 KB
Line 
1/**
2 *#########################################################################
3 *
4 * A component of the Gatherer application, part of the Greenstone digital
5 * library suite from the New Zealand Digital Library Project at the
6 * University of Waikato, New Zealand.
7 *
8 * Author: John Thompson, NZDL Project, University of Waikato
9 *
10 * Copyright (C) 2005 New Zealand Digital Library Project
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 *########################################################################
26 */
27package org.greenstone.gatherer;
28
29
30import java.io.*;
31import javax.swing.*;
32import org.greenstone.gatherer.util.Utility;
33
34/**
35 * Containing the main() method, this class is the entry point for the
36 * stand-alone (non-Applet) GLI. The main point of this class is to set
37 * some stand-alone specific properties and then create an instance of the
38 * Gatherer class.
39 * @author John Thompson, NZDL Project, University of Waikato
40 */
41public class GathererProg
42{
43 /** The entry point into the stand-alone GLI.
44 * @param args A collection of arguments that may include: initial screen size, dictionary, path to the GSDL etc.
45 */
46 static public void main(final String[] args)
47 {
48 // A serious hack, but its good enough to stop crappy 'Could not
49 // lock user prefs' error messages. Thanks to Walter Schatz from
50 // the java forums.
51 System.setProperty("java.util.prefs.syncInterval","2000000");
52 // => results in one message every 600 hours!
53
54 // Ensure platform specific LAF
55 try {
56 // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
57 UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
58 }
59 catch (Exception exception) {
60 exception.printStackTrace();
61 }
62
63 // Determine the GLI user directory path
64 String gli_user_directory_path = System.getProperty("user.home") + File.separator;
65 if (Utility.isWindows()) {
66 gli_user_directory_path += "Application Data" + File.separator + "Greenstone" + File.separator + "GLI" + File.separator;
67 }
68 else {
69 gli_user_directory_path += ".gli" + File.separator;
70 }
71 Gatherer.setGLIUserDirectoryPath(gli_user_directory_path);
72
73 // We have a local GLI
74 Gatherer.setGLIDirectoryPath(System.getProperty("user.dir") + File.separator);
75
76 // Create an instance of the Gatherer class, which will parse the args and prepare the rest of the GLI
77 final Gatherer gatherer = new Gatherer(args);
78
79 // TESTING circumventing the old GUI event dispatch thread exceptions in GLI. Follows
80 // https://docs.oracle.com/javase/6/docs/api/javax/swing/package-summary.html#threading
81 // referred from Event Dispatch Thread page at https://joel-costigliola.github.io/assertj/assertj-swing-edt.html
82
83 // Schedule a job for the event-dispatching thread:
84 // creating and showing this application's GUI.
85
86 SwingUtilities.invokeLater(new Runnable() {
87 public void run() {
88 // This line used to be done immediately after setGLIDirectoryPath()
89 // and new Gatherer() above, but is now inside an invokeLater() to do graphical stuff here.
90
91 // Display the GUI immediately
92 gatherer.openGUI();
93 }
94 });
95
96 }
97}
Note: See TracBrowser for help on using the repository browser.