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.

Reply via email to