Author: dandre
Date: Mon Sep 16 00:30:40 2013
New Revision: 4552

Log:
At startup, when welcome page is open, put it to front so that it is always 
shown

Modified:
   trunk/AncestrisCore/ancestris.app/src/ancestris/app/ControlCenter.java
   trunk/AncestrisCore/welcome/src/ancestris/welcome/Installer.java
   trunk/AncestrisCore/welcome/src/ancestris/welcome/WelcomeComponent.java

Modified: trunk/AncestrisCore/ancestris.app/src/ancestris/app/ControlCenter.java
==============================================================================
--- trunk/AncestrisCore/ancestris.app/src/ancestris/app/ControlCenter.java      
(original)
+++ trunk/AncestrisCore/ancestris.app/src/ancestris/app/ControlCenter.java      
Mon Sep 16 00:30:40 2013
@@ -28,9 +28,13 @@
 
 import org.openide.util.Exceptions;
 import genj.gedcom.Context;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.swing.SwingUtilities;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileStateInvalidException;
+import org.openide.windows.TopComponent;
+import org.openide.windows.WindowManager;
 
 /**
  * The central component of the GenJ application
@@ -42,7 +46,7 @@
 
     private int isLoaded = 1;
     final private Object loadLock = new Object();
-
+    private static final Logger LOG = Logger.getLogger("ancestris");
 
     /**
      * Loads gedcom files
@@ -120,9 +124,17 @@
                 for (FileObject file: files) {
                         GedcomDirectory.getDefault().openGedcom(file);
                         // FIXME: should we save and restore passwords, and 
how?
-
                 }
             }
+            //XXX: activate welcome TC if opened just after opening all files.
+            // This must not be done here but activated in welcome module. In 
fact this is already done
+            // but as all other TC are "manually" opened at startup (ie do not 
use NB persistence
+            // topcomponent) we must open welcome here.
+            // We will have to investigate to properly use Persistence API for 
TC
+            TopComponent welcome = 
WindowManager.getDefault().findTopComponent("Welcome");
+            if (welcome!= null){
+                welcome.requestActive();
+            }
 
             // done
             App.center.isReady(-1);

Modified: trunk/AncestrisCore/welcome/src/ancestris/welcome/Installer.java
==============================================================================
--- trunk/AncestrisCore/welcome/src/ancestris/welcome/Installer.java    
(original)
+++ trunk/AncestrisCore/welcome/src/ancestris/welcome/Installer.java    Mon Sep 
16 00:30:40 2013
@@ -32,8 +32,11 @@
 
 import java.util.Set;
 import org.openide.modules.ModuleInstall;
+import org.openide.windows.Mode;
 import org.openide.windows.TopComponent;
 import org.openide.windows.WindowManager;
+import org.openide.windows.WindowSystemEvent;
+import org.openide.windows.WindowSystemListener;
 
 /**
  * Checks the feedback survey.
@@ -42,19 +45,31 @@
 
     @Override public void restored() {
         WindowManager.getDefault().invokeWhenUIReady(this);
+        WindowManager.getDefault().addWindowSystemListener( new 
WindowSystemListener() {
+
+            @Override
+            public void beforeLoad( WindowSystemEvent event ) {
     }
 
     @Override
-    public boolean closing() {
+            public void afterLoad( WindowSystemEvent event ) {
+            }
+
+            @Override
+            public void beforeSave( WindowSystemEvent event ) {
+                WindowManager.getDefault().removeWindowSystemListener( this);
         WelcomeComponent topComp = null;
+                boolean isEditorShowing = false;
         Set<TopComponent> tcs = TopComponent.getRegistry().getOpened();
-        for (TopComponent tc: tcs) {
+                for (Mode mode : WindowManager.getDefault().getModes()) {
+                    TopComponent tc = mode.getSelectedTopComponent();
             if (tc instanceof WelcomeComponent) {                
                 topComp = (WelcomeComponent) tc;               
-                break;
             }
+                    if( null != tc && 
WindowManager.getDefault().isEditorTopComponent( tc ) )
+                        isEditorShowing = true;
         }
-        if( WelcomeOptions.getDefault().isShowOnStartup() ) {
+                if( WelcomeOptions.getDefault().isShowOnStartup()/*??? && 
isEditorShowing */) {
             if(topComp == null){            
                 topComp = WelcomeComponent.findComp();
             }
@@ -65,10 +80,17 @@
         } else if( topComp != null ) {
             topComp.close();
         }
-        return super.closing();
     }
 
+            @Override
+            public void afterSave( WindowSystemEvent event ) {
+            }
+        });
+    }
+
+    @Override
     public void run() {
         FeedbackSurvey.start();
+        WelcomeComponent.findComp().requestActive();
     }
 }

Modified: 
trunk/AncestrisCore/welcome/src/ancestris/welcome/WelcomeComponent.java
==============================================================================
--- trunk/AncestrisCore/welcome/src/ancestris/welcome/WelcomeComponent.java     
(original)
+++ trunk/AncestrisCore/welcome/src/ancestris/welcome/WelcomeComponent.java     
Mon Sep 16 00:30:40 2013
@@ -78,7 +78,7 @@
     }
     
     @Override protected String preferredID(){
-        return "WelcomeComponent";    //NOI18N
+        return "Welcome";    //NOI18N
     }
     
     /**
@@ -110,7 +110,7 @@
         }
     }
         
-    /* Singleton accessor. As WelcomeComponent is persistent singleton this
+    /** Singleton accessor. As WelcomeComponent is persistent singleton this
      * accessor makes sure that WelcomeComponent is deserialized by window 
system.
      * Uses known unique TopComponent ID "Welcome" to get WelcomeComponent 
instance
      * from window system. "Welcome" is name of settings file defined in 
module layer.
@@ -142,7 +142,7 @@
         return wc;
     }
     
-    /* Singleton accessor reserved for window system ONLY. Used by window 
system to create
+    /** Singleton accessor reserved for window system ONLY. Used by window 
system to create
      * WelcomeComponent instance from settings file when method is given. Use 
<code>findComp</code>
      * to get correctly deserialized instance of WelcomeComponent. */
     public static WelcomeComponent createComp() {

---------------------------------------------------------------------
Site Web Ancestris : http://www.ancestris.org

<*> Pour vous desinscrire de cette liste, envoyez un mail a :
              [email protected]
<*> Pour obtenir de l'aide sur les commandes de la liste :
              [email protected]

Pour obtenir tous les messages lies a ce fil de discussion, cliquez sur le 
lien ci-dessous, cela ouvrira votre logiciel de messagerie. Il vous suffira 
d'envoyer le message :
              [email protected]

Reply via email to