Author: kono
Date: 2011-04-05 18:01:28 -0700 (Tue, 05 Apr 2011)
New Revision: 24685

Added:
   core3/presentation-impl/trunk/osgi.bnd
   core3/presentation-impl/trunk/pom.xml
   core3/presentation-impl/trunk/src/
   core3/presentation-impl/trunk/src/main/
   core3/presentation-impl/trunk/src/main/java/
   core3/presentation-impl/trunk/src/main/java/org/
   core3/presentation-impl/trunk/src/main/java/org/cytoscape/
   core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/
   core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/
   
core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/internal/
   
core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
   core3/presentation-impl/trunk/src/main/resources/
   core3/presentation-impl/trunk/src/main/resources/META-INF/
   core3/presentation-impl/trunk/src/main/resources/META-INF/spring/
   
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
   core3/presentation-impl/trunk/src/test/
   core3/presentation-impl/trunk/src/test/java/
   core3/presentation-impl/trunk/src/test/java/org/
   core3/presentation-impl/trunk/src/test/java/org/cytoscape/
   core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/
   core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/presentation/
   
core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
Removed:
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/NullDataTypeImpl.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/VisualizableImpl.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/values/
   core3/presentation-api/trunk/src/main/resources/META-INF/
   
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
Modified:
   core3/presentation-api/trunk/osgi.bnd
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/LineTypeVisualProperty.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NodeShapeVisualProperty.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
   
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/VisualPropertyTest.java
Log:
Separated impls to new bundle.

Modified: core3/presentation-api/trunk/osgi.bnd
===================================================================
--- core3/presentation-api/trunk/osgi.bnd       2011-04-06 00:58:00 UTC (rev 
24684)
+++ core3/presentation-api/trunk/osgi.bnd       2011-04-06 01:01:28 UTC (rev 
24685)
@@ -4,4 +4,3 @@
 
 Import-Package: *
 Export-Package: org.cytoscape.view.presentation, 
org.cytoscape.view.presentation.property, 
org.cytoscape.view.presentation.events, 
org.cytoscape.view.presentation.property.values
-Private-Package: org.cytoscape.view.presentation.internal.*

Deleted: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
 2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
 2011-04-06 01:01:28 UTC (rev 24685)
@@ -1,106 +0,0 @@
-package org.cytoscape.view.presentation.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.cytoscape.view.model.View;
-import org.cytoscape.view.model.VisualLexicon;
-import org.cytoscape.view.presentation.RenderingEngine;
-import org.cytoscape.view.presentation.RenderingEngineFactory;
-import org.cytoscape.view.presentation.RenderingEngineManager;
-
-public class RenderingEngineManagerImpl implements RenderingEngineManager {
-
-       private final Map<View<?>, RenderingEngine<?>> renderingEngineMap;
-       
-       private static final String FACTORY_ID_TAG = "id";
-       private static final String DEFAULT_FACTORY_ID = "ding";
-       
-       private VisualLexicon defaultLexicon;
-
-       private final Map<String, RenderingEngineFactory<?>> factoryMap;
-       
-
-       /**
-        * Create an instance of rendering engine manager. This implementation
-        * listens to Presentation events and update its map based on them.
-        */
-       public RenderingEngineManagerImpl() {
-               this.renderingEngineMap = new HashMap<View<?>, 
RenderingEngine<?>>();
-               this.factoryMap = new HashMap<String, 
RenderingEngineFactory<?>>();
-       }
-
-       /**
-        * This method never returns null.
-        */
-       @Override
-       public RenderingEngine<?> getRendringEngine(final View<?> viewModel) {
-               return renderingEngineMap.get(viewModel);
-       }
-
-       @Override
-       public Collection<RenderingEngine<?>> getAllRenderingEngines() {
-               return renderingEngineMap.values();
-       }
-       
-
-       @Override
-       public void addRenderingEngine(final RenderingEngine<?> 
renderingEngine) {
-               final View<?> viewModel = renderingEngine.getViewModel();
-               this.renderingEngineMap.put(viewModel, renderingEngine);
-       }
-       
-
-       @Override
-       public void removeRenderingEngine(RenderingEngine<?> renderingEngine) {
-               final View<?> viewModel = renderingEngine.getViewModel();
-               this.renderingEngineMap.remove(viewModel);
-       }
-       
-
-       @Override
-       public VisualLexicon getDefaultVisualLexicon() {
-               if(defaultLexicon == null)
-                       throw new IllegalStateException("Lexicon is not ready 
yet.");
-               
-               return this.defaultLexicon;
-       }
-       
-       
-       public void addRenderingEngineFactory(
-                       final RenderingEngineFactory<?> factory, Map metadata) {
-               final Object idObject = metadata.get(FACTORY_ID_TAG);
-
-               if (idObject == null)
-                       throw new IllegalArgumentException(
-                                       "Could not add factory: ID metadata is 
missing for RenderingEngineFactory.");
-
-               final String id = idObject.toString();
-
-               this.factoryMap.put(id, factory);
-               
-               // Register default lexicon
-               if(id.equals(DEFAULT_FACTORY_ID)) {
-                       defaultLexicon = factory.getVisualLexicon();
-               }
-                               
-       }
-
-       public void removeRenderingEngineFactory(
-                       final RenderingEngineFactory<?> factory, Map metadata) {
-               final Object idObject = metadata.get(FACTORY_ID_TAG);
-
-               if (idObject == null)
-                       throw new IllegalArgumentException(
-                                       "Could not remove factory: ID metadata 
is missing for RenderingEngineFactory.");
-
-               final String id = idObject.toString();
-
-               RenderingEngineFactory<?> toBeRemoved = 
this.factoryMap.remove(id);
-
-               toBeRemoved = null;
-
-       }
-
-}

Deleted: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/NullDataTypeImpl.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/NullDataTypeImpl.java
  2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/NullDataTypeImpl.java
  2011-04-06 01:01:28 UTC (rev 24685)
@@ -1,10 +0,0 @@
-package org.cytoscape.view.presentation.internal.property;
-
-import org.cytoscape.view.model.NullDataType;
-
-/**
- * Null Object implementation.
- */
-public class NullDataTypeImpl implements NullDataType {
-
-}

Deleted: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/VisualizableImpl.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/VisualizableImpl.java
  2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/internal/property/VisualizableImpl.java
  2011-04-06 01:01:28 UTC (rev 24685)
@@ -1,10 +0,0 @@
-package org.cytoscape.view.presentation.internal.property;
-
-import org.cytoscape.view.model.Visualizable;
-
-/**
- * Implementation of Visualizable.  It's a just an empty class (for now).
- */
-public class VisualizableImpl implements Visualizable {
-
-}

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
  2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
  2011-04-06 01:01:28 UTC (rev 24685)
@@ -7,7 +7,6 @@
 import org.cytoscape.view.model.DiscreteRangeImpl;
 import org.cytoscape.view.model.Range;
 import org.cytoscape.view.model.Visualizable;
-import org.cytoscape.view.presentation.internal.property.VisualizableImpl;
 
 /**
  * Visual Property to represent abstract concept such as Node or Edge. If
@@ -41,5 +40,9 @@
        public Visualizable parseSerializableString(final String text) {
                return visualizable;
        }
+       
+       private static final class VisualizableImpl implements Visualizable {
+               // Dummy class.  Currently this does nothing.
+       }
 
 }
\ No newline at end of file

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/LineTypeVisualProperty.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/LineTypeVisualProperty.java
     2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/LineTypeVisualProperty.java
     2011-04-06 01:01:28 UTC (rev 24685)
@@ -6,24 +6,17 @@
 import org.cytoscape.view.model.AbstractVisualProperty;
 import org.cytoscape.view.model.DiscreteRange;
 import org.cytoscape.view.model.DiscreteRangeImpl;
-import org.cytoscape.view.presentation.internal.property.values.LineTypeImpl;
 import org.cytoscape.view.presentation.property.values.LineType;
 
 public class LineTypeVisualProperty extends AbstractVisualProperty<LineType> {
        
+       // Default basic line types.  Others will be provided from rendering 
engines.
        public static final LineType SOLID = new LineTypeImpl("Solid", "SOLID");
        public static final LineType LONG_DASH = new LineTypeImpl("Dash", 
"LONG_DASH");
        public static final LineType EQUAL_DASH = new LineTypeImpl("Equal 
Dash", "EQUAL_DASH");
        public static final LineType DASH_DOT = new LineTypeImpl( "Dash Dot", 
"DASH_DOT");
        public static final LineType DOT = new LineTypeImpl("Dots", "DOT");
-//     public static final LineType ZIGZAG("zigzag", new ZigzagStroke(1.0f)),
-//     public static final LineType SINEWAVE("sinewave", new 
SineWaveStroke(1.0f)),
-//     public static final LineType VERTICAL_SLASH("vertical_slash",new 
VerticalSlashStroke(1.0f,PipeStroke.Type.VERTICAL)),
-//     public static final LineType FORWARD_SLASH("forward_slash",new 
ForwardSlashStroke(1.0f,PipeStroke.Type.FORWARD)),
-//     public static final LineType BACKWARD_SLASH("backward_slash",new 
BackwardSlashStroke(1.0f,PipeStroke.Type.BACKWARD)),
-//     public static final LineType PARALLEL_LINES("parallel_lines", new 
ParallelStroke(1.0f)),
-//     public static final LineType CONTIGUOUS_ARROW("contiguous_arrow", new 
ContiguousArrowStroke(1.0f)),
-//     public static final LineType SEPARATE_ARROW("separate_arrow", new 
SeparateArrowStroke(1.0f));
+
        
        private static DiscreteRange<LineType> LINE_TYPE_RANGE;
        private static final Set<LineType> lineTypes;
@@ -56,5 +49,17 @@
                // TODO Auto-generated method stub
                return null;
        }
+       
+       private static final class LineTypeImpl extends 
AbstractVisualPropertyValue implements LineType {
 
+               public LineTypeImpl(String displayName, String 
serializableString) {
+                       super(displayName, serializableString);
+               }
+
+               @Override
+               public VisualPropertyValue parseSerializableString(String 
serializableString) {
+                       // TODO Auto-generated method stub
+                       return null;
+               }
+       }
 }

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NodeShapeVisualProperty.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NodeShapeVisualProperty.java
    2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NodeShapeVisualProperty.java
    2011-04-06 01:01:28 UTC (rev 24685)
@@ -6,23 +6,31 @@
 import org.cytoscape.view.model.AbstractVisualProperty;
 import org.cytoscape.view.model.DiscreteRange;
 import org.cytoscape.view.model.DiscreteRangeImpl;
-import org.cytoscape.view.presentation.internal.property.values.NodeShapeImpl;
 import org.cytoscape.view.presentation.property.values.NodeShape;
 
-public final class NodeShapeVisualProperty extends 
AbstractVisualProperty<NodeShape> {
+public final class NodeShapeVisualProperty extends
+               AbstractVisualProperty<NodeShape> {
 
        // Presets
-       public static final NodeShape RECTANGLE = new 
NodeShapeImpl("Rectangle", "RECTANGLE");
-       public static final NodeShape ROUND_RECTANGLE = new 
NodeShapeImpl("Round Rectangle", "ROUND_RECTANGLE");
-       public static final NodeShape TRIANGLE = new NodeShapeImpl("Triangle", 
"TRIANGLE");
-       public static final NodeShape PARALLELOGRAM = new 
NodeShapeImpl("Parallelogram", "PARALLELOGRAM");
-       public static final NodeShape DIAMOND = new NodeShapeImpl("Diamond", 
"DIAMOND");
-       public static final NodeShape ELLIPSE = new NodeShapeImpl("Ellipse", 
"ELLIPSE");
-       public static final NodeShape HEXAGON = new NodeShapeImpl("Hexagon", 
"HEXAGON");
-       public static final NodeShape OCTAGON = new NodeShapeImpl("Octagon", 
"OCTAGON");
+       public static final NodeShape RECTANGLE = new NodeShapeImpl("Rectangle",
+                       "RECTANGLE");
+       public static final NodeShape ROUND_RECTANGLE = new NodeShapeImpl(
+                       "Round Rectangle", "ROUND_RECTANGLE");
+       public static final NodeShape TRIANGLE = new NodeShapeImpl("Triangle",
+                       "TRIANGLE");
+       public static final NodeShape PARALLELOGRAM = new NodeShapeImpl(
+                       "Parallelogram", "PARALLELOGRAM");
+       public static final NodeShape DIAMOND = new NodeShapeImpl("Diamond",
+                       "DIAMOND");
+       public static final NodeShape ELLIPSE = new NodeShapeImpl("Ellipse",
+                       "ELLIPSE");
+       public static final NodeShape HEXAGON = new NodeShapeImpl("Hexagon",
+                       "HEXAGON");
+       public static final NodeShape OCTAGON = new NodeShapeImpl("Octagon",
+                       "OCTAGON");
 
        private static final DiscreteRange<NodeShape> NODE_SHAPE_RANGE;
-       
+
        private static final Set<NodeShape> DEFAULT_SHAPES;
 
        static {
@@ -35,8 +43,9 @@
                DEFAULT_SHAPES.add(ELLIPSE);
                DEFAULT_SHAPES.add(HEXAGON);
                DEFAULT_SHAPES.add(OCTAGON);
-               
-               NODE_SHAPE_RANGE = new 
DiscreteRangeImpl<NodeShape>(NodeShape.class, new 
HashSet<NodeShape>(DEFAULT_SHAPES));
+
+               NODE_SHAPE_RANGE = new 
DiscreteRangeImpl<NodeShape>(NodeShape.class,
+                               new HashSet<NodeShape>(DEFAULT_SHAPES));
        }
 
        public NodeShapeVisualProperty(NodeShape defaultValue, String id,
@@ -55,11 +64,29 @@
                // TODO
                return null;
        }
-       
+
        public static boolean isDefaultShape(final NodeShape shape) {
-               if(DEFAULT_SHAPES.contains(shape))
+               if (DEFAULT_SHAPES.contains(shape))
                        return true;
                else
                        return false;
        }
+
+       private static final class NodeShapeImpl extends
+                       AbstractVisualPropertyValue implements NodeShape {
+
+               public NodeShapeImpl(final String displayName,
+                               final String serializableString) {
+                       super(displayName, serializableString);
+               }
+
+               @Override
+               public VisualPropertyValue parseSerializableString(
+                               String serializableString) {
+                       // TODO Auto-generated method stub
+                       return null;
+               }
+
+       }
+
 }

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
 2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
 2011-04-06 01:01:28 UTC (rev 24685)
@@ -7,7 +7,6 @@
 import org.cytoscape.view.model.DiscreteRangeImpl;
 import org.cytoscape.view.model.NullDataType;
 import org.cytoscape.view.model.Range;
-import org.cytoscape.view.presentation.internal.property.NullDataTypeImpl;
 
 /**
  * Visual Property for root. This will not be used in actual visualization. 
Just
@@ -36,4 +35,8 @@
        public NullDataType parseSerializableString(final String text) {
                return dummyObject;
        }
+       
+       private final static class NullDataTypeImpl implements NullDataType {
+               // Dummy class.  Currently this does nothing.
+       }
 }
\ No newline at end of file

Deleted: 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
===================================================================
--- 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
  2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
  2011-04-06 01:01:28 UTC (rev 24685)
@@ -1,67 +0,0 @@
-package org.cytoscape.view.presentation;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.Collection;
-import java.util.Set;
-
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.presentation.internal.RenderingEngineManagerImpl;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class RenderingEngineManagerTest {
-       
-       private RenderingEngineManager manager;
-
-       @Before
-       public void setUp() throws Exception {
-               
-               manager = new RenderingEngineManagerImpl();
-       }
-
-       @After
-       public void tearDown() throws Exception {
-       }
-
-       @Test
-       public void testRenderingEngineManagerImpl() {
-               assertNotNull(manager);
-       }
-
-       @Test
-       public void testGetRendringEngines() {
-               
-               // First, create mock view models.
-               final CyNetworkView networkView1 = mock(CyNetworkView.class);
-               final CyNetworkView networkView2 = mock(CyNetworkView.class);
-                               
-               final RenderingEngine<CyNetwork> engine1 = 
mock(RenderingEngine.class);
-               when(engine1.getViewModel()).thenReturn(networkView1);
-               final RenderingEngine<CyNetwork> engine2 = 
mock(RenderingEngine.class);
-               when(engine2.getViewModel()).thenReturn(networkView1);
-               final RenderingEngine<CyNetwork> engine3 = 
mock(RenderingEngine.class);
-               when(engine3.getViewModel()).thenReturn(networkView2);
-               
-               final RenderingEngine<?> engine = 
manager.getRendringEngine(networkView1);
-               assertNull(engine);
-               
-               when(engine1.getViewModel()).thenReturn(networkView1);
-               manager.addRenderingEngine(engine1);
-
-               assertEquals(engine1, manager.getRendringEngine(networkView1));
-               
-               // Remove from manager
-               manager.removeRenderingEngine(engine1);
-               
-               assertNull(manager.getRendringEngine(networkView1));
-               
-       }
-}

Modified: 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/VisualPropertyTest.java
===================================================================
--- 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/VisualPropertyTest.java
  2011-04-06 00:58:00 UTC (rev 24684)
+++ 
core3/presentation-api/trunk/src/test/java/org/cytoscape/view/presentation/VisualPropertyTest.java
  2011-04-06 01:01:28 UTC (rev 24685)
@@ -11,8 +11,6 @@
 import org.cytoscape.view.model.NullDataType;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.Visualizable;
-import org.cytoscape.view.presentation.internal.property.NullDataTypeImpl;
-import org.cytoscape.view.presentation.internal.property.VisualizableImpl;
 import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
 import org.cytoscape.view.presentation.property.NullVisualProperty;
 import org.junit.After;
@@ -76,7 +74,6 @@
                
                final VisualProperty<Visualizable> visualizableProp = 
MinimalVisualLexicon.NODE;
                assertEquals(Visualizable.class, 
visualizableProp.getRange().getType());
-               assertTrue(visualizableProp.toSerializableString(new 
VisualizableImpl()).contains("Visualizable"));
                assertTrue(visualizableProp.parseSerializableString("test 
string") instanceof Visualizable );
                
                final VisualProperty<String> stringProp = 
MinimalVisualLexicon.NODE_LABEL;
@@ -86,9 +83,7 @@
                
                final VisualProperty<NullDataType> nullProp = new 
NullVisualProperty("ROOT", "Root Visual Property");
                assertEquals(NullDataType.class, nullProp.getRange().getType());
-               assertTrue(nullProp.toSerializableString(new 
NullDataTypeImpl()).contains("org.cytoscape.view.presentation.internal.property.NullDataTypeImpl"));
-               assertTrue(nullProp.parseSerializableString("test string") 
instanceof NullDataType );
-               
+               assertTrue(nullProp.parseSerializableString("test string") 
instanceof NullDataType );           
        }
 
 }

Added: core3/presentation-impl/trunk/osgi.bnd
===================================================================
--- core3/presentation-impl/trunk/osgi.bnd                              (rev 0)
+++ core3/presentation-impl/trunk/osgi.bnd      2011-04-06 01:01:28 UTC (rev 
24685)
@@ -0,0 +1,6 @@
+#-----------------------------------------------------------------
+# Use this file to add customized Bnd instructions for the bundle
+#-----------------------------------------------------------------
+
+Import-Package: *
+Private-Package: org.cytoscape.view.presentation.internal.*

Added: core3/presentation-impl/trunk/pom.xml
===================================================================
--- core3/presentation-impl/trunk/pom.xml                               (rev 0)
+++ core3/presentation-impl/trunk/pom.xml       2011-04-06 01:01:28 UTC (rev 
24685)
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+
+       <parent>
+               <artifactId>parent</artifactId>
+               <groupId>org.cytoscape</groupId>
+               <version>3.0.0-alpha6-SNAPSHOT</version>
+       </parent>
+
+       <properties>
+               
<bundle.symbolicName>org.cytoscape.presentation-impl</bundle.symbolicName>
+               
<bundle.namespace>org.cytoscape.view.presentation</bundle.namespace>
+       </properties>
+
+       <modelVersion>4.0.0</modelVersion>
+       <groupId>org.cytoscape</groupId>
+       <artifactId>presentation-impl</artifactId>
+       <version>3.0.0-alpha3-SNAPSHOT</version>
+
+       <name>${bundle.symbolicName} [${bundle.namespace}]</name>
+
+       <packaging>bundle</packaging>
+
+       <scm>
+               
<connection>scm:svn:http://chianti.ucsd.edu/svn/core3/presentation-impl/trunk</connection>
+               
<developerConnection>scm:svn:svn+ssh://grenache.ucsd.edu/cellar/common/svn/core3/presentation-impl/trunk</developerConnection>
+               
<url>http://chianti.ucsd.edu/svn/core3/presentation-impl/trunk</url>
+       </scm>
+
+       <build>
+               <resources>
+                       <resource>
+                               <directory>src/main/resources</directory>
+                       </resource>
+                       <!-- | example additional resource entries, useful when 
building Eclipse 
+                               RCP applications -->
+                       <resource>
+                               <directory>.</directory>
+                               <includes>
+                                       <include>plugin.xml</include>
+                                       <include>plugin.properties</include>
+                                       <include>icons/**</include>
+                               </includes>
+                       </resource>
+               </resources>
+               <plugins>
+                       <plugin>
+                               <groupId>org.ops4j</groupId>
+                               <artifactId>maven-pax-plugin</artifactId>
+                               <version>${maven-pax-plugin.version}</version>
+                               <!-- | enable improved OSGi compilation support 
for the bundle life-cycle. 
+                                       | to switch back to the standard bundle 
life-cycle, move this setting | down 
+                                       to the maven-bundle-plugin section -->
+                               <extensions>true</extensions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.felix</groupId>
+                               <artifactId>maven-bundle-plugin</artifactId>
+                               
<version>${maven-bundle-plugin.version}</version>
+                               <!-- | the following instructions build a 
simple set of public/private 
+                                       classes into an OSGi bundle -->
+                               <configuration>
+                                       <instructions>
+                                               
<Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
+                                               
<Bundle-Version>${project.version}</Bundle-Version>
+                                               <!-- | assume public classes 
are in the top package, and private classes 
+                                                       are under ".internal" 
-->
+                                               
<Export-Package>!${bundle.namespace}.internal.*,${bundle.namespace}.*;version="${project.version}"</Export-Package>
+                                               
<Private-Package>${bundle.namespace}.internal.*</Private-Package>
+                                               <!-- | each module can override 
these defaults in their osgi.bnd file -->
+                                               <_include>-osgi.bnd</_include>
+                                       </instructions>
+                               </configuration>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-jar-plugin</artifactId>
+                               <version>${maven-jar-plugin.version}</version>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       <goal>test-jar</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
+
+       <dependencies>
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>presentation-api</artifactId>
+                       <version>3.0.0-alpha3-SNAPSHOT</version>
+               </dependency>
+
+               <!-- For Testing -->
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-all</artifactId>
+                       <version>1.8.1</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+</project>

Added: 
core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
===================================================================
--- 
core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
                                (rev 0)
+++ 
core3/presentation-impl/trunk/src/main/java/org/cytoscape/view/presentation/internal/RenderingEngineManagerImpl.java
        2011-04-06 01:01:28 UTC (rev 24685)
@@ -0,0 +1,106 @@
+package org.cytoscape.view.presentation.internal;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.presentation.RenderingEngine;
+import org.cytoscape.view.presentation.RenderingEngineFactory;
+import org.cytoscape.view.presentation.RenderingEngineManager;
+
+public class RenderingEngineManagerImpl implements RenderingEngineManager {
+
+       private final Map<View<?>, RenderingEngine<?>> renderingEngineMap;
+       
+       private static final String FACTORY_ID_TAG = "id";
+       private static final String DEFAULT_FACTORY_ID = "ding";
+       
+       private VisualLexicon defaultLexicon;
+
+       private final Map<String, RenderingEngineFactory<?>> factoryMap;
+       
+
+       /**
+        * Create an instance of rendering engine manager. This implementation
+        * listens to Presentation events and update its map based on them.
+        */
+       public RenderingEngineManagerImpl() {
+               this.renderingEngineMap = new HashMap<View<?>, 
RenderingEngine<?>>();
+               this.factoryMap = new HashMap<String, 
RenderingEngineFactory<?>>();
+       }
+
+       /**
+        * This method never returns null.
+        */
+       @Override
+       public RenderingEngine<?> getRendringEngine(final View<?> viewModel) {
+               return renderingEngineMap.get(viewModel);
+       }
+
+       @Override
+       public Collection<RenderingEngine<?>> getAllRenderingEngines() {
+               return renderingEngineMap.values();
+       }
+       
+
+       @Override
+       public void addRenderingEngine(final RenderingEngine<?> 
renderingEngine) {
+               final View<?> viewModel = renderingEngine.getViewModel();
+               this.renderingEngineMap.put(viewModel, renderingEngine);
+       }
+       
+
+       @Override
+       public void removeRenderingEngine(RenderingEngine<?> renderingEngine) {
+               final View<?> viewModel = renderingEngine.getViewModel();
+               this.renderingEngineMap.remove(viewModel);
+       }
+       
+
+       @Override
+       public VisualLexicon getDefaultVisualLexicon() {
+               if(defaultLexicon == null)
+                       throw new IllegalStateException("Lexicon is not ready 
yet.");
+               
+               return this.defaultLexicon;
+       }
+       
+       
+       public void addRenderingEngineFactory(
+                       final RenderingEngineFactory<?> factory, Map metadata) {
+               final Object idObject = metadata.get(FACTORY_ID_TAG);
+
+               if (idObject == null)
+                       throw new IllegalArgumentException(
+                                       "Could not add factory: ID metadata is 
missing for RenderingEngineFactory.");
+
+               final String id = idObject.toString();
+
+               this.factoryMap.put(id, factory);
+               
+               // Register default lexicon
+               if(id.equals(DEFAULT_FACTORY_ID)) {
+                       defaultLexicon = factory.getVisualLexicon();
+               }
+                               
+       }
+
+       public void removeRenderingEngineFactory(
+                       final RenderingEngineFactory<?> factory, Map metadata) {
+               final Object idObject = metadata.get(FACTORY_ID_TAG);
+
+               if (idObject == null)
+                       throw new IllegalArgumentException(
+                                       "Could not remove factory: ID metadata 
is missing for RenderingEngineFactory.");
+
+               final String id = idObject.toString();
+
+               RenderingEngineFactory<?> toBeRemoved = 
this.factoryMap.remove(id);
+
+               toBeRemoved = null;
+
+       }
+
+}

Added: 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
                            (rev 0)
+++ 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
    2011-04-06 01:01:28 UTC (rev 24685)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:osgi="http://www.springframework.org/schema/osgi";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+                      http://www.springframework.org/schema/osgi 
http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd";
+       default-lazy-init="false">
+
+
+       <osgi:reference id="cyEventHelperServiceRef" 
interface="org.cytoscape.event.CyEventHelper" />
+
+       <!-- Export Rendering Engine Manager Bean as a Service -->
+       <osgi:service id="renderingEngineManagerService" 
ref="renderingEngineManager"
+               
interface="org.cytoscape.view.presentation.RenderingEngineManager">
+               <osgi:service-properties>
+                       <entry key="service.type" value="manager" />
+               </osgi:service-properties>
+       </osgi:service>
+
+       
+       <osgi:set id="renderingEngineFactorySet"
+               
interface="org.cytoscape.view.presentation.RenderingEngineFactory"
+               cardinality="0..N">
+               <osgi:listener bind-method="addRenderingEngineFactory"
+                       unbind-method="removeRenderingEngineFactory" 
ref="renderingEngineManager" />
+       </osgi:set>
+
+</beans>

Added: 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
                         (rev 0)
+++ 
core3/presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
 2011-04-06 01:01:28 UTC (rev 24685)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:context="http://www.springframework.org/schema/context";
+       xsi:schemaLocation="
+    http://www.springframework.org/schema/beans
+    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+    http://www.springframework.org/schema/context
+    http://www.springframework.org/schema/context/spring-context-2.5.xsd";>
+
+       <context:annotation-config />
+
+       <!-- Rendering Engine Manager service bean -->
+       <bean id="renderingEngineManager"
+               
class="org.cytoscape.view.presentation.internal.RenderingEngineManagerImpl">
+       </bean>
+
+</beans>

Added: 
core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
===================================================================
--- 
core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
                         (rev 0)
+++ 
core3/presentation-impl/trunk/src/test/java/org/cytoscape/view/presentation/RenderingEngineManagerTest.java
 2011-04-06 01:01:28 UTC (rev 24685)
@@ -0,0 +1,67 @@
+package org.cytoscape.view.presentation;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.presentation.internal.RenderingEngineManagerImpl;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class RenderingEngineManagerTest {
+       
+       private RenderingEngineManager manager;
+
+       @Before
+       public void setUp() throws Exception {
+               
+               manager = new RenderingEngineManagerImpl();
+       }
+
+       @After
+       public void tearDown() throws Exception {
+       }
+
+       @Test
+       public void testRenderingEngineManagerImpl() {
+               assertNotNull(manager);
+       }
+
+       @Test
+       public void testGetRendringEngines() {
+               
+               // First, create mock view models.
+               final CyNetworkView networkView1 = mock(CyNetworkView.class);
+               final CyNetworkView networkView2 = mock(CyNetworkView.class);
+                               
+               final RenderingEngine<CyNetwork> engine1 = 
mock(RenderingEngine.class);
+               when(engine1.getViewModel()).thenReturn(networkView1);
+               final RenderingEngine<CyNetwork> engine2 = 
mock(RenderingEngine.class);
+               when(engine2.getViewModel()).thenReturn(networkView1);
+               final RenderingEngine<CyNetwork> engine3 = 
mock(RenderingEngine.class);
+               when(engine3.getViewModel()).thenReturn(networkView2);
+               
+               final RenderingEngine<?> engine = 
manager.getRendringEngine(networkView1);
+               assertNull(engine);
+               
+               when(engine1.getViewModel()).thenReturn(networkView1);
+               manager.addRenderingEngine(engine1);
+
+               assertEquals(engine1, manager.getRendringEngine(networkView1));
+               
+               // Remove from manager
+               manager.removeRenderingEngine(engine1);
+               
+               assertNull(manager.getRendringEngine(networkView1));
+               
+       }
+}

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