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.