Author: kono
Date: 2012-01-12 17:32:23 -0800 (Thu, 12 Jan 2012)
New Revision: 28010
Added:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/ObjectPositionTest.java
Removed:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ArrowShapeTwoDVisualProperty.java
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPosition.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ObjectPositionImpl.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ObjectPositionVisualProperty.java
Log:
Parse/Serialize methods are implemented for ObjectPosition.
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPosition.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPosition.java
2012-01-13 00:44:37 UTC (rev 28009)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/ObjectPosition.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -78,28 +78,10 @@
*/
public void setOffsetY(double d);
+
/**
- * DOCUMENT ME!
- *
- * @param lp DOCUMENT ME!
- *
- * @return DOCUMENT ME!
+ * Create a short String to be used by reader/writer.
+ * @return serialized string.
*/
- @Override
- public boolean equals(Object position);
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- @Override
- public String toString();
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public String shortString();
+ String toSerializableString();
}
\ No newline at end of file
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
2012-01-13 00:44:37 UTC (rev 28009)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -40,7 +40,6 @@
import org.cytoscape.ding.Bend;
import org.cytoscape.ding.DArrowShape;
import org.cytoscape.ding.EdgeView;
-import org.cytoscape.ding.impl.visualproperty.ArrowShapeTwoDVisualProperty;
import org.cytoscape.ding.impl.visualproperty.EdgeBendVisualProperty;
import org.cytoscape.graph.render.immed.EdgeAnchors;
import org.cytoscape.graph.render.immed.GraphGraphics;
@@ -51,7 +50,6 @@
import org.cytoscape.util.intr.IntEnumerator;
import org.cytoscape.util.intr.IntObjHash;
import org.cytoscape.util.intr.MinIntHeap;
-import org.cytoscape.view.presentation.property.ArrowShapeVisualProperty;
import org.cytoscape.view.presentation.property.values.ArrowShape;
import org.cytoscape.view.presentation.property.values.LineType;
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ObjectPositionImpl.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ObjectPositionImpl.java
2012-01-13 00:44:37 UTC (rev 28009)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ObjectPositionImpl.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -6,6 +6,8 @@
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.cytoscape.ding.Justification;
import org.cytoscape.ding.ObjectPosition;
@@ -13,7 +15,7 @@
/**
-*
+* An implementation of {@link ObjectPosition}.
*/
public class ObjectPositionImpl implements ObjectPosition {
@@ -36,8 +38,7 @@
/**
* Copy constructor
*
- * @param lp
- * DOCUMENT ME!
+ * @param p original position.
*/
public ObjectPositionImpl(final ObjectPosition p) {
targetAnchor = p.getTargetAnchor();
@@ -71,101 +72,57 @@
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#getLabelAnchor()
- */
+ @Override
public Position getAnchor() {
return objectAnchor;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#getTargetAnchor()
- */
+ @Override
public Position getTargetAnchor() {
return targetAnchor;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#getJustify()
- */
+ @Override
public Justification getJustify() {
return justify;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#getOffsetX()
- */
+ @Override
public double getOffsetX() {
return xOffset;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#getOffsetY()
- */
+ @Override
public double getOffsetY() {
return yOffset;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#setLabelAnchor(int)
- */
+ @Override
public void setAnchor(Position p) {
objectAnchor = p;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#setTargetAnchor(int)
- */
+ @Override
public void setTargetAnchor(Position p) {
targetAnchor = p;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#setJustify(int)
- */
+ @Override
public void setJustify(Justification j) {
justify = j;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#setOffsetX(double)
- */
+ @Override
public void setOffsetX(double d) {
xOffset = d;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#setOffsetY(double)
- */
+ @Override
public void setOffsetY(double d) {
yOffset = d;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#equals(java.lang.Object)
- */
+ @Override
public boolean equals(Object lp) {
// Accepts non-null ObjectPosition only.
if (lp == null || lp instanceof ObjectPosition == false)
@@ -175,31 +132,27 @@
if (Math.abs(p.getOffsetX() - xOffset) > 0.0000001)
return false;
-
+
if (Math.abs(p.getOffsetY() - yOffset) > 0.0000001)
return false;
-
+
if (p.getAnchor() != objectAnchor)
return false;
if (p.getTargetAnchor() != targetAnchor)
return false;
-
+
if (p.getJustify() != justify)
return false;
return true;
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#toString()
- */
+
@Override public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("target: ").append(targetAnchor.getName());
- sb.append(" label: ").append(objectAnchor.getName());
+ sb.append(" object: ").append(objectAnchor.getName());
sb.append(" justify: ").append(justify.getName());
sb.append(" X offset: ").append(Double.toString(xOffset));
sb.append(" Y offset: ").append(Double.toString(yOffset));
@@ -207,14 +160,10 @@
return sb.toString();
}
- /*
- * (non-Javadoc)
- *
- * @see cytoscape.visual.ObjectPosition#shortString()
- */
- @Override public String shortString() {
+
+ private String shortString() {
// force the locale to US so that we consistently serialize
- DecimalFormat df = new DecimalFormat("#0.00;-#0.00", new
DecimalFormatSymbols(Locale.US));
+ final DecimalFormat df = new DecimalFormat("#0.00;-#0.00", new
DecimalFormatSymbols(Locale.US));
final StringBuilder sb = new StringBuilder();
sb.append(targetAnchor.getShortName());
@@ -229,4 +178,34 @@
return sb.toString();
}
+
+
+ @Override
+ public String toSerializableString() {
+ return shortString();
+ }
+
+
+ /**
+ *
+ * @param serializableString
+ * @return Never returns null. If invalid, simply returns default.
+ */
+ public static ObjectPosition parse(String serializableString) {
+ final Pattern p = Pattern
+
.compile("^([NSEWC]{1,2}+),([NSEWC]{1,2}+),([clr]{1}+),(-?\\d+(.\\d+)?),(-?\\d+(.\\d+)?)$");
+ final Matcher m = p.matcher(serializableString);
+
+ if (m.matches()) {
+ final ObjectPosition lp = new ObjectPositionImpl();
+ lp.setTargetAnchor(Position.parse(m.group(1)));
+ lp.setAnchor(Position.parse(m.group(2)));
+ lp.setJustify(Justification.parse(m.group(3)));
+ lp.setOffsetX(Double.parseDouble(m.group(4)));
+ lp.setOffsetY(Double.parseDouble(m.group(6)));
+ return lp;
+ }
+
+ return DEFAULT_POSITION;
+ }
}
Deleted:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ArrowShapeTwoDVisualProperty.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ArrowShapeTwoDVisualProperty.java
2012-01-13 00:44:37 UTC (rev 28009)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ArrowShapeTwoDVisualProperty.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -1,73 +0,0 @@
-/*
- Copyright (c) 2008, The Cytoscape Consortium (www.cytoscape.org)
-
- The Cytoscape Consortium is:
- - Institute for Systems Biology
- - University of California San Diego
- - Memorial Sloan-Kettering Cancer Center
- - Institut Pasteur
- - Agilent Technologies
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2.1 of the License, or
- any later version.
-
- This library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and
- documentation provided hereunder is on an "as is" basis, and the
- Institute for Systems Biology and the Whitehead Institute
- have no obligations to provide maintenance, support,
- updates, enhancements or modifications. In no event shall the
- Institute for Systems Biology and the Whitehead Institute
- be liable to any party for direct, indirect, special,
- incidental or consequential damages, including lost profits, arising
- out of the use of this software and its documentation, even if the
- Institute for Systems Biology and the Whitehead Institute
- have been advised of the possibility of such damage. See
- the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this library; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-package org.cytoscape.ding.impl.visualproperty;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.cytoscape.ding.DArrowShape;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.DiscreteRange;
-import org.cytoscape.view.model.Range;
-
-public class ArrowShapeTwoDVisualProperty extends
AbstractVisualProperty<DArrowShape> {
-
- private static final Range<DArrowShape> ARROW_SHAPE_RANGE;
-
- static {
- final Set<DArrowShape> arrowSet = new HashSet<DArrowShape>();
-
- for (final DArrowShape arrow : DArrowShape.values())
- arrowSet.add(arrow);
-
- ARROW_SHAPE_RANGE = new
DiscreteRange<DArrowShape>(DArrowShape.class, arrowSet);
- }
-
- public ArrowShapeTwoDVisualProperty(final DArrowShape def, final String
id,
- final String name) {
- super(def, ARROW_SHAPE_RANGE, id, name, CyEdge.class);
- }
-
- public String toSerializableString(final DArrowShape value) {
- return value.toString();
- }
-
- public DArrowShape parseSerializableString(final String text) {
- DArrowShape shape = DArrowShape.parseArrowText(text);
-
- return shape;
- }
-}
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ObjectPositionVisualProperty.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ObjectPositionVisualProperty.java
2012-01-13 00:44:37 UTC (rev 28009)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/ObjectPositionVisualProperty.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -23,14 +23,13 @@
}
@Override
- public String toSerializableString(ObjectPosition value) {
- return value.shortString();
+ public String toSerializableString(final ObjectPosition value) {
+ return value.toSerializableString();
}
@Override
- public ObjectPosition parseSerializableString(String value) {
- // TODO Auto-generated method stub
- return null;
+ public ObjectPosition parseSerializableString(String
objectPositionString) {
+ return ObjectPositionImpl.parse(objectPositionString);
}
}
Added:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/ObjectPositionTest.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/ObjectPositionTest.java
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/test/java/org/cytoscape/ding/ObjectPositionTest.java
2012-01-13 01:32:23 UTC (rev 28010)
@@ -0,0 +1,43 @@
+package org.cytoscape.ding;
+
+import static org.junit.Assert.*;
+
+import org.cytoscape.ding.impl.ObjectPositionImpl;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ObjectPositionTest {
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void paesingTest() {
+ final ObjectPosition oPosition = new ObjectPositionImpl();
+ oPosition.setAnchor(Position.NORTH_EAST);
+ oPosition.setTargetAnchor(Position.SOUTH_WEST);
+ oPosition.setJustify(Justification.JUSTIFY_LEFT);
+ oPosition.setOffsetX(20.1);
+ oPosition.setOffsetY(11.22);
+
+ final String serialized = oPosition.toSerializableString();
+ System.out.println("Serialized string = " + serialized);
+ final ObjectPosition parsedObjectPosition =
ObjectPositionImpl.parse(serialized);
+ System.out.println("Parsed string = " + serialized);
+ System.out.println("Parsed anc = " +
parsedObjectPosition.getAnchor());
+ System.out.println("Parsed ancT = " +
parsedObjectPosition.getTargetAnchor());
+ System.out.println("Parsed Just = " +
parsedObjectPosition.getJustify());
+ System.out.println("Parsed X = " +
parsedObjectPosition.getOffsetX());
+ System.out.println("Parsed Y = " +
parsedObjectPosition.getOffsetY());
+
+ assertTrue(oPosition.equals(parsedObjectPosition));
+ assertEquals(oPosition, parsedObjectPosition);
+ }
+
+}
--
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.