Author: mes
Date: 2011-03-07 16:31:02 -0800 (Mon, 07 Mar 2011)
New Revision: 24328

Added:
   core3/splash-updater-impl/trunk/
   core3/splash-updater-impl/trunk/osgi.bnd
   core3/splash-updater-impl/trunk/pom.xml
   core3/splash-updater-impl/trunk/src/
   core3/splash-updater-impl/trunk/src/main/
   core3/splash-updater-impl/trunk/src/main/java/
   core3/splash-updater-impl/trunk/src/main/java/org/
   core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/
   core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/
   core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/
   
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashActivator.java
   
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashManipulator.java
Log:
initial import

Added: core3/splash-updater-impl/trunk/osgi.bnd
===================================================================
--- core3/splash-updater-impl/trunk/osgi.bnd                            (rev 0)
+++ core3/splash-updater-impl/trunk/osgi.bnd    2011-03-08 00:31:02 UTC (rev 
24328)
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------
+# Use this file to add customized Bnd instructions for the bundle
+#-----------------------------------------------------------------
+
+Private-Package: ${bundle.namespace}.internal
+Bundle-Activator: ${bundle.namespace}.internal.SplashActivator

Added: core3/splash-updater-impl/trunk/pom.xml
===================================================================
--- core3/splash-updater-impl/trunk/pom.xml                             (rev 0)
+++ core3/splash-updater-impl/trunk/pom.xml     2011-03-08 00:31:02 UTC (rev 
24328)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+
+  <parent>
+    <artifactId>parent</artifactId>
+    <groupId>org.cytoscape</groupId>
+    <version>3.0.0-alpha4</version>
+  </parent>
+
+  <properties>
+    
<bundle.symbolicName>org.cytoscape.splash-updater-impl</bundle.symbolicName>
+    <bundle.namespace>org.cytoscape.splash</bundle.namespace>
+  </properties>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.cytoscape</groupId>
+  <artifactId>splash-updater-impl</artifactId>
+  <version>3.0.0-alpha1-SNAPSHOT</version>
+
+  <name>Splash Updater</name>
+
+  <packaging>bundle</packaging>
+
+  <scm>
+    
<connection>scm:svn:http://chianti.ucsd.edu/svn/core3/splash-updater-impl/trunk</connection>
+    
<developerConnection>scm:svn:svn+ssh://grenache.ucsd.edu/cellar/common/svn/core3/splash-updater-impl/trunk</developerConnection>
+    <url>http://chianti.ucsd.edu/svn/core3/splash-updater-impl/trunk</url>
+  </scm>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.ops4j</groupId>
+        <artifactId>maven-pax-plugin</artifactId>
+        <version>1.4</version>
+        <extensions>true</extensions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>2.1.0</version>
+        <configuration>
+          <instructions>
+            <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
+            <Bundle-Version>${pom.version}</Bundle-Version>
+            <_include>-osgi.bnd</_include>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi_R4_core</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>osgi_R4_compendium</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.osgi</groupId>
+      <artifactId>spring-osgi-extender</artifactId>
+      <version>${spring.osgi.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>

Added: 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashActivator.java
===================================================================
--- 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashActivator.java
                            (rev 0)
+++ 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashActivator.java
    2011-03-08 00:31:02 UTC (rev 24328)
@@ -0,0 +1,32 @@
+package org.cytoscape.splash.internal;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.BundleListener;
+import 
org.springframework.osgi.context.event.OsgiBundleApplicationContextListener;
+import java.util.Properties;
+
+/**
+ * Meant to be run at startLevel 1 so that the splash screen pops up before all
+ * other bundles start loading.  
+ */
+public final class SplashActivator implements BundleActivator {
+
+    /**
+     * Called whenever the OSGi framework starts our bundle
+     */
+    public void start( BundleContext bc ) throws Exception {
+               SplashManipulator splash = new SplashManipulator();
+               bc.addFrameworkListener(splash);
+               bc.addBundleListener(splash);
+               
bc.registerService(OsgiBundleApplicationContextListener.class.getName(),splash,new
 Properties());
+    }
+
+    /**
+     * Called whenever the OSGi framework stops our bundle
+     */
+    public void stop( BundleContext bc ) throws Exception {
+    }
+}
+

Added: 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashManipulator.java
===================================================================
--- 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashManipulator.java
                          (rev 0)
+++ 
core3/splash-updater-impl/trunk/src/main/java/org/cytoscape/splash/internal/SplashManipulator.java
  2011-03-08 00:31:02 UTC (rev 24328)
@@ -0,0 +1,57 @@
+package org.cytoscape.splash.internal;
+
+import java.awt.SplashScreen;
+import java.awt.Graphics2D;
+import java.awt.Color;
+import java.awt.AlphaComposite;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.FrameworkEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.framework.FrameworkListener;
+import org.springframework.osgi.context.event.OsgiBundleContextRefreshedEvent;
+import 
org.springframework.osgi.context.event.OsgiBundleApplicationContextEvent;
+import 
org.springframework.osgi.context.event.OsgiBundleApplicationContextListener;
+
+public class SplashManipulator implements 
+       OsgiBundleApplicationContextListener,
+       BundleListener,
+       FrameworkListener {
+
+       private final SplashScreen splash;
+       private final Graphics2D g;
+
+    public SplashManipulator() {
+        splash = SplashScreen.getSplashScreen();
+               if (splash == null)
+                       g = null;
+               else
+               g = splash.createGraphics();
+               renderSplashFrame("Cytoscape Starting...");
+       }
+
+    public void bundleChanged(BundleEvent event) {
+               if ( event.getType() == BundleEvent.STARTED )
+                       renderSplashFrame(event.getBundle().getSymbolicName() + 
" started");
+       }
+
+    public void frameworkEvent(FrameworkEvent event) {
+               if ( event.getType() == FrameworkEvent.STARTED ) 
+                       renderSplashFrame("OSGi finished!");
+       }
+
+       public void onOsgiApplicationEvent(OsgiBundleApplicationContextEvent 
event) {
+               if ( event instanceof OsgiBundleContextRefreshedEvent )
+                       renderSplashFrame( event.getBundle().getSymbolicName() 
+ " refreshed");
+       }
+
+    private synchronized void renderSplashFrame(String message) {
+               if ( g == null || splash == null || !splash.isVisible() )
+                       return;
+        g.setComposite(AlphaComposite.Clear);
+        g.fillRect(20,300,800,40);
+        g.setPaintMode();
+        g.setColor(Color.BLACK);
+        g.drawString(message, 20, 320);
+               splash.update();
+    }
+}

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to