Author: rozagh
Date: 2012-06-12 14:18:24 -0700 (Tue, 12 Jun 2012)
New Revision: 29536

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/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 #1086 set the nestednetworkview in the DNodeView, for this 
CyNetworkViewManager needed to be passed to DNodeView and consequently all 
preceding classes (i.e. DGrahView, DingRenderingEngineFactory and 
DingViewModelFactory)

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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/CyActivator.java
 2012-06-12 21:18:24 UTC (rev 29536)
@@ -61,6 +61,8 @@
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTableFactory;
+import org.cytoscape.model.events.SetNetworkPointerListener;
+import org.cytoscape.model.events.UnsetNetworkPointerListener;
 import org.cytoscape.model.subnetwork.CyRootNetworkManager;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.property.PropertyUpdatedListener;
@@ -75,6 +77,7 @@
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.events.NetworkViewChangedListener;
 import org.cytoscape.view.presentation.RenderingEngineManager;
 import org.cytoscape.view.presentation.property.values.BendFactory;
 import org.cytoscape.view.presentation.property.values.HandleFactory;
@@ -139,7 +142,7 @@
                                cyDataTableFactoryServiceRef, 
cyRootNetworkFactoryServiceRef, undoSupportServiceRef,
                                spacialIndex2DFactoryServiceRef, 
dVisualLexicon, dialogTaskManager,
                                cyServiceRegistrarRef, 
cyNetworkTableManagerServiceRef, cyEventHelperServiceRef,
-                               vtfListener, annotationFactoryManager, 
dingGraphLOD, vmmServiceRef);
+                               vtfListener, annotationFactoryManager, 
dingGraphLOD, vmmServiceRef,cyNetworkViewManagerServiceRef);
                DingNavigationRenderingEngineFactory 
dingNavigationRenderingEngineFactory = new DingNavigationRenderingEngineFactory(
                                cyServiceRegistrarServiceRef, dVisualLexicon, 
renderingEngineManagerServiceRef,
                                applicationManagerServiceRef);
@@ -153,7 +156,7 @@
                DingViewModelFactory dingNetworkViewFactory = new 
DingViewModelFactory(cyDataTableFactoryServiceRef,
                                cyRootNetworkFactoryServiceRef, 
undoSupportServiceRef, spacialIndex2DFactoryServiceRef, dVisualLexicon,
                                dialogTaskManager, cyServiceRegistrarRef, 
cyNetworkTableManagerServiceRef,
-                               cyEventHelperServiceRef, vtfListener, 
annotationFactoryManager, dingGraphLOD, vmmServiceRef);
+                               cyEventHelperServiceRef, vtfListener, 
annotationFactoryManager, dingGraphLOD, vmmServiceRef, 
cyNetworkViewManagerServiceRef);
 
                // Edge Bend editor
                EdgeBendValueEditor edgeBendValueEditor = new 
EdgeBendValueEditor(cyNetworkFactory, dingNetworkViewFactory,
@@ -397,6 +400,7 @@
 
                final CustomGraphicsSizeDependencyFactory 
customGraphicsSizeDependencyFactory = new 
CustomGraphicsSizeDependencyFactory(dVisualLexicon);
                registerService(bc, customGraphicsSizeDependencyFactory, 
VisualPropertyDependencyFactory.class, new Properties());
+
        }
 
        private void startCustomGraphicsMgr(BundleContext 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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-06-12 21:18:24 UTC (rev 29536)
@@ -120,6 +120,7 @@
 import org.cytoscape.util.intr.LongHash;
 import org.cytoscape.util.intr.LongStack;
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
@@ -406,6 +407,8 @@
        
        private final VisualMappingManager vmm;
 
+       private final CyNetworkViewManager netViewMgr; 
+
        /**
         * Create presentation from View Model
         * 
@@ -418,10 +421,11 @@
                        DialogTaskManager manager,
                        CyEventHelper eventHelper,
                        CyNetworkTableManager tableMgr,
-                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
+                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm,
+                       final CyNetworkViewManager netViewMgr) {
                
                this(view.getModel(), dataFactory, cyRoot, undo, 
spacialFactory, dingLexicon, 
-                               vtfl, manager, eventHelper, tableMgr, annMgr, 
dingGraphLOD, vmm);
+                               vtfl, manager, eventHelper, tableMgr, annMgr, 
dingGraphLOD, vmm, netViewMgr);
        }
 
        
@@ -448,7 +452,8 @@
                        DialogTaskManager manager,
                        CyEventHelper cyEventHelper,
                        CyNetworkTableManager tableMgr,
-                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
+                       AnnotationFactoryManager annMgr, final DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm,
+                       final CyNetworkViewManager netViewMgr) {
                super(model);
                this.props = new Properties();
                this.vmm = vmm;
@@ -464,6 +469,7 @@
                this.cyEdgeViewContextMenuFactory = 
vtfl.cyEdgeViewContextMenuFactory;
                this.cyNodeViewContextMenuFactory = 
vtfl.cyNodeViewContexMenuFactory;
                
+               this.netViewMgr = netViewMgr;
                this.manager = manager;
                this.cyEventHelper = cyEventHelper;
                this.annMgr = annMgr;
@@ -819,7 +825,7 @@
 
                m_drawPersp.addNode(node);
 
-               final DNodeView dNodeView = new DNodeView(dingLexicon, this, 
nodeInx, node, vmm);
+               final DNodeView dNodeView = new DNodeView(dingLexicon, this, 
nodeInx, node, vmm, netViewMgr);
 
                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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2012-06-12 21:18:24 UTC (rev 29536)
@@ -41,6 +41,7 @@
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -69,6 +70,8 @@
 import org.cytoscape.graph.render.immed.GraphGraphics;
 import org.cytoscape.graph.render.stateful.CustomGraphic;
 import org.cytoscape.model.CyNode;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualLexiconNode;
 import org.cytoscape.view.model.VisualProperty;
@@ -197,7 +200,10 @@
 
        private final VisualMappingManager vmm;
        
-       public DNodeView(final VisualLexicon lexicon, final DGraphView 
graphView, long inx, final CyNode model, final VisualMappingManager vmm) {
+       private final CyNetworkViewManager netViewMgr; 
+       
+       public DNodeView(final VisualLexicon lexicon, final DGraphView 
graphView, long inx, final CyNode model, final VisualMappingManager vmm,
+                       final CyNetworkViewManager netViewMgr) {
                super(model);
                
                if (graphView == null)
@@ -209,6 +215,8 @@
                this.vmm = vmm;
                this.labelPosition = new ObjectPositionImpl();
 
+               this.netViewMgr = netViewMgr;
+               
                // Initialize custom graphics pool.
                cgMap = new HashMap<VisualProperty<?>, Set<CustomGraphic>>();
 
@@ -1065,13 +1073,15 @@
                                                        IMAGE_HEIGHT);
                                        return new 
TexturePaint(RECURSIVE_NESTED_NETWORK_IMAGE, rect);
                                }
-                               if (nestedNetworkView != null) {
+                               //if (nestedNetworkView == null) //to avoid 
performance penalty
+                                       setNestedNetworkView();
+                               if (nestedNetworkView != null) {                
                        
                                        final double scaleFactor = 
graphView.getGraphLOD().getNestedNetworkImageScaleFactor();
                                        return 
nestedNetworkView.getSnapshot(IMAGE_WIDTH * scaleFactor, IMAGE_HEIGHT * 
scaleFactor);
                                } else {
                                        if (DEFAULT_NESTED_NETWORK_IMAGE == 
null)
                                                return null;
-
+                                       
                                        final Rectangle2D rect = new 
Rectangle2D.Double(-IMAGE_WIDTH / 2, -IMAGE_HEIGHT / 2, IMAGE_WIDTH,
                                                        IMAGE_HEIGHT);
                                        return new 
TexturePaint(DEFAULT_NESTED_NETWORK_IMAGE, rect);
@@ -1082,8 +1092,18 @@
                }
        }
 
-       public void setNestedNetworkView(final DGraphView nestedNetworkView) {
-               this.nestedNetworkView = nestedNetworkView;
+       public void setNestedNetworkView() {
+
+               if(this.getModel().getNetworkPointer() == null)
+                       this.nestedNetworkView = null;
+               else{
+                       List<CyNetworkView> netviews = new 
ArrayList<CyNetworkView>(netViewMgr.getNetworkViews(this.getModel().getNetworkPointer())
 );
+                       if (netviews!= null && !netviews.isEmpty() ) 
+                               this.nestedNetworkView = (DGraphView) 
netviews.get(netviews.size() -1 );
+                       else
+                               this.nestedNetworkView = null;
+               }
+               
        }
 
        /**

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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
     2012-06-12 21:18:24 UTC (rev 29536)
@@ -18,6 +18,7 @@
 import org.cytoscape.service.util.CyServiceRegistrar;
 import org.cytoscape.spacial.SpacialIndex2DFactory;
 import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.presentation.RenderingEngine;
@@ -51,6 +52,8 @@
        private DingGraphLOD dingGraphLOD;
        private final VisualMappingManager vmm;
        
+       private final CyNetworkViewManager netViewMgr; 
+
        public DingRenderingEngineFactory(CyTableFactory dataTableFactory,
                        CyRootNetworkManager rootNetworkManager, UndoSupport 
undo,
                        SpacialIndex2DFactory spacialFactory, VisualLexicon 
dingLexicon,
@@ -59,7 +62,8 @@
                        CyNetworkTableManager tableMgr,
                        CyEventHelper eventHelper,
                        ViewTaskFactoryListener vtfListener,
-                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm) {
+                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm,
+                       final CyNetworkViewManager netViewMgr) {
                
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkManager = rootNetworkManager;
@@ -73,6 +77,8 @@
                this.annMgr = annMgr;
                this.vmm=vmm;
 
+               this.netViewMgr = netViewMgr;
+               
                this.vtfListener = vtfListener;
                
                this.dingGraphLOD = dingGraphLOD;
@@ -114,7 +120,7 @@
                        else
                                dgv = new DGraphView(targetView, 
dataTableFactory,
                                        rootNetworkManager, undo, 
spacialFactory, dingLexicon,
-                                       vtfListener,dialogTaskManager, 
eventHelper, tableMgr, annMgr, dingGraphLOD, vmm);
+                                       vtfListener,dialogTaskManager, 
eventHelper, tableMgr, annMgr, dingGraphLOD, vmm, netViewMgr);
 
                        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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DingViewModelFactory.java
   2012-06-12 21:18:24 UTC (rev 29536)
@@ -13,6 +13,7 @@
 import org.cytoscape.spacial.SpacialIndex2DFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
@@ -40,12 +41,15 @@
        private final DingGraphLOD dingGraphLOD;
        private final VisualMappingManager vmm;
 
+       private final CyNetworkViewManager netViewMgr; 
+
        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, final VisualMappingManager vmm) {
+                       AnnotationFactoryManager annMgr, DingGraphLOD 
dingGraphLOD, final VisualMappingManager vmm,
+                       final CyNetworkViewManager netViewMgr) {
 
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkManager = rootNetworkManager;
@@ -60,6 +64,8 @@
                this.annMgr = annMgr;
                this.dingGraphLOD = dingGraphLOD;
                this.vmm=vmm;
+               
+               this.netViewMgr = netViewMgr;
        }
 
        @Override
@@ -68,7 +74,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, vmm);
+                               vtfListener, dialogTaskManager, eventHelper, 
tableMgr, annMgr, dingGraphLOD, vmm, netViewMgr);
 
                registrar.registerAllServices(dgv, new Properties());
 

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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/NetworkViewTestSupport.java
      2012-06-12 21:18:24 UTC (rev 29536)
@@ -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.model.CyNetworkViewManager;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
 import org.cytoscape.work.undo.UndoSupport;
@@ -41,7 +42,8 @@
                                                       
mock(CyEventHelper.class),
                                                       
mock(ViewTaskFactoryListener.class),
                                                                                
           mock(AnnotationFactoryManager.class),
-                                                                               
           mock(DingGraphLOD.class), mock(VisualMappingManager.class));
+                                                                               
           mock(DingGraphLOD.class), mock(VisualMappingManager.class),
+                                                                               
           mock(CyNetworkViewManager.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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNetworkViewTest.java
    2012-06-12 21:18:24 UTC (rev 29536)
@@ -22,6 +22,7 @@
 import org.cytoscape.task.NetworkViewTaskFactory;
 import org.cytoscape.task.NodeViewTaskFactory;
 import org.cytoscape.view.model.AbstractCyNetworkViewTest;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.work.swing.DialogTaskManager;
@@ -65,6 +66,10 @@
        @Mock
        private VisualMappingManager vmm;
        
+       @Mock
+       private CyNetworkViewManager netViewMgr; 
+
+       
        private final TableTestSupport tableSupport = new TableTestSupport();
        private final NetworkTestSupport netSupport = new NetworkTestSupport();
 
@@ -82,7 +87,7 @@
                                vtfl,
                                /*nodeViewTFs, edgeViewTFs, emptySpaceTFs, 
dropNodeViewTFs, 
                                dropEmptySpaceTFs, */
-                               manager, eventHelper, tableMgr,annMgr, 
dingGRaphLOD, vmm);
+                               manager, eventHelper, tableMgr,annMgr, 
dingGRaphLOD, vmm, netViewMgr);
        }
        
        @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-12 20:39:21 UTC (rev 29535)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/view/DNodeViewTest.java
       2012-06-12 21:18:24 UTC (rev 29536)
@@ -36,6 +36,7 @@
 import org.cytoscape.task.EdgeViewTaskFactory;
 import org.cytoscape.task.NetworkViewTaskFactory;
 import org.cytoscape.task.NodeViewTaskFactory;
+import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
 import org.cytoscape.view.presentation.property.values.NodeShape;
@@ -88,6 +89,9 @@
        private DingGraphLOD dingGraphLOD;
        
        @Mock
+       private CyNetworkViewManager netViewMgr; 
+
+       @Mock
        private VisualMappingManager vmm;
        
        private final TableTestSupport tableSupport = new TableTestSupport();
@@ -119,7 +123,7 @@
                networkView = new DGraphView(network, dataFactory, cyRoot, 
undo, spacialFactory, lexicon,
                                vtfl,
                                /*nodeViewTFs, edgeViewTFs, emptySpaceTFs, 
dropNodeViewTFs, 
-                               dropEmptySpaceTFs,*/ manager, eventHelper, 
tableMgr, annMgr, dingGraphLOD, vmm);
+                               dropEmptySpaceTFs,*/ manager, eventHelper, 
tableMgr, annMgr, dingGraphLOD, vmm, netViewMgr);
                
                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