Author: kpreisser
Date: Fri Oct 11 00:45:16 2013
New Revision: 1531156

URL: http://svn.apache.org/r1531156
Log:
Handle coordinates as double instead of int.

Modified:
    
tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java
    tomcat/trunk/webapps/examples/websocket/drawboard.xhtml

Modified: 
tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java?rev=1531156&r1=1531155&r2=1531156&view=diff
==============================================================================
--- 
tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java
 (original)
+++ 
tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/drawboard/DrawMessage.java
 Fri Oct 11 00:45:16 2013
@@ -19,6 +19,9 @@ package websocket.drawboard;
 import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Graphics2D;
+import java.awt.geom.Arc2D;
+import java.awt.geom.Line2D;
+import java.awt.geom.Rectangle2D;
 
 /**
  * A message that represents a drawing action.
@@ -33,7 +36,7 @@ public final class DrawMessage {
     private int type;
     private byte colorR, colorG, colorB, colorA;
     private double thickness;
-    private int x1, y1, x2, y2;
+    private double x1, y1, x2, y2;
     private boolean lastInChain;
 
     /**
@@ -82,28 +85,28 @@ public final class DrawMessage {
         this.colorA = colorA;
     }
 
-    public long getX1() {
+    public double getX1() {
         return x1;
     }
-    public void setX1(int x1) {
+    public void setX1(double x1) {
         this.x1 = x1;
     }
-    public int getX2() {
+    public double getX2() {
         return x2;
     }
-    public void setX2(int x2) {
+    public void setX2(double x2) {
         this.x2 = x2;
     }
-    public int getY1() {
+    public double getY1() {
         return y1;
     }
-    public void setY1(int y1) {
+    public void setY1(double y1) {
         this.y1 = y1;
     }
-    public int getY2() {
+    public double getY2() {
         return y2;
     }
-    public void setY2(int y2) {
+    public void setY2(double y2) {
         this.y2 = y2;
     }
 
@@ -123,8 +126,8 @@ public final class DrawMessage {
 
 
     public DrawMessage(int type, byte colorR, byte colorG, byte colorB,
-            byte colorA, double thickness, int x1, int x2, int y1, int y2,
-            boolean lastInChain) {
+            byte colorA, double thickness, double x1, double x2, double y1,
+            double y2, boolean lastInChain) {
 
         this.type = type;
         this.colorR = colorR;
@@ -153,10 +156,11 @@ public final class DrawMessage {
 
         if (type == 1 || type == 2) {
             // Draw a line.
-            g.drawLine(x1, y1, x2, y2);
+            Line2D line = new Line2D.Double(x1, y1, x2, y2);
+            g.draw(line);
 
         } else if (type == 3 || type == 4) {
-            int x1 = this.x1, x2 = this.x2,
+            double x1 = this.x1, x2 = this.x2,
                     y1 = this.y1, y2 = this.y2;
             if (x1 > x2) {
                 x1 = this.x2;
@@ -169,11 +173,15 @@ public final class DrawMessage {
 
             if (type == 3) {
                 // Draw a rectangle.
-                g.drawRect(x1, y1, x2 - x1, y2 - y1);
+                Rectangle2D rect = new Rectangle2D.Double(x1, y1,
+                        x2 - x1, y2 - y1);
+                g.draw(rect);
 
             } else if (type == 4) {
                 // Draw an ellipse.
-                g.drawArc(x1, y1, x2 - x1, y2 - y1, 0, 360);
+                Arc2D arc = new Arc2D.Double(x1, y1, x2 - x1, y2 - y1,
+                        0d, 360d, Arc2D.CHORD);
+                g.draw(arc);
 
             }
         }
@@ -200,7 +208,7 @@ public final class DrawMessage {
         int type;
         byte[] colors = new byte[4];
         double thickness;
-        int[] coords = new int[4];
+        double[] coords = new double[4];
         boolean last;
 
         try {
@@ -219,8 +227,8 @@ public final class DrawMessage {
                 throw new ParseException("Invalid thickness: " + thickness);
 
             for (int i = 0; i < coords.length; i++) {
-                coords[i] = Integer.parseInt(elements[6 + i]);
-                if (coords[i] < -1000000L || coords[i] > 1000000L)
+                coords[i] = Double.parseDouble(elements[6 + i]);
+                if (Double.isNaN(coords[i]))
                     throw new ParseException("Invalid coordinate: "
                             + coords[i]);
             }

Modified: tomcat/trunk/webapps/examples/websocket/drawboard.xhtml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/websocket/drawboard.xhtml?rev=1531156&r1=1531155&r2=1531156&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/websocket/drawboard.xhtml (original)
+++ tomcat/trunk/webapps/examples/websocket/drawboard.xhtml Fri Oct 11 00:45:16 
2013
@@ -443,10 +443,10 @@
                                                     parseInt(elements[4]),
                                                     parseInt(elements[5]) / 
255.0],
                                                     parseFloat(elements[6]),
-                                                    parseInt(elements[7]),
-                                                    parseInt(elements[8]),
-                                                    parseInt(elements[9]),
-                                                    parseInt(elements[10]),
+                                                    parseFloat(elements[7]),
+                                                    parseFloat(elements[8]),
+                                                    parseFloat(elements[9]),
+                                                    parseFloat(elements[10]),
                                                     elements[11] != "0");
 
                                             // Draw the path onto the last 
canvas.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to