1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.command.path;
19
20 import org.vectomatic.dom.svg.OMSVGPathSeg;
21 import org.vectomatic.dom.svg.OMSVGPathSegMovetoAbs;
22 import org.vectomatic.dom.svg.OMSVGPoint;
23
24 import com.google.gwt.dom.client.Element;
25
26
27
28
29
30 public class SVGMoveSegRep extends SVGSegRep {
31
32
33
34 protected OMSVGPathSegMovetoAbs moveToSeg;
35
36 public SVGMoveSegRep(IPathRepOwner owner, OMSVGPathSegMovetoAbs moveToSeg) {
37 super(owner);
38 this.moveToSeg = moveToSeg;
39 }
40
41 public OMSVGPathSeg getElement() {
42 return moveToSeg;
43 }
44
45 @Override
46 public float getX() {
47 return moveToSeg.getX();
48 }
49 @Override
50 public void setX(float x) {
51 moveToSeg.setX(x);
52 }
53 @Override
54 public float getY() {
55 return moveToSeg.getY();
56 }
57 @Override
58 public void setY(float y) {
59 moveToSeg.setY(y);
60 }
61
62 @Override
63 public void update(float hs) {
64 float x = moveToSeg.getX();
65 float y = moveToSeg.getY();
66 vertex.getX().getBaseVal().setValue(x - hs);
67 vertex.getY().getBaseVal().setValue(y - hs);
68 vertex.getWidth().getBaseVal().setValue(hs * 2);
69 vertex.getHeight().getBaseVal().setValue(hs * 2);
70 }
71
72 @Override
73 public void updateEnd(OMSVGPoint delta, float hs) {
74 moveToSeg.setX(moveToSeg.getX() + delta.getX());
75 moveToSeg.setY(moveToSeg.getY() + delta.getY());
76 update(hs);
77 }
78
79 @Override
80 public void processMouseMove(OMSVGPoint delta, Element target, float hs, boolean isCtrlKeyDown) {
81 if (target == null) {
82 updateEnd(delta, hs);
83 if (next != null) {
84 next.updateStart(delta, hs);
85 }
86 }
87 }
88
89 @Override
90 public String toString() {
91 StringBuilder builder = new StringBuilder("M ");
92 builder.append(moveToSeg.getX());
93 builder.append(",");
94 builder.append(moveToSeg.getY());
95 return builder.toString();
96 }
97 }