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.