Author: mvw
Date: 2008-01-14 14:10:47-0800
New Revision: 14043

Modified:
   trunk/src_new/org/argouml/application/Main.java

Log:
As discussed on the dev list: ArgouML shall initialise the Gui BEFORE the 
Modules are initialised.

See also issue 4752 and issue 4952.



Modified: trunk/src_new/org/argouml/application/Main.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/application/Main.java?view=diff&rev=14043&p1=trunk/src_new/org/argouml/application/Main.java&p2=trunk/src_new/org/argouml/application/Main.java&r1=14042&r2=14043
==============================================================================
--- trunk/src_new/org/argouml/application/Main.java     (original)
+++ trunk/src_new/org/argouml/application/Main.java     2008-01-14 14:10:47-0800
@@ -125,9 +125,6 @@
     
     private static String theTheme;
     
-    private static boolean preInitialized = false;
-    private static boolean initialized = false;
-    
     /**
      * The main entry point of ArgoUML.
      * @param args command line parameters
@@ -248,27 +245,23 @@
 
 
     private static void initPreinitialize() {
-        if (!preInitialized) {
-            preInitialized = true;
-            checkJVMVersion();
-            checkHostsFile();
-
-            // Force the configuration to load
-            Configuration.load();
-
-            // Synchronize the startup directory
-            String directory = Argo.getDirectory();
-            org.tigris.gef.base.Globals.setLastDirectory(directory);
-
-            initVersion();
-            initTranslator();
-
-            // then, print out some version info for debuggers...
-            org.argouml.util.Tools.logVersionInfo();
-            setSystemProperties();
-        }
-    }
+        checkJVMVersion();
+        checkHostsFile();
 
+        // Force the configuration to load
+        Configuration.load();
+
+        // Synchronize the startup directory
+        String directory = Argo.getDirectory();
+        org.tigris.gef.base.Globals.setLastDirectory(directory);
+
+        initVersion();
+        initTranslator();
+
+        // then, print out some version info for debuggers...
+        org.argouml.util.Tools.logVersionInfo();
+        setSystemProperties();
+    }
     
    
     private static void initTranslator() {
@@ -383,45 +376,43 @@
             SplashScreen splash) {
         ProjectBrowser pb = null;
 
-        if (!initialized) {
-            initialized = true;
+        st.mark("initialize model subsystem");
+        initModel();
+        updateProgress(splash, 5, "statusmsg.bar.model-subsystem");
+
+        st.mark("initialize the profile subsystem");
+        new InitProfileSubsystem().init();
+
+        // Initialize the Java code generator. (why so early? - tfm)
+        GeneratorJava.getInstance();
+
+        // The reason the gui is initialized before the commands are run
+        // is that some of the commands will use the projectbrowser.
+        st.mark("initialize gui");
+        pb = initializeGUI(splash);
+
+        st.mark("initialize subsystems");
+        SubsystemUtility.initSubsystem(new InitUiCmdSubsystem());
+        SubsystemUtility.initSubsystem(new InitNotationUI());
+        SubsystemUtility.initSubsystem(new InitNotation());
+        SubsystemUtility.initSubsystem(new InitNotationUml());
+        SubsystemUtility.initSubsystem(new InitNotationJava());
+        SubsystemUtility.initSubsystem(new InitDiagramAppearanceUI());
+        SubsystemUtility.initSubsystem(new InitUmlUI());
+        SubsystemUtility.initSubsystem(new InitCheckListUI());
+        SubsystemUtility.initSubsystem(new InitCognitiveUI());
+
+        /*
+         * Initialize the module loader. At least the plug-ins that provide
+         * profiles need to be initialized before the project is loaded,
+         * because some of these profile may have been set as default
+         * profiles and need to be applied to the project as soon as it has
+         * been created or loaded. The first instance of a Project is needed
+         * during the GUI initialization.
+         */
+        st.mark("initialize modules");
+        SubsystemUtility.initSubsystem(new InitModuleLoader());
 
-            st.mark("initialize model subsystem");
-            initModel();
-            updateProgress(splash, 5, "statusmsg.bar.model-subsystem");
-
-            st.mark("initialize the profile subsystem");
-            new InitProfileSubsystem().init();
-
-            /*
-             * Initialize the module loader. At least the plug-ins that provide
-             * profiles need to be initialized before the project is loaded,
-             * because some of these profile may have been set as default
-             * profiles and need to be applied to the project as soon as it has
-             * been created or loaded. the first instance of a Project is 
needed
-             * during the gui initialization
-             */
-            st.mark("modules");
-            SubsystemUtility.initSubsystem(new InitModuleLoader());
-
-            // Initialize the Java code generator. (why so early? - tfm)
-            GeneratorJava.getInstance();
-
-            // The reason the gui is initialized before the commands are run
-            // is that some of the commands will use the projectbrowser.
-            st.mark("initialize gui");
-            pb = initializeGUI(splash);
-
-            SubsystemUtility.initSubsystem(new InitUiCmdSubsystem());
-            SubsystemUtility.initSubsystem(new InitNotationUI());
-            SubsystemUtility.initSubsystem(new InitNotation());
-            SubsystemUtility.initSubsystem(new InitNotationUml());
-            SubsystemUtility.initSubsystem(new InitNotationJava());
-            SubsystemUtility.initSubsystem(new InitDiagramAppearanceUI());
-            SubsystemUtility.initSubsystem(new InitUmlUI());
-            SubsystemUtility.initSubsystem(new InitCheckListUI());
-            SubsystemUtility.initSubsystem(new InitCognitiveUI());
-        }
         return pb;
     }
 
@@ -635,9 +626,9 @@
      * @param list The commands, a list of strings.
      */
     public static void performCommands(List<String> list) {
-        initPreinitialize();
-        initializeSubsystems(new SimpleTimer(), null);
-        ArgoFrame.getInstance().setVisible(true);
+//        initPreinitialize();
+//        initializeSubsystems(new SimpleTimer(), null);
+//        ArgoFrame.getInstance().setVisible(true);
         performCommandsInternal(list);
     }
     

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to