Author: jm
Date: 2012-01-10 09:06:11 -0800 (Tue, 10 Jan 2012)
New Revision: 27963

Added:
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/MacCyActivator.java
Modified:
   core3/impl/trunk/swing-application-impl/pom.xml
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
Log:
Fixes #559: Worked around OS X initialization issues by moving references to 
com.apple.eawt to a class outside of CyActivator.

Modified: core3/impl/trunk/swing-application-impl/pom.xml
===================================================================
--- core3/impl/trunk/swing-application-impl/pom.xml     2012-01-10 17:02:07 UTC 
(rev 27962)
+++ core3/impl/trunk/swing-application-impl/pom.xml     2012-01-10 17:06:11 UTC 
(rev 27963)
@@ -128,14 +128,11 @@
             <version>1.0</version>
         </dependency>
         
-        <!--  Temporarily disabled: See ticket #559 -->
-        <!--
         <dependency>
                <groupId>com.apple.developer</groupId>
                <artifactId>AppleJavaExtensions</artifactId>
                <version>1.6</version>
                <scope>compile</scope>
         </dependency>
-        -->
        </dependencies>
 </project>

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
       2012-01-10 17:02:07 UTC (rev 27962)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
       2012-01-10 17:06:11 UTC (rev 27963)
@@ -50,7 +50,6 @@
 import org.cytoscape.application.CyApplicationConfiguration;
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.application.CyShutdown;
-import org.cytoscape.application.CyVersion;
 import org.cytoscape.application.events.CyShutdownListener;
 import org.cytoscape.application.events.SetCurrentNetworkViewListener;
 import org.cytoscape.application.swing.CyAction;
@@ -65,7 +64,6 @@
 import org.cytoscape.internal.actions.PrintAction;
 import org.cytoscape.internal.actions.RecentSessionManager;
 import org.cytoscape.internal.actions.WelcomeScreenAction;
-import org.cytoscape.internal.dialogs.AboutDialogFactoryImpl;
 import org.cytoscape.internal.dialogs.BookmarkDialogFactoryImpl;
 import org.cytoscape.internal.dialogs.PreferencesDialogFactoryImpl;
 import org.cytoscape.internal.layout.ui.LayoutMenuPopulator;
@@ -119,7 +117,6 @@
 import org.cytoscape.view.presentation.RenderingEngineFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.TaskFactory;
-import org.cytoscape.work.TaskManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.swing.PanelTaskManager;
 import org.cytoscape.work.swing.SubmenuTaskManager;
@@ -138,7 +135,7 @@
        }
 
        @Override
-       public void start(BundleContext bc) {
+       public void start(BundleContext bc) throws Exception {
                
                ImportNetworksTaskFactory importNetworkTF = getService(bc, 
ImportNetworksTaskFactory.class, "(id=loadNetworkURLTaskFactory)");
                TaskFactory importNetworkFileTF = getService(bc, 
TaskFactory.class, "(id=loadNetworkFileTaskFactory)");
@@ -274,9 +271,6 @@
                                                                                
     sessionReaderManagerServiceRef,
                                                                                
     cyApplicationManagerServiceRef);
                
-               CyVersion version = getService(bc, CyVersion.class);
-               AboutDialogFactoryImpl aboutDialogFactory = new 
AboutDialogFactoryImpl(version);
-               
                // Show Welcome Screen
                final WelcomeScreenAction welcomeScreenAction = new 
WelcomeScreenAction(bc,cytoscapeDesktop, openBrowserServiceRef, 
recentlyOpenedTrackerServiceRef, openSessionTaskFactory, 
submenuTaskManagerServiceRef, importNetworkFileTF, importNetworkTF, 
createNetworkViewTaskFactory, cyApplicationConfigurationServiceRef, 
dsManagerServiceRef, cytoscapePropertiesServiceRef);
                registerAllServices(bc, welcomeScreenAction, new Properties());
@@ -292,12 +286,11 @@
                registerService(bc, cytoPanelEastAction, CyAction.class, new 
Properties());
                registerService(bc, cytoPanelSouthWestAction, CyAction.class, 
new Properties());
 
-               // Temporarily disabled: See ticket #559
-//             if (isMac()) {
-//                     registerMacMenuHandlers(cytoscapeShutdownServiceRef, 
submenuTaskManagerServiceRef, aboutDialogFactory);
-//             } else {
+               if (isMac()) {
+                       new MacCyActivator().start(bc);
+               } else {
                        registerService(bc, exitAction, CyAction.class, new 
Properties());
-//             }
+               }
 
                Properties helpContentsTaskFactoryProps = new Properties();
                helpContentsTaskFactoryProps.setProperty("preferredMenu", 
"Help");
@@ -405,25 +398,6 @@
                                        CyLayoutAlgorithm.class);
        }
 
-       private void registerMacMenuHandlers(final CyShutdown shutdown, final 
TaskManager<?, ?> taskManager, final TaskFactory aboutTaskFactory) {
-               // Temporarily disabled: See ticket #559
-               /*
-               Application application = Application.getApplication();
-               application.setQuitHandler(new QuitHandler() {
-                       @Override
-                       public void handleQuitRequestWith(QuitEvent event, 
QuitResponse response) {
-                               shutdown.exit(0);
-                       }
-               });
-               application.setAboutHandler(new AboutHandler() {
-                       @Override
-                       public void handleAbout(AboutEvent event) {
-                               taskManager.execute(aboutTaskFactory);
-                       }
-               });
-               */
-       }
-
        private boolean isMac() {
                return System.getProperty("os.name").startsWith("Mac OS X");
        }

Added: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/MacCyActivator.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/MacCyActivator.java
                            (rev 0)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/MacCyActivator.java
    2012-01-10 17:06:11 UTC (rev 27963)
@@ -0,0 +1,39 @@
+package org.cytoscape.internal;
+
+import org.cytoscape.application.CyShutdown;
+import org.cytoscape.application.CyVersion;
+import org.cytoscape.internal.dialogs.AboutDialogFactoryImpl;
+import org.cytoscape.service.util.AbstractCyActivator;
+import org.cytoscape.work.swing.SubmenuTaskManager;
+import org.osgi.framework.BundleContext;
+
+import com.apple.eawt.AboutHandler;
+import com.apple.eawt.AppEvent.AboutEvent;
+import com.apple.eawt.AppEvent.QuitEvent;
+import com.apple.eawt.Application;
+import com.apple.eawt.QuitHandler;
+import com.apple.eawt.QuitResponse;
+
+public class MacCyActivator extends AbstractCyActivator {
+       @Override
+       public void start(BundleContext context) throws Exception {
+               final CyShutdown shutdown = getService(context, 
CyShutdown.class);
+               final SubmenuTaskManager taskManager = getService(context, 
SubmenuTaskManager.class);
+               final CyVersion version = getService(context, CyVersion.class);
+               final AboutDialogFactoryImpl aboutDialogFactory = new 
AboutDialogFactoryImpl(version);
+               
+               Application application = Application.getApplication();
+               application.setQuitHandler(new QuitHandler() {
+                       @Override
+                       public void handleQuitRequestWith(QuitEvent event, 
QuitResponse response) {
+                               shutdown.exit(0);
+                       }
+               });
+               application.setAboutHandler(new AboutHandler() {
+                       @Override
+                       public void handleAbout(AboutEvent event) {
+                               taskManager.execute(aboutDialogFactory);
+                       }
+               });
+       }
+}

-- 
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