Author: kono
Date: 2012-05-03 18:35:46 -0700 (Thu, 03 May 2012)
New Revision: 29103
Modified:
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/mappings/ContinuousMappingImpl.java
Log:
fixes #940 Copy Visual Style function fixed.
Modified:
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
===================================================================
---
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
2012-05-04 00:04:55 UTC (rev 29102)
+++
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
2012-05-04 01:35:46 UTC (rev 29103)
@@ -2,6 +2,7 @@
import java.util.Collection;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.cytoscape.service.util.CyServiceRegistrar;
@@ -9,6 +10,13 @@
import org.cytoscape.view.vizmap.VisualMappingFunction;
import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.view.vizmap.VisualStyleFactory;
+import org.cytoscape.view.vizmap.internal.mappings.ContinuousMappingImpl;
+import org.cytoscape.view.vizmap.internal.mappings.DiscreteMappingImpl;
+import org.cytoscape.view.vizmap.internal.mappings.PassthroughMappingImpl;
+import org.cytoscape.view.vizmap.mappings.ContinuousMapping;
+import org.cytoscape.view.vizmap.mappings.ContinuousMappingPoint;
+import org.cytoscape.view.vizmap.mappings.DiscreteMapping;
+import org.cytoscape.view.vizmap.mappings.PassthroughMapping;
public class VisualStyleFactoryImpl implements VisualStyleFactory {
@@ -51,15 +59,64 @@
}
}
+ /**
+ * Copy Mapping functions
+ *
+ * @param original
+ * @param copy
+ */
private void copyMappingFunctions(final VisualStyle original, final
VisualStyle copy) {
- Collection<VisualMappingFunction<?, ?>> allMapping =
original.getAllVisualMappingFunctions();
+ final Collection<VisualMappingFunction<?, ?>> allMapping =
original.getAllVisualMappingFunctions();
for (VisualMappingFunction<?, ?> mapping : allMapping) {
- String attrName = mapping.getMappingColumnName();
- VisualProperty<?> vp = mapping.getVisualProperty();
+ VisualMappingFunction<?, ?> copyMapping = null;
+ if (mapping instanceof PassthroughMapping) {
+ copyMapping =
createPassthrough((PassthroughMapping<?, ?>) mapping);
+ } else if (mapping instanceof ContinuousMapping) {
+ copyMapping =
createContinuous((ContinuousMapping<?, ?>) mapping);
+ } else if (mapping instanceof DiscreteMapping) {
+ copyMapping =
createDiscrete((DiscreteMapping<?, ?>) mapping);
+ }
- // TODO: clone mappings
- // copy.addVisualMappingFunction(mapping);
+ if (copyMapping != null)
+ copy.addVisualMappingFunction(mapping);
}
}
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private <K,V> VisualMappingFunction<K, V> createPassthrough(final
PassthroughMapping<K, V> originalMapping) {
+
+ final String attrName = originalMapping.getMappingColumnName();
+ final Class<K> colType = originalMapping.getMappingColumnType();
+
+ final PassthroughMapping<K, V> copyMapping = new
PassthroughMappingImpl(attrName, colType,
+ originalMapping.getMappingTable(),
originalMapping.getVisualProperty());
+ return copyMapping;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private <K,V> VisualMappingFunction<K, V> createContinuous(final
ContinuousMapping<K, V> originalMapping) {
+ final String attrName = originalMapping.getMappingColumnName();
+ final Class<?> colType = originalMapping.getMappingColumnType();
+
+ final ContinuousMapping<K,V> copyMapping = new
ContinuousMappingImpl(attrName, colType,
+ originalMapping.getMappingTable(),
originalMapping.getVisualProperty());
+ List<ContinuousMappingPoint<K, V>> points =
originalMapping.getAllPoints();
+ for(ContinuousMappingPoint<K, V> point: points)
+ copyMapping.addPoint(point.getValue(),
point.getRange());
+
+ return copyMapping;
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private <K,V> VisualMappingFunction<K,V> createDiscrete(final
DiscreteMapping<K, V> originalMapping) {
+ final String attrName = originalMapping.getMappingColumnName();
+ final Class<K> colType = originalMapping.getMappingColumnType();
+
+ final DiscreteMapping<K, V> copyMapping = new
DiscreteMappingImpl(attrName, colType,
+ originalMapping.getMappingTable(),
originalMapping.getVisualProperty());
+
+ copyMapping.putAll(originalMapping.getAll());
+ return copyMapping;
+ }
}
Modified:
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/mappings/ContinuousMappingImpl.java
===================================================================
---
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/mappings/ContinuousMappingImpl.java
2012-05-04 00:04:55 UTC (rev 29102)
+++
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/mappings/ContinuousMappingImpl.java
2012-05-04 01:35:46 UTC (rev 29103)
@@ -70,7 +70,7 @@
// Contains List of Data Points
private List<ContinuousMappingPoint<K, V>> points;
- ContinuousMappingImpl(final String attrName, final Class<K> attrType,
final CyTable table, final VisualProperty<V> vp) {
+ public ContinuousMappingImpl(final String attrName, final Class<K>
attrType, final CyTable table, final VisualProperty<V> vp) {
super(attrName, attrType, table, vp);
// Validate type. K is always a number.
--
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.