Author: kono
Date: 2012-06-15 15:03:26 -0700 (Fri, 15 Jun 2012)
New Revision: 29585

Added:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/customgraphics/CustomGraphicsTranslator.java
Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
Log:
fixes #1123 Custom Graphics value translator had been added.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-06-15 21:20:07 UTC (rev 29584)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-06-15 22:03:26 UTC (rev 29585)
@@ -33,6 +33,7 @@
 import org.cytoscape.ding.impl.NVLTFActionSupport;
 import org.cytoscape.ding.impl.ViewTaskFactoryListener;
 // Annotation api
+import org.cytoscape.ding.impl.customgraphics.CustomGraphicsTranslator;
 import org.cytoscape.ding.impl.cyannotator.api.Annotation;
 // Annotation creation
 import org.cytoscape.ding.impl.cyannotator.create.AnnotationFactory;
@@ -85,6 +86,7 @@
 import org.cytoscape.view.vizmap.VisualPropertyDependencyFactory;
 import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
 import org.cytoscape.view.vizmap.gui.editor.VisualPropertyEditor;
+import org.cytoscape.view.vizmap.mappings.ValueTranslator;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.osgi.framework.BundleContext;
@@ -389,8 +391,11 @@
 
                // Register the factory
                dVisualLexicon.addBendFactory(bendFactory, new HashMap());
-
                
+               // Translator for Passthrough
+               final CustomGraphicsTranslator cgTranslator = new 
CustomGraphicsTranslator(customGraphicsManagerServiceRef);
+               registerService(bc, cgTranslator, ValueTranslator.class, new 
Properties());
+               
                // Factories for Visual Property Dependency
                final NodeSizeDependencyFactory nodeSizeDependencyFactory = new 
NodeSizeDependencyFactory(dVisualLexicon);
                registerService(bc, nodeSizeDependencyFactory, 
VisualPropertyDependencyFactory.class, new Properties());

Added: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/customgraphics/CustomGraphicsTranslator.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/customgraphics/CustomGraphicsTranslator.java
                                (rev 0)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/customgraphics/CustomGraphicsTranslator.java
        2012-06-15 22:03:26 UTC (rev 29585)
@@ -0,0 +1,61 @@
+package org.cytoscape.ding.impl.customgraphics;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
+import org.cytoscape.ding.customgraphics.CyCustomGraphics;
+import org.cytoscape.ding.customgraphics.NullCustomGraphics;
+import org.cytoscape.ding.customgraphics.bitmap.URLImageCustomGraphics;
+import org.cytoscape.view.vizmap.mappings.ValueTranslator;
+
+public class CustomGraphicsTranslator implements ValueTranslator<String, 
CyCustomGraphics>{
+
+       
+       private final CustomGraphicsManager cgManager;
+       
+       public CustomGraphicsTranslator(final CustomGraphicsManager cgManager) {
+               this.cgManager = cgManager;
+       }
+       
+       @Override
+       public CyCustomGraphics translate(String inputValue) {
+               return parse(inputValue);
+       }
+
+       @Override
+       public Class<CyCustomGraphics> getTranslatedValueType() {
+               return CyCustomGraphics.class;
+       }
+       
+       
+       /**
+        * Create a custom graphics from the given URL string.
+        * This code try to access the data source and download the image.
+        * 
+        * @param value String representation of image source URL.
+        * 
+        * @return Image Custom Graphics created from the source image.
+        */
+       private final CyCustomGraphics parse(String value) {
+               if(value == null)
+                       return null;
+               
+               try {
+                       final URL url = new URL(value);
+                       CyCustomGraphics graphics = 
cgManager.getCustomGraphicsBySourceURL(url);
+                       if(graphics == null) {
+                               // Currently not in the Manager.  Need to 
create new instance.
+                               graphics = new 
URLImageCustomGraphics(cgManager.getNextAvailableID(), url.toString());
+                               // Use URL as display name
+                               graphics.setDisplayName(value);
+                               
+                               // Register to manager.
+                               cgManager.addCustomGraphics(graphics, url);
+                       }
+                       return graphics;
+               } catch (IOException e) {
+                       return null;                    
+               }
+       }
+}

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