Author: kono
Date: 2010-10-05 12:59:58 -0700 (Tue, 05 Oct 2010)
New Revision: 22147

Added:
   
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/RestoreImageTask.java
Modified:
   
cytoscape/trunk/application/src/main/java/cytoscape/actions/ShowCustomGraphicsManagerAction.java
   
cytoscape/trunk/application/src/main/java/cytoscape/visual/VisualMappingManager.java
   
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/CustomGraphicsManager.java
   
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/ui/CustomGraphicsManagerDialog.java
Log:
Lazy instantiation for Custom Graphics Manager has been implemented.  It loads 
image library when the GUI is opened.

Modified: 
cytoscape/trunk/application/src/main/java/cytoscape/actions/ShowCustomGraphicsManagerAction.java
===================================================================
--- 
cytoscape/trunk/application/src/main/java/cytoscape/actions/ShowCustomGraphicsManagerAction.java
    2010-10-05 18:01:11 UTC (rev 22146)
+++ 
cytoscape/trunk/application/src/main/java/cytoscape/actions/ShowCustomGraphicsManagerAction.java
    2010-10-05 19:59:58 UTC (rev 22147)
@@ -2,10 +2,14 @@
 
 import java.awt.event.ActionEvent;
 
+import javax.swing.Icon;
 import javax.swing.ImageIcon;
 
 import cytoscape.Cytoscape;
+import cytoscape.task.ui.JTaskConfig;
+import cytoscape.task.util.TaskManager;
 import cytoscape.util.CytoscapeAction;
+import cytoscape.visual.customgraphic.RestoreImageTask;
 import cytoscape.visual.customgraphic.ui.CustomGraphicsManagerDialog;
 
 public class ShowCustomGraphicsManagerAction extends CytoscapeAction {
@@ -13,6 +17,10 @@
        private static final long serialVersionUID = 5876533870116518191L;
 
        private static final String TITLE = "Open Custom Graphics Manager";
+       private static final String ICON_LOCATION = 
"images/ximian/stock_symbol-selection-16.png";
+       private static final Icon ICON =  new 
ImageIcon(Cytoscape.class.getResource(ICON_LOCATION));
+       
+       private static final String MENU_NAME = "View";
 
        private CustomGraphicsManagerDialog manager;
 
@@ -20,14 +28,13 @@
         * Creates a new SetVisualPropertiesAction object.
         */
        public ShowCustomGraphicsManagerAction() {
-               super(TITLE,
-                             new 
ImageIcon(Cytoscape.class.getResource("images/ximian/stock_symbol-selection-16.png")));
-               setPreferredMenu("View");
+               super(TITLE, ICON);
+               setPreferredMenu(MENU_NAME);
                setEnabled(true);
        }
 
        /**
-        * DOCUMENT ME!
+        * Display custom graphics manager
         * 
         * @param e
         *            DOCUMENT ME!
@@ -35,12 +42,26 @@
        public void actionPerformed(ActionEvent e) {
                // Add custom graphics manager
 
-               if (manager == null)
-                       manager = new 
CustomGraphicsManagerDialog(Cytoscape.getDesktop(),
-                                       false);
+               if (manager == null) {
+                       // Create Task
+                       final RestoreImageTask task = new RestoreImageTask();
 
+                       // Configure JTask Dialog Pop-Up Box
+                       final JTaskConfig jTaskConfig = new JTaskConfig();
+
+                       jTaskConfig.displayCancelButton(false);
+                       jTaskConfig.setOwner(Cytoscape.getDesktop());
+                       jTaskConfig.displayCloseButton(false);
+                       jTaskConfig.displayStatus(true);
+                       jTaskConfig.setAutoDispose(true);
+
+                       // Execute Task in New Thread; pop open JTask Dialog 
Box.
+                       TaskManager.executeTask(task, jTaskConfig);
+
+                       manager = new 
CustomGraphicsManagerDialog(Cytoscape.getDesktop(), false);
+               }
+
                manager.setLocationRelativeTo(Cytoscape.getDesktop());
                manager.setVisible(true);
-
        }
 }

Modified: 
cytoscape/trunk/application/src/main/java/cytoscape/visual/VisualMappingManager.java
===================================================================
--- 
cytoscape/trunk/application/src/main/java/cytoscape/visual/VisualMappingManager.java
        2010-10-05 18:01:11 UTC (rev 22146)
+++ 
cytoscape/trunk/application/src/main/java/cytoscape/visual/VisualMappingManager.java
        2010-10-05 19:59:58 UTC (rev 22147)
@@ -103,7 +103,7 @@
        private static final String DEF_STYLE_NAME = "default";
 
        // New in Cytoscape 2.8: Pool of available custom graphics
-       private final CustomGraphicsManager pool;
+       private final CustomGraphicsManager manager;
 
        // New in 2.8: Dynamically manage mappings
        private final RangeValueCalculatorFactory rvcFactory;
@@ -120,7 +120,7 @@
                this.networkView = networkView;
                
                // Creates a repository of static images.
-               pool = new CustomGraphicsManager();
+               manager = new CustomGraphicsManager();
 
                // New in 2.8: dynamically manages object mappings.
                rvcFactory = new RangeValueCalculatorFactoryImpl();
@@ -443,7 +443,7 @@
        }
 
        public CustomGraphicsManager getCustomGraphicsManager() {
-               return pool;
+               return manager;
        }
        
        

Modified: 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/CustomGraphicsManager.java
===================================================================
--- 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/CustomGraphicsManager.java
 2010-10-05 18:01:11 UTC (rev 22146)
+++ 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/CustomGraphicsManager.java
 2010-10-05 19:59:58 UTC (rev 22147)
@@ -26,6 +26,7 @@
 
 import cytoscape.Cytoscape;
 import cytoscape.CytoscapeInit;
+import cytoscape.actions.ShowCustomGraphicsManagerAction;
 import cytoscape.logger.CyLogger;
 import cytoscape.task.ui.JTaskConfig;
 import cytoscape.task.util.TaskManager;
@@ -87,13 +88,13 @@
                Cytoscape.getPropertyChangeSupport().addPropertyChangeListener(
                                Cytoscape.CYTOSCAPE_EXIT, this);
 
-               restoreImages();
+               //restoreImages();
        }
 
        /**
         * Restore images from .cytoscape/images dir.
         */
-       private void restoreImages() {
+       public void restoreImages() {
                final CompletionService<BufferedImage> cs = new 
ExecutorCompletionService<BufferedImage>(
                                imageLoaderService);
 

Added: 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/RestoreImageTask.java
===================================================================
--- 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/RestoreImageTask.java
                              (rev 0)
+++ 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/RestoreImageTask.java
      2010-10-05 19:59:58 UTC (rev 22147)
@@ -0,0 +1,64 @@
+package cytoscape.visual.customgraphic;
+
+import cytoscape.Cytoscape;
+import cytoscape.logger.CyLogger;
+import cytoscape.task.Task;
+import cytoscape.task.TaskMonitor;
+
+public class RestoreImageTask implements Task {
+       
+       private TaskMonitor taskMonitor;
+
+       private static final CyLogger logger = CyLogger.getLogger();
+
+
+       /**
+        * Execute task.<br>
+        */
+       public void run() {
+               taskMonitor
+                               .setStatus("Loding image library from local 
disk.\n\nPlease wait...");
+               taskMonitor.setPercentCompleted(-1);
+               
+
+               final long startTime = System.currentTimeMillis();
+               final CustomGraphicsManager manager = 
Cytoscape.getVisualMappingManager()
+                               .getCustomGraphicsManager();
+
+               manager.restoreImages();
+
+               long endTime = System.currentTimeMillis();
+               double sec = (endTime - startTime) / (1000.0);
+               logger.info("Image saving process finished in " + sec + " 
sec.");
+       }
+
+       /**
+        * Halts the Task: Not Currently Implemented.
+        */
+       public void halt() {
+               // Task can not currently be halted.
+       }
+
+       /**
+        * Sets the Task Monitor.
+        * 
+        * @param taskMonitor
+        *            TaskMonitor Object.
+        */
+       public void setTaskMonitor(TaskMonitor taskMonitor)
+                       throws IllegalThreadStateException {
+               this.taskMonitor = taskMonitor;
+       }
+
+       /**
+        * Gets the Task Title.
+        * 
+        * @return Task Title.
+        */
+       public String getTitle() {
+               return "Loading Image Library";
+       }
+       
+       
+       
+}

Modified: 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/ui/CustomGraphicsManagerDialog.java
===================================================================
--- 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/ui/CustomGraphicsManagerDialog.java
        2010-10-05 18:01:11 UTC (rev 22146)
+++ 
cytoscape/trunk/application/src/main/java/cytoscape/visual/customgraphic/ui/CustomGraphicsManagerDialog.java
        2010-10-05 19:59:58 UTC (rev 22147)
@@ -33,12 +33,12 @@
        private final CustomGraphicsDetailPanel detail;
        
        // Manager object for on-memory graphics.
-       private final CustomGraphicsManager pool;
+       private final CustomGraphicsManager manager;
 
        /** Creates new form CustomGraphicsManagerDialog */
        public CustomGraphicsManagerDialog(java.awt.Frame parent, boolean 
modal) {
                super(parent, modal);
-               pool = 
Cytoscape.getVisualMappingManager().getCustomGraphicsManager();
+               manager = 
Cytoscape.getVisualMappingManager().getCustomGraphicsManager();
                initComponents();
                try {
                        browser = new CustomGraphicsBrowser();
@@ -190,7 +190,7 @@
                                final CyCustomGraphics cg = new 
URLImageCustomGraphics(
                                                file.toString(), img);
                                try {
-                                       pool.addGraphics(cg, 
file.toURI().toURL());
+                                       manager.addGraphics(cg, 
file.toURI().toURL());
                                } catch (MalformedURLException e) {
                                        e.printStackTrace();
                                        continue;
@@ -205,7 +205,7 @@
                for(Object g: toBeRemoved) {
                        final CyCustomGraphics cg = (CyCustomGraphics) g;
                        browser.removeCustomGraphics(cg);
-                       pool.removeGraphics(cg.getIdentifier());
+                       manager.removeGraphics(cg.getIdentifier());
                }
        }
 

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