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.