Kaynağa Gözat

first stubs for splash screen logic

LH 6 yıl önce
ebeveyn
işleme
b2e00d2554

+ 7 - 1
WPCMGr/src/main/resources/log4j2.xml

@@ -36,5 +36,11 @@
         <AppenderRef ref="ConsoleExternal"/>
         <AppenderRef ref="logfileExternal"/>
     </Logger>
+    <Logger name=" net.java" level="info" additivity="false">
+        <AppenderRef ref="ConsoleExternal"/>
+        <AppenderRef ref="logfileExternal"/>
+    </Logger>
     </Loggers>
-</Configuration>
+</Configuration>
+
+

+ 7 - 1
WPCMGr/src/main/resources/log4j2NonVerbose.xml

@@ -36,5 +36,11 @@
         <AppenderRef ref="ConsoleExternal"/>
         <AppenderRef ref="logfileExternal"/>
     </Logger>
+    <Logger name="net.java" level="info" additivity="false">
+        <AppenderRef ref="ConsoleExternal"/>
+        <AppenderRef ref="logfileExternal"/>
+    </Logger>
     </Loggers>
-</Configuration>
+</Configuration>
+
+ 

+ 1 - 1
iZpl/build.gradle

@@ -10,7 +10,7 @@ apply plugin: 'java'
 apply plugin: 'application'
 apply from: "$rootDir/utils/IO.gradle"
 
-version = '0.10.2.0'
+version = '0.11.0.0-SNAPSHOT'
 mainClassName = 'de.nplusc.izc.iZpl.Main'
 //'de.nplusc.izc.iZpl.Main'
 

BIN
iZpl/src/dist/splash/program.png


+ 23 - 17
iZpl/src/main/java/de/nplusc/izc/iZpl/API/PluginManager.java

@@ -55,6 +55,7 @@ public class PluginManager
     private final List<FeaturePlugin> registeredFeatures = new ArrayList<>();
     private final List<UIPlugin> registeredUIs = new ArrayList<>();
     private final List<PlaybackStatusPlugin> registeredStatusPlugins = new ArrayList<>();
+    private final List<Plugin> detectedPlugins = new ArrayList<>();
     private PlaybackPlugin selectedPlaybackPlugin;
 
     private static final List<String> detectedSkins = new ArrayList<>();//X
@@ -152,37 +153,30 @@ public class PluginManager
         //PluginHandling stage 2: call the prepareUpgrade handler
         if(firstrunmode||updateInit)
         {
+            int pluginCount =detectedPlugins.size();
+            for (int i = 0; i < pluginCount; i++)
+            {
+                Plugin p = detectedPlugins.get(i);
+                p.prepareUpgrade();
+                Main.updatePluginLoadProgress(pluginCount, i, p.getPluginName());
+            }
+            
             for (PlaybackPlugin playbackPlugin : registeredPlayBackAdapters)
             {
                 if (playbackPlugin.getPluginName().equals(Main.CONFIG.getMediaPlayerForStandalone()))
                 {
 
-                    playbackPlugin.prepareUpgrade();
                     selectedPlaybackPlugin = playbackPlugin;
                 }
             }
+            
             for (UIPlugin uIPlugin : registeredUIs)
             {
                 if (uIPlugin.getPluginName().equals(Main.CONFIG.getUsedPluginUI()))
                 {                                                               //incase of a dualPlugin
-                    if(!(uIPlugin instanceof PlaybackPlugin )&&!registeredPlayBackAdapters.contains(uIPlugin))
-                        uIPlugin.prepareUpgrade();
                     selectedUIPlugin = uIPlugin;
                 }
             }
-            for (FeaturePlugin featurePlugin : registeredFeatures)
-            {
-                  if(!(featurePlugin instanceof PlaybackPlugin )&&!registeredPlayBackAdapters.contains(featurePlugin)&&
-                          !(featurePlugin instanceof UIPlugin )&&!registeredUIs.contains(featurePlugin))
-                      featurePlugin.prepareUpgrade();
-            }
-            for (PlaybackStatusPlugin statusPlugin : registeredStatusPlugins)
-            {
-                  if(!(statusPlugin instanceof PlaybackPlugin )&&!registeredPlayBackAdapters.contains(statusPlugin)&&
-                          !(statusPlugin instanceof UIPlugin )&&!registeredUIs.contains(statusPlugin)&&
-                          !(statusPlugin instanceof FeaturePlugin )&&!registeredFeatures.contains(statusPlugin))
-                      statusPlugin.prepareUpgrade();
-            }
         }
         //PluginHandling stage 3: initialize the plugins
         for (PlaybackPlugin playbackPlugin : registeredPlayBackAdapters)
@@ -199,7 +193,10 @@ public class PluginManager
             if (uIPlugin.getPluginName().equals(Main.CONFIG.getUsedPluginUI()))
             {                                                               //incase of a dualPlugin
                 if((firstrunmode||updateInit)&&!(uIPlugin instanceof PlaybackPlugin )&&!registeredPlayBackAdapters.contains(uIPlugin))
+                {
                     uIPlugin.initializePlugin();
+                    Main.updatePluginInitProgress(2, 1, uIPlugin.getPluginName());
+                }
                 selectedUIPlugin = uIPlugin;
             }
         }
@@ -208,8 +205,13 @@ public class PluginManager
         {
             if(featurePlugin.getPluginName().equals(featurePluginID)||(firstrunmode||updateInit))
             {
+                
                 selectedFeaturePlugin=featurePlugin;
-                featurePlugin.initializePlugin();
+                if(firstrunmode||updateInit)
+                {
+                    featurePlugin.initializePlugin();
+                    Main.updatePluginInitProgress(2, 2, featurePlugin.getPluginName());
+                }
             }
         }
         if(featurePluginMode&&selectedFeaturePlugin==null)
@@ -231,13 +233,17 @@ public class PluginManager
             if (selectedPlaybackPlugin != null)
             {
                 selectedPlaybackPlugin.initializePlugin();
+                Main.updatePluginInitProgress(3, 1, selectedPlaybackPlugin.getPluginName());
             }
             if (selectedUIPlugin != null && selectedUIPlugin != selectedPlaybackPlugin)
             {
+                
                 selectedUIPlugin.initializePlugin();
+                Main.updatePluginInitProgress(3, 2, selectedUIPlugin.getPluginName());
             }
             //load all installed StatusPlugins for now
             registeredStatusPlugins.forEach((plugin)->plugin.initializePlugin());
+            Main.updatePluginInitProgress(3, 3, "StatusUpdaters");
         }
 
     }

+ 80 - 12
iZpl/src/main/java/de/nplusc/izc/iZpl/Main.java

@@ -28,7 +28,9 @@ import de.nplusc.izc.tools.baseTools.Messagers;
 import de.nplusc.izc.tools.baseTools.Tools;
 import net.java.truevfs.access.TFile;
 import java.awt.EventQueue;
+import java.awt.HeadlessException;
 import java.awt.Image;
+import java.awt.SplashScreen;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -88,6 +90,7 @@ public class Main extends javax.swing.JFrame
     
     private static Image playListIcon;
         
+    private static SplashScreen splash;
     
     // <editor-fold defaultstate="collapsed" desc="Gefruzel::Main">    
     /**
@@ -100,6 +103,14 @@ public class Main extends javax.swing.JFrame
             })
     public static void main(final String args[])
     {
+        try
+        {
+            splash = SplashScreen.getSplashScreen();
+        }
+        catch(UnsupportedOperationException lmaa)
+        {
+            //ignored, since they mean no splash is displayed, handled by a nullcheck later.
+        }
         try
         {
             try
@@ -113,8 +124,7 @@ public class Main extends javax.swing.JFrame
             }
             if(Detectors.isJavaw()&&args.length==0)//temp-NOP
             {
-                logStart();
-                
+                logStart();                  
                 spawnUI();
             }
             else
@@ -169,6 +179,7 @@ public class Main extends javax.swing.JFrame
         LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); 
         LoggerConfig vlcj = config.getLoggerConfig("uk.co.caprica.vlcj"); 
         LoggerConfig externalloggerConfig = config.getLoggerConfig("External"); 
+        LoggerConfig trueVFSlloggerConfig = config.getLoggerConfig("net.java");
         
         if (verbose)
         {
@@ -178,18 +189,20 @@ public class Main extends javax.swing.JFrame
             {
                 vlcj.setLevel(Level.TRACE);
                 externalloggerConfig.setLevel(Level.TRACE);
+                trueVFSlloggerConfig.setLevel(Level.TRACE);
             }
             else
             {
                 vlcj.setLevel(Level.INFO);
                 externalloggerConfig.setLevel(Level.INFO);
+                trueVFSlloggerConfig.setLevel(Level.INFO);
             }
-            
         }
         else
         {
             loggerConfig.setLevel(Level.INFO);
             externalloggerConfig.setLevel(Level.INFO);
+            trueVFSlloggerConfig.setLevel(Level.INFO);
         }
         cx.updateLoggers();
     }
@@ -244,6 +257,7 @@ public class Main extends javax.swing.JFrame
         MainMenu m = new MainMenu();
         m.setIconImage(IZPLApi.getProgramIcon());
         m.setVisible(true);
+        splash=null; //ensures that the splash reference doesn't mess with code later
         });
     }
 
@@ -278,12 +292,26 @@ public class Main extends javax.swing.JFrame
         }
         if (stts.firstrunmode)
         {
-            java.awt.EventQueue.invokeLater(() ->
+            if(splash ==null)
+            {
+                java.awt.EventQueue.invokeLater(() ->
+                {
+                    frs = new FirstRunScreen();
+                    frs.setIconImage(playListIcon);
+                    frs.setVisible(true);
+                });
+            }
+            else
+            {
+                //TODO splash set text initializing
+            }
+        }
+        else
+        {
+            if( splash !=null)
             {
-                frs = new FirstRunScreen();
-                frs.setIconImage(playListIcon);
-                frs.setVisible(true);
-            });
+                //TODO set stage initial loading
+            }
         }
         l.info("Loading the configs now");
         loadConfigs();
@@ -292,6 +320,10 @@ public class Main extends javax.swing.JFrame
             stts= stts.changeUseGUI(true);
         }
         p.detectSkins();
+        if( splash !=null)
+        {
+            //TODO Set stage PluginLoad
+        }
         l.info("Initializing the plugins now. This may take a while");
         p.initializePlugins(stts);
         l.info("Plugins initialized");
@@ -412,7 +444,14 @@ public class Main extends javax.swing.JFrame
                 {
                     if (!stts.loadConfigMode)
                     {
-                        frs.setVisible(false);
+                        if(splash!=null)
+                        {
+                            
+                        }
+                        else
+                        {
+                            frs.setVisible(false);
+                        }
                     }
                     new ConfigureScreen(stts.firstrunmode).setVisible(true);
                 }
@@ -629,6 +668,13 @@ public class Main extends javax.swing.JFrame
         }
         quickQuit();
     }
+    
+    
+    
+    //V--nothing to see here
+    
+    //^--evil line doesnt need any code :P
+    
     /**
      * Convenience method that cleans up the temporary data and then exits
      */
@@ -683,9 +729,6 @@ public class Main extends javax.swing.JFrame
         initComponents();
     }
     
-     //V--nothing to see here
-    
-    //^--evil line doesnt need any code :P
     /**
      * Internal method for the API
      * @return Reference to PLServer
@@ -751,6 +794,31 @@ public class Main extends javax.swing.JFrame
         return p;
     }
     
+    public static void updatePluginLoadProgress(int pluginCount, int progress, String message)
+    {
+        //TODO update progressbar
+        if(splash!=null)
+        {
+            
+        }
+        else
+        {
+            
+        }
+    }
+    
+        public static void updatePluginInitProgress(int pluginCount, int progress, String message)
+    {
+        //TODO update progressbar
+        if(splash!=null)
+        {
+            
+        }
+        else
+        {
+            
+        }
+    }
     
     //</editor-fold>
 

+ 4 - 0
iZpl/src/main/resources/log4j2.xml

@@ -40,5 +40,9 @@
         <AppenderRef ref="ConsoleExternal"/>
         <AppenderRef ref="logfileExternal"/>
     </Logger>
+    <Logger name="net.java" level="info" additivity="false">
+        <AppenderRef ref="ConsoleExternal"/>
+        <AppenderRef ref="logfileExternal"/>
+    </Logger>
     </Loggers>
 </Configuration>