1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.gxt.widget;
19
20 import org.vectomatic.dom.svg.OMSVGDocument;
21 import org.vectomatic.dom.svg.OMSVGLineElement;
22 import org.vectomatic.dom.svg.OMSVGRectElement;
23 import org.vectomatic.dom.svg.OMSVGSVGElement;
24 import org.vectomatic.dom.svg.OMSVGStyle;
25 import org.vectomatic.dom.svg.ui.SVGImage;
26 import org.vectomatic.dom.svg.utils.OMSVGParser;
27 import org.vectomatic.dom.svg.utils.SVGConstants;
28 import org.vectomatic.svg.edit.client.AppBundle;
29 import org.vectomatic.svg.edit.client.model.svg.DashArray;
30
31 import com.google.gwt.dom.client.Style.Unit;
32
33
34
35
36
37 public class DashArrayCell extends SVGImage {
38 protected OMSVGLineElement line;
39 protected DashArray dashArray;
40
41 public DashArrayCell() {
42 OMSVGDocument document = OMSVGParser.currentDocument();
43 OMSVGSVGElement svg = document.createSVGSVGElement();
44 svg.getStyle().setHeight(10, Unit.PX);
45 svg.getStyle().setWidth(100, Unit.PCT);
46 OMSVGRectElement rect = document.createSVGRectElement();
47 rect.getX().getBaseVal().setValueAsString("0%");
48 rect.getY().getBaseVal().setValueAsString("0%");
49 rect.getWidth().getBaseVal().setValueAsString("100%");
50 rect.getHeight().getBaseVal().setValueAsString("100%");
51 line = document.createSVGLineElement();
52 line.getX1().getBaseVal().setValueAsString("0%");
53 line.getY1().getBaseVal().setValueAsString("50%");
54 line.getX2().getBaseVal().setValueAsString("100%");
55 line.getY2().getBaseVal().setValueAsString("50%");
56 svg.setClassNameBaseVal(AppBundle.INSTANCE.css().dasharrayCell());
57 svg.appendChild(rect);
58 svg.appendChild(line);
59 setSvgElement(svg);
60 }
61
62 public void setDashArray(DashArray dashArray) {
63 OMSVGStyle style = line.getStyle();
64 String cssText = (dashArray != null) ? dashArray.toString() : "";
65 if (cssText.length() > 0) {
66 style.setSVGProperty(SVGConstants.CSS_STROKE_DASHARRAY_PROPERTY, cssText);
67 } else {
68 style.clearSVGProperty(SVGConstants.CSS_STROKE_DASHARRAY_PROPERTY);
69 }
70 this.dashArray = dashArray;
71 }
72
73 public DashArray getDashArray() {
74 return dashArray;
75 }
76 }