Author: kono
Date: 2010-10-28 18:21:10 -0700 (Thu, 28 Oct 2010)
New Revision: 22653

Modified:
   
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualMappingManager.java
   
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyleFactory.java
   
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualMappingManagerTest.java
   
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualStyleFactoryTest.java
   
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi-vizmapper.xml
   
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-vizmapper.xml
   
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
   
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
   
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
   
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualMappingManagerTest.java
   
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualStyleTest.java
Log:
Default Visual Style will be imported as a service for VisualMappingManager.  
VizmapGUI should use it.

Modified: 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualMappingManager.java
===================================================================
--- 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualMappingManager.java
    2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualMappingManager.java
    2010-10-29 01:21:10 UTC (rev 22653)
@@ -73,7 +73,9 @@
         * @param networkViewModel
         *            Target network view
         * 
-        * @return VisualStyle associated with the network view model.
+        * @return VisualStyle associated with the network view model. This is
+        *         always non-null value. If there is no mapping from given view
+        *         model to a style, then default style will be used.
         */
        VisualStyle getVisualStyle(final CyNetworkView networkViewModel);
 
@@ -84,21 +86,28 @@
         * 
         */
        Set<VisualStyle> getAllVisualStyles();
-       
-       
+
        /**
         * Add a new {...@link VisualStyle} to this manager.
         * 
-        * @param visualStyle new visual style to be registered.
+        * @param visualStyle
+        *            new visual style to be registered.
         */
        void addVisualStyle(final VisualStyle visualStyle);
-       
-       
+
        /**
         * Remove a VisualStyle from this manager.
         * 
-        * @param visualStyle VisualStyle to be removed.
+        * @param visualStyle
+        *            VisualStyle to be removed.
         */
        void removeVisualStyle(VisualStyle visualStyle);
 
+       /**
+        * Return default {...@link VisualStyle}.  This is just an empty visual 
style.
+        * 
+        * @return default Visual Style.
+        */
+       VisualStyle getDefaultVisualStyle();
+
 }

Modified: 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyleFactory.java
===================================================================
--- 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyleFactory.java
      2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyleFactory.java
      2010-10-29 01:21:10 UTC (rev 22653)
@@ -18,7 +18,7 @@
         *
         * @return New VisualStyle object.
         */
-       VisualStyle createVisualStyle(final String title, final VisualLexicon 
lexicon);
+       VisualStyle getInstance(final String title, final VisualLexicon 
lexicon);
        
        
        /**
@@ -30,6 +30,6 @@
         * @return New VisualStyle copied from the original.
         * 
         */
-       VisualStyle createVisualStyle(final VisualStyle original);
+       VisualStyle getInstance(final VisualStyle original);
 
 }

Modified: 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualMappingManagerTest.java
===================================================================
--- 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualMappingManagerTest.java
        2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualMappingManagerTest.java
        2010-10-29 01:21:10 UTC (rev 22653)
@@ -3,7 +3,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
 
 import org.cytoscape.view.model.CyNetworkView;
 import org.junit.Test;
@@ -11,6 +11,7 @@
 public abstract class AbstractVisualMappingManagerTest {
 
        protected VisualMappingManager vmm;
+       protected VisualStyle defaultStyle;
 
        @Test
        public void testVisualMappingManager() {
@@ -21,18 +22,29 @@
        public void testGetAndSetVisualStyle() {
                final VisualStyle style1 = mock(VisualStyle.class);
                final VisualStyle style2 = mock(VisualStyle.class);
+               final VisualStyle style3 = mock(VisualStyle.class);
                
                final CyNetworkView view1 = mock(CyNetworkView.class);
                final CyNetworkView view2 = mock(CyNetworkView.class);
+               final CyNetworkView view3 = mock(CyNetworkView.class);
                
                assertNotNull(vmm.getAllVisualStyles());
-               assertEquals(0, vmm.getAllVisualStyles().size());
                
+               //Should contain default style.
+               assertEquals(1, vmm.getAllVisualStyles().size());
+               assertEquals(defaultStyle, vmm.getDefaultVisualStyle());
+               
                vmm.setVisualStyle(style1, view1);
                vmm.addVisualStyle(style2);
                vmm.setVisualStyle(style2, view2);
+               final VisualStyle targetStyle = vmm.getVisualStyle(view3);
                
-               assertEquals(2, vmm.getAllVisualStyles().size());
+               assertEquals(defaultStyle, targetStyle);
+               assertEquals(3, vmm.getAllVisualStyles().size());
+               
+               vmm.setVisualStyle(style3, view3);
+               assertEquals(4, vmm.getAllVisualStyles().size());
+               assertEquals(style3, vmm.getVisualStyle(view3));
        }
 
 

Modified: 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualStyleFactoryTest.java
===================================================================
--- 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualStyleFactoryTest.java
  2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-api/trunk/src/test/java/org/cytoscape/view/vizmap/AbstractVisualStyleFactoryTest.java
  2010-10-29 01:21:10 UTC (rev 22653)
@@ -29,12 +29,12 @@
                assertNotNull(lexicon);
                
                final String title = "original style";
-               final VisualStyle style = factory.createVisualStyle(title, 
lexicon);
+               final VisualStyle style = factory.getInstance(title, lexicon);
                
                assertNotNull(style);
                assertEquals(lexicon, style.getVisualLexicon());
                
-               final VisualStyle copyStyle = factory.createVisualStyle(style);
+               final VisualStyle copyStyle = factory.getInstance(style);
                assertNotNull(copyStyle);
 
                assertEquals(title, copyStyle.getTitle());

Modified: 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi-vizmapper.xml
===================================================================
--- 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi-vizmapper.xml
    2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi-vizmapper.xml
    2010-10-29 01:21:10 UTC (rev 22653)
@@ -5,6 +5,10 @@
                       http://www.springframework.org/schema/osgi 
http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd";
        default-lazy-init="false">
 
+
+       <!-- Export Ding's default VS as service. -->
+       <osgi:service id="defaultVSService" ref="defaultVS" 
auto-export="interfaces" />
+       
        <!-- Export Service Listeners -->
        <osgi:service id="selectedVisualStyleManagerService" 
ref="selectedVisualStyleManager" auto-export="interfaces" />
        

Modified: 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-vizmapper.xml
===================================================================
--- 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-vizmapper.xml
 2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-gui-impl/trunk/src/main/resources/META-INF/spring/bundle-context-vizmapper.xml
 2010-10-29 01:21:10 UTC (rev 22653)
@@ -14,8 +14,7 @@
 
        <!-- Setting (property) file for VizMapper GUI. This bean can be 
injected 
                as a regular Java Property object. -->
-       <util:properties id="vizmapUIResource"
-               location="/META-INF/spring/config/vizmapui.properties" />
+       <util:properties id="vizmapUIResource" 
location="/META-INF/spring/config/vizmapui.properties" />
 
        <context:property-placeholder
                location="/META-INF/spring/config/vizmapui.properties" />

Modified: 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
      2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
      2010-10-29 01:21:10 UTC (rev 22653)
@@ -50,6 +50,8 @@
  *
  */
 public class VisualMappingManagerImpl implements VisualMappingManager {
+       
+       private VisualStyle defaultStyle;
 
        private final Map<CyNetworkView, VisualStyle> network2VisualStyleMap;
        private final Set<VisualStyle> visualStyles;
@@ -57,14 +59,26 @@
        private final CyEventHelper cyEventHelper;
 
        public VisualMappingManagerImpl(final CyEventHelper eventHelper) {
-               if (eventHelper == null)
-                       throw new IllegalArgumentException("CyEventHelper 
cannot be null");
+               if(eventHelper == null)
+                       throw new NullPointerException("CyEventHelper cannot be 
null");
 
                this.cyEventHelper = eventHelper;
 
                visualStyles = new HashSet<VisualStyle>();
                network2VisualStyleMap = new HashMap<CyNetworkView, 
VisualStyle>();
        }
+       
+       /**
+        * This is for OSGi service listener.
+        */
+       public void addDefaultStyle(final VisualStyle defaultStyle, Map props) {
+               this.defaultStyle = defaultStyle;
+               visualStyles.add(this.defaultStyle);
+       }
+       
+       public void removeDefaultStyle(final VisualStyle defaultStyle, Map 
props) {
+               // TODO: support multiple engines!
+       }
 
        /**
         * Get VisualStyle for the given view model.
@@ -78,9 +92,15 @@
        public VisualStyle getVisualStyle(CyNetworkView nv) {
                if(nv == null)
                        throw new NullPointerException("network view is null.");
-               if(network2VisualStyleMap.containsKey(nv) == false)
-                       throw new IllegalArgumentException("No such network 
view is registered in this manager.");
                
+               if(network2VisualStyleMap.containsKey(nv) == false) {
+                       if(this.defaultStyle == null)
+                               throw new IllegalStateException("No rendering 
engine is available, and cannot create default style!");
+                       
+                       // Not registered yet.  Provide default style.
+                       network2VisualStyleMap.put(nv, defaultStyle);
+                       return defaultStyle;
+               }
                return network2VisualStyleMap.get(nv);
        }
 
@@ -116,6 +136,8 @@
        @Override public void removeVisualStyle(VisualStyle vs) {
                if(vs == null)
                        throw new NullPointerException("Visual Style is null.");
+               if(vs == defaultStyle)
+                       throw new IllegalArgumentException("Cannot remove 
default visual style.");
                
                if(this.network2VisualStyleMap.values().contains(vs))
                        throw new IllegalArgumentException("Visual Style is 
associated with a view and cannot be removed.");
@@ -145,4 +167,9 @@
        public Set<VisualStyle> getAllVisualStyles() {
                return visualStyles;
        }
+
+       @Override
+       public VisualStyle getDefaultVisualStyle() {
+               return defaultStyle;
+       }
 }

Modified: 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
        2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
        2010-10-29 01:21:10 UTC (rev 22653)
@@ -18,7 +18,7 @@
        }
 
        @Override
-       public VisualStyle createVisualStyle(final VisualStyle original) {
+       public VisualStyle getInstance(final VisualStyle original) {
                final VisualStyle copyVS = new 
VisualStyleImpl(original.getTitle(), original.getVisualLexicon());
                
                // TODO: copy everything! This is incomplete
@@ -37,7 +37,7 @@
        
 
        @Override
-       public VisualStyle createVisualStyle(String title, final VisualLexicon 
lexicon) {
+       public VisualStyle getInstance(String title, final VisualLexicon 
lexicon) {
                return new VisualStyleImpl(title, lexicon);
        }
 

Modified: 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
  2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
  2010-10-29 01:21:10 UTC (rev 22653)
@@ -18,5 +18,15 @@
 
        <!-- Import Services -->
        <osgi:reference id="cyEventHelperServiceRef" 
interface="org.cytoscape.event.CyEventHelper" />
+       
+       
+       <!-- Import Default Style. -->
+       <osgi:set id="defaultStyleSet"
+               interface="org.cytoscape.view.vizmap.VisualStyle"
+               cardinality="0..N">
+               <osgi:listener bind-method="addDefaultStyle"
+                       unbind-method="removeDefaultStyle" 
ref="visualMappingManager" />
 
+       </osgi:set>
+
 </beans>

Modified: 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
    2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml   
    2010-10-29 01:21:10 UTC (rev 22653)
@@ -18,6 +18,7 @@
 
        <context:annotation-config />
 
+       
        <bean id="visualMappingManager"
                
class="org.cytoscape.view.vizmap.internal.VisualMappingManagerImpl">
                <constructor-arg ref="cyEventHelperServiceRef" />

Modified: 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualMappingManagerTest.java
===================================================================
--- 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualMappingManagerTest.java
       2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualMappingManagerTest.java
       2010-10-29 01:21:10 UTC (rev 22653)
@@ -1,7 +1,7 @@
 package org.cytoscape.view.vizmap;
 
 
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
 
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.view.vizmap.internal.VisualMappingManagerImpl;
@@ -15,7 +15,13 @@
        @Before
        public void setUp() throws Exception {
                final CyEventHelper eventHelper = mock(CyEventHelper.class);
+               defaultStyle = mock(VisualStyle.class);
+               when(defaultStyle.getTitle()).thenReturn("DEFAULT");
+               
                vmm = new VisualMappingManagerImpl(eventHelper);
+               
+               // In the real implementations, this will be done through OSGi.
+               ((VisualMappingManagerImpl)vmm).addDefaultStyle(defaultStyle, 
null);
        }
 
        @After

Modified: 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualStyleTest.java
===================================================================
--- 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualStyleTest.java
        2010-10-29 01:01:46 UTC (rev 22652)
+++ 
core3/vizmap-impl/trunk/src/test/java/org/cytoscape/view/vizmap/VisualStyleTest.java
        2010-10-29 01:21:10 UTC (rev 22653)
@@ -27,7 +27,7 @@
                                helperMock);
                originalTitle = "Style 1";
                newTitle = "Style 2";
-               style = visualStyleFactory.createVisualStyle(originalTitle, 
lexicon);
+               style = visualStyleFactory.getInstance(originalTitle, lexicon);
        }
 
        @After

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