Author: clopes
Date: 2012-08-29 12:18:56 -0700 (Wed, 29 Aug 2012)
New Revision: 30288

Modified:
   csplugins/trunk/toronto/clopes/mcode/default.properties
   csplugins/trunk/toronto/clopes/mcode/osgi.bnd
   csplugins/trunk/toronto/clopes/mcode/pom.xml
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/AbstractMCODEAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAboutAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAnalyzeAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODECloseAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEDiscardResultAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEHelpAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEOpenAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEVisualStyleAction.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/util/MCODEUtil.java
   
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/view/MCODEAboutDialog.java
Log:
Fixed bugs: (1) Open, About and Help menu items disabled if no networks; (2) 
MCODE visual style now locks node width and height.
About dialog improvements: Close button. ENTER and ESC keys also closes the 
dialog. The dialog is centered with Cytoscape desktop.
Fixed MANIFEST for app store publication.

Modified: csplugins/trunk/toronto/clopes/mcode/default.properties
===================================================================
--- csplugins/trunk/toronto/clopes/mcode/default.properties     2012-08-29 
18:44:08 UTC (rev 30287)
+++ csplugins/trunk/toronto/clopes/mcode/default.properties     2012-08-29 
19:18:56 UTC (rev 30288)
@@ -1,2 +1,2 @@
 # Overwrite it in your local.properties file
-cytoscape.home=${user.home}/.cytoscape/3.0
\ No newline at end of file
+cytoscape.home=${user.home}/CytoscapeConfiguration/3
\ No newline at end of file

Modified: csplugins/trunk/toronto/clopes/mcode/osgi.bnd
===================================================================
--- csplugins/trunk/toronto/clopes/mcode/osgi.bnd       2012-08-29 18:44:08 UTC 
(rev 30287)
+++ csplugins/trunk/toronto/clopes/mcode/osgi.bnd       2012-08-29 19:18:56 UTC 
(rev 30288)
@@ -2,5 +2,5 @@
 # Use this file to add customized Bnd instructions for the bundle
 #-----------------------------------------------------------------
 
-Bundle-Activator: ${bundle.namespace}.internal.CyActivator
-Private-Package: ${bundle.namespace}.internal.*
+Bundle-Activator: ${bundle.namespace}.CyActivator
+Private-Package: ${bundle.namespace}.*

Modified: csplugins/trunk/toronto/clopes/mcode/pom.xml
===================================================================
--- csplugins/trunk/toronto/clopes/mcode/pom.xml        2012-08-29 18:44:08 UTC 
(rev 30287)
+++ csplugins/trunk/toronto/clopes/mcode/pom.xml        2012-08-29 19:18:56 UTC 
(rev 30288)
@@ -1,24 +1,24 @@
 <?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";>
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+       
+       <modelVersion>4.0.0</modelVersion>
 
        <properties>
-               
<bundle.symbolicName>org.cytoscape.mcode.mcode-plugin</bundle.symbolicName>
-               <bundle.namespace>org.cytoscape.mcode</bundle.namespace>
+               <bundle.symbolicName>org.cytoscape.mcode</bundle.symbolicName>
+               
<bundle.namespace>org.cytoscape.mcode.internal</bundle.namespace>
                
<cytoscape.api.version>3.0.0-beta3-SNAPSHOT</cytoscape.api.version>
                
<cytoscape.impl.version>3.0.0-alpha10-SNAPSHOT</cytoscape.impl.version>
+               <maven-bundle-plugin.version>2.3.4</maven-bundle-plugin.version>
                <maven.build.timestamp.format>MMMM 
yyyy</maven.build.timestamp.format>
                <buildDate>${maven.build.timestamp}</buildDate>
        </properties>
 
-       <modelVersion>4.0.0</modelVersion>
        <groupId>org.cytoscape.mcode</groupId>
-       <artifactId>mcode-app</artifactId>
-       <version>1.4.0-beta1-SNAPSHOT</version>
-
-       <name>${bundle.symbolicName} [${bundle.namespace}]</name>
-
+       <artifactId>mcode-cy3</artifactId>
+       <name>MCODE</name>
        <packaging>bundle</packaging>
+       <version>1.4.0-beta1</version>
 
        <build>
                <resources>
@@ -37,26 +37,12 @@
                                </excludes>
                        </resource>
                </resources>
-               <!-- Cytoscape requires Java 1.6 -->
+
                <plugins>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-compiler-plugin</artifactId>
-                               <configuration>
-                                       <source>1.6</source>
-                                       <target>1.6</target>
-                                       <optimize>true</optimize>
-                                       <showWarnings>true</showWarnings>
-                                       <showDeprecation>true</showDeprecation>
-                                       <compilerArguments>
-                                               <Xmaxwarns>10000</Xmaxwarns>
-                                               <Xmaxerrs>10000</Xmaxerrs>
-                                       </compilerArguments>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-surefire-plugin</artifactId>
+                               <version>2.12.3</version>
                                <configuration>
                                        
<redirectTestOutputToFile>true</redirectTestOutputToFile>
                                </configuration>
@@ -80,7 +66,7 @@
                                        </instructions>
                                </configuration>
                        </plugin>
-                       <plugin>
+                       <!--plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
                     <version>2.3.1</version>
@@ -91,7 +77,7 @@
                             </manifestEntries>
                         </archive>
                     </configuration>
-            </plugin>
+            </plugin-->
                </plugins>
                <pluginManagement>
                        <plugins>
@@ -134,12 +120,13 @@
                <repository>
                        <id>cytoscape_snapshots</id>
                        <snapshots>
+                               <enabled>true</enabled>
                        </snapshots>
                        <releases>
                                <enabled>false</enabled>
                        </releases>
                        <name>Cytoscape Snapshots</name>
-                       
<url>http://cytoscape.wodaklab.org/nexus/content/repositories/snapshots/</url>
+                       
<url>http://code.cytoscape.org/nexus/content/repositories/snapshots/</url>
                </repository>
                <repository>
                        <id>cytoscape_releases</id>
@@ -147,9 +134,10 @@
                                <enabled>false</enabled>
                        </snapshots>
                        <releases>
+                               <enabled>true</enabled>
                        </releases>
                        <name>Cytoscape Releases</name>
-                       
<url>http://cytoscape.wodaklab.org/nexus/content/repositories/releases/</url>
+                       
<url>http://code.cytoscape.org/nexus/content/repositories/releases/</url>
                </repository>
        </repositories>
 

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/AbstractMCODEAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/AbstractMCODEAction.java
    2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/AbstractMCODEAction.java
    2012-08-29 19:18:56 UTC (rev 30288)
@@ -5,7 +5,6 @@
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.application.swing.AbstractCyAction;
-import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelName;
@@ -24,8 +23,9 @@
        public AbstractMCODEAction(final String name,
                                                           final 
CyApplicationManager applicationManager,
                                                           final 
CySwingApplication swingApplication,
-                                                          final 
CyNetworkViewManager netViewManager) {
-               super(name, applicationManager, 
ActionEnableSupport.ENABLE_FOR_NETWORK, netViewManager);
+                                                          final 
CyNetworkViewManager netViewManager,
+                                                          final String 
enableFor) {
+               super(name, applicationManager, enableFor, netViewManager);
                this.applicationManager = applicationManager;
                this.swingApplication = swingApplication;
                this.netViewManager = netViewManager;

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAboutAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAboutAction.java
       2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAboutAction.java
       2012-08-29 19:18:56 UTC (rev 30288)
@@ -3,6 +3,7 @@
 import java.awt.event.ActionEvent;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.mcode.internal.util.MCODEUtil;
 import org.cytoscape.mcode.internal.view.MCODEAboutDialog;
@@ -61,7 +62,7 @@
                                                        final 
CyNetworkViewManager netViewManager,
                                                        final OpenBrowser 
openBrowser,
                                                        final MCODEUtil 
mcodeUtil) {
-               super(name, applicationManager, swingApplication, 
netViewManager);
+               super(name, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_ALWAYS);
                this.openBrowser = openBrowser;
                this.mcodeUtil = mcodeUtil;
                setPreferredMenu("Apps.MCODE");
@@ -71,7 +72,6 @@
        public void actionPerformed(ActionEvent e) {
                //display about box
                MCODEAboutDialog aboutDialog = new 
MCODEAboutDialog(swingApplication, openBrowser, mcodeUtil);
-               aboutDialog.pack();
                aboutDialog.setVisible(true);
        }
 }

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAnalyzeAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAnalyzeAction.java
     2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEAnalyzeAction.java
     2012-08-29 19:18:56 UTC (rev 30288)
@@ -12,6 +12,7 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.application.events.SetCurrentNetworkEvent;
 import org.cytoscape.application.events.SetCurrentNetworkListener;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelComponent;
@@ -107,7 +108,7 @@
                                                          final 
CyServiceRegistrar registrar,
                                                          final TaskManager<?, 
?> taskManager,
                                                          final MCODEUtil 
mcodeUtil) {
-               super(title, applicationManager, swingApplication, 
netViewManager);
+               super(title, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_NETWORK);
                this.registrar = registrar;
                this.taskManager = taskManager;
                this.mcodeUtil = mcodeUtil;

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODECloseAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODECloseAction.java
       2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODECloseAction.java
       2012-08-29 19:18:56 UTC (rev 30288)
@@ -7,6 +7,7 @@
 import javax.swing.JOptionPane;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelComponent;
@@ -37,7 +38,7 @@
                                                        final 
CyNetworkViewManager netViewManager,
                                                        final 
CyServiceRegistrar registrar,
                                                        final MCODEUtil 
mcodeUtil) {
-               super(name, applicationManager, swingApplication, 
netViewManager);
+               super(name, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_ALWAYS);
                this.registrar = registrar;
                this.mcodeUtil = mcodeUtil;
                setPreferredMenu("Apps.MCODE");

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEDiscardResultAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEDiscardResultAction.java
       2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEDiscardResultAction.java
       2012-08-29 19:18:56 UTC (rev 30288)
@@ -5,6 +5,7 @@
 import javax.swing.JOptionPane;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelComponent;
@@ -32,7 +33,7 @@
                                                                        final 
CyNetworkViewManager netViewManager,
                                                                        final 
CyServiceRegistrar registrar,
                                                                        final 
MCODEUtil mcodeUtil) {
-               super(name, applicationManager, swingApplication, 
netViewManager);
+               super(name, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_ALWAYS);
                this.resultId = resultId;
                this.registrar = registrar;
                this.mcodeUtil = mcodeUtil;

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEHelpAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEHelpAction.java
        2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEHelpAction.java
        2012-08-29 19:18:56 UTC (rev 30288)
@@ -3,6 +3,7 @@
 import java.awt.event.ActionEvent;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.util.swing.OpenBrowser;
 import org.cytoscape.view.model.CyNetworkViewManager;
@@ -58,7 +59,7 @@
                                                   final CySwingApplication 
swingApplication,
                                                   final CyNetworkViewManager 
netViewManager,
                                                   final OpenBrowser 
openBrowser) {
-               super(name, applicationManager, swingApplication, 
netViewManager);
+               super(name, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_ALWAYS);
                this.openBrowser = openBrowser;
                setPreferredMenu("Apps.MCODE");
        }

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEOpenAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEOpenAction.java
        2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEOpenAction.java
        2012-08-29 19:18:56 UTC (rev 30288)
@@ -4,6 +4,7 @@
 import java.util.Properties;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.CytoPanel;
 import org.cytoscape.application.swing.CytoPanelComponent;
@@ -30,7 +31,7 @@
                                                   final CyServiceRegistrar 
registrar,
                                                   final MCODEAnalyzeAction 
analyzeAction,
                                                   final MCODEUtil mcodeUtil) {
-               super(name, applicationManager, swingApplication, 
netViewManager);
+               super(name, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_ALWAYS);
                this.registrar = registrar;
                this.analyzeAction = analyzeAction;
                this.mcodeUtil = mcodeUtil;

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEVisualStyleAction.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEVisualStyleAction.java
 2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/MCODEVisualStyleAction.java
 2012-08-29 19:18:56 UTC (rev 30288)
@@ -4,6 +4,7 @@
 import java.awt.event.ActionEvent;
 
 import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.ActionEnableSupport;
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.application.swing.events.CytoPanelComponentSelectedEvent;
 import 
org.cytoscape.application.swing.events.CytoPanelComponentSelectedListener;
@@ -67,7 +68,7 @@
                                                                  final 
CyNetworkViewManager netViewManager,
                                                                  final 
VisualMappingManager visualMappingMgr,
                                                                  final 
MCODEUtil mcodeUtil) {
-               super(title, applicationManager, swingApplication, 
netViewManager);
+               super(title, applicationManager, swingApplication, 
netViewManager, ActionEnableSupport.ENABLE_FOR_NETWORK);
                this.visualMappingMgr = visualMappingMgr;
                this.mcodeUtil = mcodeUtil;
        }

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/util/MCODEUtil.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/util/MCODEUtil.java
 2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/util/MCODEUtil.java
 2012-08-29 19:18:56 UTC (rev 30288)
@@ -81,10 +81,12 @@
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
 import org.cytoscape.view.presentation.property.values.NodeShape;
 import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualPropertyDependency;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.view.vizmap.VisualStyleFactory;
 import org.cytoscape.view.vizmap.mappings.BoundaryRangeValues;
@@ -575,6 +577,14 @@
                        nodeShapeDm.putMapValue("Seed", 
NodeShapeVisualProperty.RECTANGLE);
                        nodeShapeDm.putMapValue("Unclustered", 
NodeShapeVisualProperty.DIAMOND);
 
+                       // Set node width/height lock
+                       for (VisualPropertyDependency<?> dep : 
appStyle.getAllVisualPropertyDependencies()) {
+                               if (dep.getParentVisualProperty() == 
BasicVisualLexicon.NODE_SIZE &&
+                                               
dep.getVisualProperties().contains(BasicVisualLexicon.NODE_WIDTH) &&
+                                               
dep.getVisualProperties().contains(BasicVisualLexicon.NODE_HEIGHT))
+                                       dep.setDependency(true);
+                       }
+                       
                        appStyle.addVisualMappingFunction(nodeShapeDm);
                }
 

Modified: 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/view/MCODEAboutDialog.java
===================================================================
--- 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/view/MCODEAboutDialog.java
  2012-08-29 18:44:08 UTC (rev 30287)
+++ 
csplugins/trunk/toronto/clopes/mcode/src/main/java/org/cytoscape/mcode/internal/view/MCODEAboutDialog.java
  2012-08-29 19:18:56 UTC (rev 30288)
@@ -1,18 +1,26 @@
 package org.cytoscape.mcode.internal.view;
 
+import java.awt.BorderLayout;
+import java.awt.Component;
 import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
 import java.net.URL;
 
+import javax.swing.JButton;
 import javax.swing.JDialog;
 import javax.swing.JEditorPane;
+import javax.swing.JPanel;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
 import javax.swing.text.html.HTMLEditorKit;
 
 import org.cytoscape.application.swing.CySwingApplication;
 import org.cytoscape.mcode.internal.util.MCODEResources;
+import org.cytoscape.mcode.internal.util.MCODEResources.ImageName;
 import org.cytoscape.mcode.internal.util.MCODEUtil;
-import org.cytoscape.mcode.internal.util.MCODEResources.ImageName;
 import org.cytoscape.util.swing.OpenBrowser;
 
 /**
@@ -58,24 +66,30 @@
 
        private static final long serialVersionUID = 635333288924094273L;
 
+       private final CySwingApplication swingApplication;
        private final OpenBrowser openBrowser;
        private final String version;
        private final String buildDate;
 
        /** Main panel for dialog box */
        private JEditorPane mainContainer;
+       private JPanel buttonPanel;
 
+
        public MCODEAboutDialog(final CySwingApplication swingApplication,
                                                        final OpenBrowser 
openBrowser,
                                                        final MCODEUtil 
mcodeUtil) {
                super(swingApplication.getJFrame(), "About MCODE", false);
+               this.swingApplication = swingApplication;
                this.openBrowser = openBrowser;
-               
                version = mcodeUtil.getProperty("project.version");
                buildDate = mcodeUtil.getProperty("buildDate");
 
                setResizable(false);
-               setContentPane(getMainContainer());
+               getContentPane().add(getMainContainer(), BorderLayout.CENTER);
+               getContentPane().add(getButtonPanel(), BorderLayout.SOUTH);
+               pack();
+               setLocationRelativeTo(getApplicationParent());
        }
 
        private JEditorPane getMainContainer() {
@@ -110,11 +124,51 @@
                                                  "<i>BMC Bioinformatics</i>. 
2003 Jan 13;4(1):2</P></body></html>";
 
                        mainContainer.setText(text);
+                       
+                       mainContainer.addKeyListener(new KeyListener() {
+                               
+                               @Override
+                               public void keyTyped(KeyEvent e) {
+                               }
+                               
+                               @Override
+                               public void keyReleased(KeyEvent e) {
+                                       switch (e.getKeyCode()) {
+                                               case KeyEvent.VK_ENTER:
+                                               case KeyEvent.VK_ESCAPE:
+                                                       dispose();
+                                                       break;
+                                       }
+                               }
+                               
+                               @Override
+                               public void keyPressed(KeyEvent e) {
+                               }
+                       });
                }
 
                return mainContainer;
        }
 
+       private JPanel getButtonPanel() {
+               if (buttonPanel == null) {
+                       buttonPanel = new JPanel();
+                       
+                       JButton button = new JButton("Close");
+                       button.addActionListener(new ActionListener() {
+                               @Override
+                               public void actionPerformed(ActionEvent e) {
+                                       dispose();
+                               }
+                       });
+                       button.setAlignmentX(CENTER_ALIGNMENT);
+                       
+                       buttonPanel.add(button);
+               }
+               
+               return buttonPanel;
+       }
+       
        private class HyperlinkAction implements HyperlinkListener {
 
                public void hyperlinkUpdate(HyperlinkEvent event) {
@@ -123,4 +177,13 @@
                        }
                }
        }
+
+       private Component getApplicationParent() {
+               Component c = swingApplication.getJFrame();
+               
+               while (c.getParent() != null)
+                       c = c.getParent();
+               
+               return c;
+       }
 }

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