Author: kono
Date: 2012-06-08 17:40:52 -0700 (Fri, 08 Jun 2012)
New Revision: 29517

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/impl/DGraphView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingViewModelFactory.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/NetworkViewTestSupport.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNetworkViewTest.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNodeViewTest.java
Log:
fixes #1098 Fit custom graphics size dependency had been fixed.

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-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-06-09 00:40:52 UTC (rev 29517)
@@ -102,6 +102,7 @@
 
        private void startPresentationImpl(BundleContext bc) {
 
+               VisualMappingManager vmmServiceRef = getService(bc, 
VisualMappingManager.class);
                CyServiceRegistrar cyServiceRegistrarServiceRef = 
getService(bc, CyServiceRegistrar.class);
                CyApplicationManager applicationManagerServiceRef = 
getService(bc, CyApplicationManager.class);
                CustomGraphicsManager customGraphicsManagerServiceRef = 
getService(bc, CustomGraphicsManager.class);
@@ -138,7 +139,7 @@
                                cyDataTableFactoryServiceRef, 
cyRootNetworkFactoryServiceRef, undoSupportServiceRef,
                                spacialIndex2DFactoryServiceRef, 
dVisualLexicon, dialogTaskManager,
                                cyServiceRegistrarRef, 
cyNetworkTableManagerServiceRef, cyEventHelperServiceRef,
-                               vtfListener, annotationFactoryManager, 
dingGraphLOD);
+                               vtfListener, annotationFactoryManager, 
dingGraphLOD, vmmServiceRef);
                DingNavigationRenderingEngineFactory 
dingNavigationRenderingEngineFactory = new DingNavigationRenderingEngineFactory(
                                cyServiceRegistrarServiceRef, dVisualLexicon, 
renderingEngineManagerServiceRef,
                                applicationManagerServiceRef);
@@ -152,7 +153,7 @@
                DingViewModelFactory dingNetworkViewFactory = new 
DingViewModelFactory(cyDataTableFactoryServiceRef,
                                cyRootNetworkFactoryServiceRef, 
undoSupportServiceRef, spacialIndex2DFactoryServiceRef, dVisualLexicon,
                                dialogTaskManager, cyServiceRegistrarRef, 
cyNetworkTableManagerServiceRef,
-                               cyEventHelperServiceRef, vtfListener, 
annotationFactoryManager, dingGraphLOD);
+                               cyEventHelperServiceRef, vtfListener, 
annotationFactoryManager, dingGraphLOD, vmmServiceRef);
 
                // Edge Bend editor
                EdgeBendValueEditor edgeBendValueEditor = new 
EdgeBendValueEditor(cyNetworkFactory, dingNetworkViewFactory,
@@ -406,8 +407,9 @@
                CyApplicationConfiguration cyApplicationConfigurationServiceRef 
= getService(bc,
                                CyApplicationConfiguration.class);
                CyEventHelper eventHelperServiceRef = getService(bc, 
CyEventHelper.class);
+
                VisualMappingManager vmmServiceRef = getService(bc, 
VisualMappingManager.class);
-
+               
                CustomGraphicsManagerImpl customGraphicsManager = new 
CustomGraphicsManagerImpl(coreCyPropertyServiceRef,
                                dialogTaskManagerServiceRef, 
cyApplicationConfigurationServiceRef, eventHelperServiceRef,
                                vmmServiceRef, cyApplicationManagerServiceRef, 
getdefaultImageURLs(bc));

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-06-09 00:40:52 UTC (rev 29517)
@@ -132,6 +132,7 @@
 import org.cytoscape.view.model.events.UpdateNetworkPresentationEvent;
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.slf4j.Logger;
@@ -402,6 +403,8 @@
        private final AnnotationFactoryManager annMgr;
 
        private boolean annotationsLoaded = false;
+       
+       private final VisualMappingManager vmm;
 
        /**
         * Create presentation from View Model
@@ -415,10 +418,10 @@
                        DialogTaskManager manager,
                        CyEventHelper eventHelper,
                        CyNetworkTableManager tableMgr,
-                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD) {
+                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
                
                this(view.getModel(), dataFactory, cyRoot, undo, 
spacialFactory, dingLexicon, 
-                               vtfl, manager, eventHelper, tableMgr, annMgr, 
dingGraphLOD);
+                               vtfl, manager, eventHelper, tableMgr, annMgr, 
dingGraphLOD, vmm);
        }
 
        
@@ -445,9 +448,10 @@
                        DialogTaskManager manager,
                        CyEventHelper cyEventHelper,
                        CyNetworkTableManager tableMgr,
-                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD) {
+                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
                super(model);
                this.props = new Properties();
+               this.vmm = vmm;
                
                long start = System.currentTimeMillis();
                logger.debug("Phase 1: rendering start.");
@@ -815,7 +819,7 @@
 
                m_drawPersp.addNode(node);
 
-               final DNodeView dNodeView = new DNodeView(dingLexicon, this, 
nodeInx, node);
+               final DNodeView dNodeView = new DNodeView(dingLexicon, this, 
nodeInx, node, vmm);
 
                m_nodeViewMap.put(node, dNodeView);
                m_spacial.insert(nodeInx, m_defaultNodeXMin, m_defaultNodeYMin, 
m_defaultNodeXMax, m_defaultNodeYMax);

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2012-06-09 00:40:52 UTC (rev 29517)
@@ -76,6 +76,8 @@
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
 import org.cytoscape.view.presentation.property.values.LineType;
 import org.cytoscape.view.presentation.property.values.NodeShape;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualPropertyDependency;
 
 /**
  * DING implementation of View Model and Presentation.
@@ -193,8 +195,9 @@
        // Visual Properties used in this node view.
        private final VisualLexicon lexicon;
 
+       private final VisualMappingManager vmm;
        
-       public DNodeView(final VisualLexicon lexicon, final DGraphView 
graphView, long inx, final CyNode model) {
+       public DNodeView(final VisualLexicon lexicon, final DGraphView 
graphView, long inx, final CyNode model, final VisualMappingManager vmm) {
                super(model);
                
                if (graphView == null)
@@ -203,6 +206,7 @@
                        throw new NullPointerException("Lexicon must never be 
null!");
 
                this.lexicon = lexicon;
+               this.vmm = vmm;
                this.labelPosition = new ObjectPositionImpl();
 
                // Initialize custom graphics pool.
@@ -1256,8 +1260,14 @@
 
                // Check dependency. Sync size or not.
                final VisualProperty<?> cgSizeVP = 
DVisualLexicon.getAssociatedCustomGraphicsSizeVP(vp);
-               final VisualLexiconNode sizeTreeNode = 
lexicon.getVisualLexiconNode(cgSizeVP);
-               //boolean sync = sizeTreeNode.isDepend();
+               Set<VisualPropertyDependency<?>> dependencies = 
vmm.getCurrentVisualStyle().getAllVisualPropertyDependencies();
+               boolean sync = false;
+               for(VisualPropertyDependency dep:dependencies) {
+                       
if(dep.getIdString().equals("nodeCustomGraphicsSizeSync")) {
+                               sync = dep.isDependencyEnabled();
+                               break;
+                       }
+               }
 
                final VisualProperty<ObjectPosition> cgPositionVP = 
DVisualLexicon.getAssociatedCustomGraphicsPositionVP(vp);
                final ObjectPosition positionValue = 
getVisualProperty(cgPositionVP);
@@ -1267,12 +1277,10 @@
                        CustomGraphic newCG = layer.getLayerObject();
                        CustomGraphic finalCG = newCG;
                        
-                       //FIXME
-//                     if (sync) {
-//                             // Size is locked to node size.
-//                             finalCG = syncSize(customGraphics, newCG, 
lexicon.getVisualLexiconNode(BasicVisualLexicon.NODE_WIDTH)
-//                                             .isDepend());
-//                     }
+                       if (sync) {
+                               // Size is locked to node size.
+                               finalCG = syncSize(customGraphics, newCG);
+                       }
                        finalCG = moveCustomGraphicsToNewPosition(finalCG, 
positionValue);
 
                        addCustomGraphic(finalCG);
@@ -1318,7 +1326,7 @@
                this.cgMap.put(parent, currentCG);
        }
 
-       private CustomGraphic syncSize(CyCustomGraphics<?> graphics, final 
CustomGraphic cg, final boolean whLock) {
+       private CustomGraphic syncSize(CyCustomGraphics<?> graphics, final 
CustomGraphic cg) {
 
                final double nodeW = this.getWidth();
                final double nodeH = this.getHeight();
@@ -1335,16 +1343,11 @@
                final AffineTransform scale;
                final float fit = graphics.getFitRatio();
 
-               if (whLock || graphics instanceof VectorCustomGraphics) {
-                       scale = AffineTransform.getScaleInstance(fit * nodeW / 
cgW, fit * nodeH / cgH);
+               // Case 1: node height value is larger than width
+               if (nodeW >= nodeH) {
+                       scale = AffineTransform.getScaleInstance(fit * (nodeW / 
cgW) * (nodeH / nodeW), fit * nodeH / cgH);
                } else {
-                       // Case 1: node height value is larger than width
-                       if (nodeW >= nodeH) {
-                               scale = AffineTransform.getScaleInstance(fit * 
(nodeW / cgW) * (nodeH / nodeW), fit * nodeH / cgH);
-                       } else {
-                               scale = AffineTransform.getScaleInstance(fit * 
nodeW / cgW, fit * (nodeH / cgH) * (nodeW / nodeH));
-                       }
-
+                       scale = AffineTransform.getScaleInstance(fit * nodeW / 
cgW, fit * (nodeH / cgH) * (nodeW / nodeH));
                }
                return new 
CustomGraphic(scale.createTransformedShape(originalShape), 
cg.getPaintFactory());
        }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
     2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
     2012-06-09 00:40:52 UTC (rev 29517)
@@ -23,6 +23,7 @@
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
 import org.cytoscape.view.presentation.RenderingEngineManager;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.slf4j.Logger;
@@ -48,6 +49,7 @@
        private ViewTaskFactoryListener vtfListener;
        
        private DingGraphLOD dingGraphLOD;
+       private final VisualMappingManager vmm;
        
        public DingRenderingEngineFactory(CyTableFactory dataTableFactory,
                        CyRootNetworkManager rootNetworkManager, UndoSupport 
undo,
@@ -57,7 +59,7 @@
                        CyNetworkTableManager tableMgr,
                        CyEventHelper eventHelper,
                        ViewTaskFactoryListener vtfListener,
-                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD) {
+                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
                
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkManager = rootNetworkManager;
@@ -69,6 +71,7 @@
                this.tableMgr = tableMgr;
                this.eventHelper = eventHelper;
                this.annMgr = annMgr;
+               this.vmm=vmm;
 
                this.vtfListener = vtfListener;
                
@@ -111,7 +114,7 @@
                        else
                                dgv = new DGraphView(targetView, 
dataTableFactory,
                                        rootNetworkManager, undo, 
spacialFactory, dingLexicon,
-                                       vtfListener,dialogTaskManager, 
eventHelper, tableMgr, annMgr, dingGraphLOD);
+                                       vtfListener,dialogTaskManager, 
eventHelper, tableMgr, annMgr, dingGraphLOD, vmm);
 
                        logger.info("DGraphView created as a presentation for 
view model: "
                                        + targetView.getSUID());

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingViewModelFactory.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingViewModelFactory.java
   2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingViewModelFactory.java
   2012-06-09 00:40:52 UTC (rev 29517)
@@ -14,6 +14,7 @@
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.slf4j.Logger;
@@ -37,13 +38,14 @@
        private final AnnotationFactoryManager annMgr;
        
        private final DingGraphLOD dingGraphLOD;
+       private final VisualMappingManager vmm;
 
        public DingViewModelFactory(CyTableFactory dataTableFactory, 
CyRootNetworkManager rootNetworkManager,
                        UndoSupport undo, SpacialIndex2DFactory spacialFactory, 
VisualLexicon dingLexicon, 
                        DialogTaskManager dialogTaskManager,
                        CyServiceRegistrar registrar, CyNetworkTableManager 
tableMgr, CyEventHelper eventHelper, 
                        ViewTaskFactoryListener vtfListener,
-                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD) {
+                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
 
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkManager = rootNetworkManager;
@@ -57,6 +59,7 @@
                this.vtfListener = vtfListener;
                this.annMgr = annMgr;
                this.dingGraphLOD = dingGraphLOD;
+               this.vmm=vmm;
        }
 
        @Override
@@ -65,7 +68,7 @@
                        throw new IllegalArgumentException("Cannot create view 
without model.");
 
                final DGraphView dgv = new DGraphView(network, 
dataTableFactory, rootNetworkManager, undo, spacialFactory, dingLexicon,
-                               vtfListener, dialogTaskManager, eventHelper, 
tableMgr, annMgr, dingGraphLOD);
+                               vtfListener, dialogTaskManager, eventHelper, 
tableMgr, annMgr, dingGraphLOD, vmm);
 
                registrar.registerAllServices(dgv, new Properties());
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
    2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
    2012-06-09 00:40:52 UTC (rev 29517)
@@ -26,7 +26,6 @@
                if(NullCustomGraphics.getNullObject().toString().equals(value) 
|| value.contains("NullCustomGraphics")) {
                        return NullCustomGraphics.getNullObject();
                } else {
-                       System.out.println("CG String = " + value);
                        final String[] parts = value.split(",");
                        return new 
DummyCustomGraphics(Long.parseLong(parts[1]), parts[2]);
                }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/NetworkViewTestSupport.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/NetworkViewTestSupport.java
      2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/NetworkViewTestSupport.java
      2012-06-09 00:40:52 UTC (rev 29517)
@@ -15,6 +15,7 @@
 import org.cytoscape.spacial.internal.rtree.RTreeFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 
@@ -40,7 +41,7 @@
                                                       
mock(CyEventHelper.class),
                                                       
mock(ViewTaskFactoryListener.class),
                                                                                
           mock(AnnotationFactoryManager.class),
-                                                                               
           mock(DingGraphLOD.class));
+                                                                               
           mock(DingGraphLOD.class), mock(VisualMappingManager.class));
        }
        
        public CyNetworkView getNetworkView() {

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNetworkViewTest.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNetworkViewTest.java
    2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNetworkViewTest.java
    2012-06-09 00:40:52 UTC (rev 29517)
@@ -23,6 +23,7 @@
 import org.cytoscape.task.NodeViewTaskFactory;
 import org.cytoscape.view.model.AbstractCyNetworkViewTest;
 import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.junit.Before;
@@ -61,6 +62,9 @@
        @Mock
        private DingGraphLOD dingGRaphLOD;
        
+       @Mock
+       private VisualMappingManager vmm;
+       
        private final TableTestSupport tableSupport = new TableTestSupport();
        private final NetworkTestSupport netSupport = new NetworkTestSupport();
 
@@ -78,7 +82,7 @@
                                vtfl,
                                /*nodeViewTFs, edgeViewTFs, emptySpaceTFs, 
dropNodeViewTFs, 
                                dropEmptySpaceTFs, */
-                               manager, eventHelper, tableMgr,annMgr, 
dingGRaphLOD);
+                               manager, eventHelper, tableMgr,annMgr, 
dingGRaphLOD, vmm);
        }
        
        @Override

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNodeViewTest.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNodeViewTest.java
       2012-06-09 00:24:51 UTC (rev 29516)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNodeViewTest.java
       2012-06-09 00:40:52 UTC (rev 29517)
@@ -39,6 +39,7 @@
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
 import org.cytoscape.view.presentation.property.values.NodeShape;
+import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
 import org.junit.After;
@@ -86,6 +87,9 @@
        @Mock
        private DingGraphLOD dingGraphLOD;
        
+       @Mock
+       private VisualMappingManager vmm;
+       
        private final TableTestSupport tableSupport = new TableTestSupport();
        private final NetworkTestSupport netSupport = new NetworkTestSupport();
 
@@ -115,7 +119,7 @@
                networkView = new DGraphView(network, dataFactory, cyRoot, 
undo, spacialFactory, lexicon,
                                vtfl,
                                /*nodeViewTFs, edgeViewTFs, emptySpaceTFs, 
dropNodeViewTFs, 
-                               dropEmptySpaceTFs,*/ manager, eventHelper, 
tableMgr, annMgr, dingGraphLOD);
+                               dropEmptySpaceTFs,*/ manager, eventHelper, 
tableMgr, annMgr, dingGraphLOD, vmm);
                
                dnv1 = (DNodeView) networkView.getDNodeView(node1);
                dnv2 = (DNodeView) networkView.getDNodeView(node2);

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