1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.model.svg;
19
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.vectomatic.dom.svg.impl.SVGElement;
26 import org.vectomatic.dom.svg.utils.SVGConstants;
27 import org.vectomatic.svg.edit.client.AppBundle;
28 import org.vectomatic.svg.edit.client.engine.SVGModel;
29 import org.vectomatic.svg.edit.client.model.MetaModel;
30 import org.vectomatic.svg.edit.client.model.ModelCategory;
31
32 import com.google.gwt.resources.client.ImageResource;
33
34
35
36
37
38
39 public class SVGGenericElementModel extends SVGNamedElementModel {
40 protected static Map<String, ImageResource> elementNameToIcon;
41 static {
42 elementNameToIcon = new HashMap<String, ImageResource>();
43 elementNameToIcon.put(SVGConstants.SVG_ALT_GLYPH_DEF_TAG, AppBundle.INSTANCE.altGlyphDef());
44 elementNameToIcon.put(SVGConstants.SVG_ALT_GLYPH_ITEM_TAG, AppBundle.INSTANCE.altGlyphItem());
45 elementNameToIcon.put(SVGConstants.SVG_ALT_GLYPH_TAG, AppBundle.INSTANCE.altGlyph());
46 elementNameToIcon.put(SVGConstants.SVG_ANIMATE_COLOR_TAG, AppBundle.INSTANCE.animateColor());
47 elementNameToIcon.put(SVGConstants.SVG_ANIMATE_MOTION_TAG, AppBundle.INSTANCE.animateMotion());
48 elementNameToIcon.put(SVGConstants.SVG_ANIMATE_TAG, AppBundle.INSTANCE.animate());
49 elementNameToIcon.put(SVGConstants.SVG_ANIMATE_TRANSFORM_TAG, AppBundle.INSTANCE.animateTransform());
50 elementNameToIcon.put(SVGConstants.SVG_CIRCLE_TAG, AppBundle.INSTANCE.circle());
51 elementNameToIcon.put(SVGConstants.SVG_CLIP_PATH_TAG, AppBundle.INSTANCE.clipPath());
52 elementNameToIcon.put(SVGConstants.SVG_COLOR_PROFILE_TAG, AppBundle.INSTANCE.colorProfile());
53 elementNameToIcon.put(SVGConstants.SVG_CURSOR_TAG, AppBundle.INSTANCE.cursor());
54 elementNameToIcon.put(SVGConstants.SVG_DEFS_TAG, AppBundle.INSTANCE.defs());
55 elementNameToIcon.put(SVGConstants.SVG_DESC_TAG, AppBundle.INSTANCE.desc());
56 elementNameToIcon.put(SVGConstants.SVG_ELLIPSE_TAG, AppBundle.INSTANCE.ellipse());
57 elementNameToIcon.put(SVGConstants.SVG_FE_BLEND_TAG, AppBundle.INSTANCE.feBlend());
58 elementNameToIcon.put(SVGConstants.SVG_FE_COLOR_MATRIX_TAG, AppBundle.INSTANCE.feColorMatrix());
59 elementNameToIcon.put(SVGConstants.SVG_FE_COMPONENT_TRANSFER_TAG, AppBundle.INSTANCE.feComponentTransfer());
60 elementNameToIcon.put(SVGConstants.SVG_FE_COMPOSITE_TAG, AppBundle.INSTANCE.feComposite());
61 elementNameToIcon.put(SVGConstants.SVG_FE_CONVOLVE_MATRIX_TAG, AppBundle.INSTANCE.feConvolveMatrix());
62 elementNameToIcon.put(SVGConstants.SVG_FE_DIFFUSE_LIGHTING_TAG, AppBundle.INSTANCE.feDiffuseLighting());
63 elementNameToIcon.put(SVGConstants.SVG_FE_DISPLACEMENT_MAP_TAG, AppBundle.INSTANCE.feDisplacementMap());
64 elementNameToIcon.put(SVGConstants.SVG_FE_DISTANT_LIGHT_TAG, AppBundle.INSTANCE.feDistantLight());
65 elementNameToIcon.put(SVGConstants.SVG_FE_FLOOD_TAG, AppBundle.INSTANCE.feFlood());
66 elementNameToIcon.put(SVGConstants.SVG_FE_FUNC_A_TAG, AppBundle.INSTANCE.feFuncA());
67 elementNameToIcon.put(SVGConstants.SVG_FE_FUNC_B_TAG, AppBundle.INSTANCE.feFuncB());
68 elementNameToIcon.put(SVGConstants.SVG_FE_FUNC_G_TAG, AppBundle.INSTANCE.feFuncG());
69 elementNameToIcon.put(SVGConstants.SVG_FE_FUNC_R_TAG, AppBundle.INSTANCE.feFuncR());
70 elementNameToIcon.put(SVGConstants.SVG_FE_GAUSSIAN_BLUR_TAG, AppBundle.INSTANCE.feGaussianBlur());
71 elementNameToIcon.put(SVGConstants.SVG_FE_MERGE_NODE_TAG, AppBundle.INSTANCE.feMergeNode());
72 elementNameToIcon.put(SVGConstants.SVG_FE_MERGE_TAG, AppBundle.INSTANCE.feMerge());
73 elementNameToIcon.put(SVGConstants.SVG_FE_MORPHOLOGY_TAG, AppBundle.INSTANCE.feMorphology());
74 elementNameToIcon.put(SVGConstants.SVG_FE_OFFSET_TAG, AppBundle.INSTANCE.feOffset());
75 elementNameToIcon.put(SVGConstants.SVG_FE_POINT_LIGHT_TAG, AppBundle.INSTANCE.fePointLight());
76 elementNameToIcon.put(SVGConstants.SVG_FE_SPECULAR_LIGHTING_TAG, AppBundle.INSTANCE.feSpecularLight());
77 elementNameToIcon.put(SVGConstants.SVG_FE_SPOT_LIGHT_TAG, AppBundle.INSTANCE.feSpotLight());
78 elementNameToIcon.put(SVGConstants.SVG_FE_TILE_TAG, AppBundle.INSTANCE.feTile());
79 elementNameToIcon.put(SVGConstants.SVG_FE_TURBULENCE_TAG, AppBundle.INSTANCE.feTurbulence());
80 elementNameToIcon.put(SVGConstants.SVG_FILTER_TAG, AppBundle.INSTANCE.filter());
81 elementNameToIcon.put(SVGConstants.SVG_FONT_FACE_FORMAT_TAG, AppBundle.INSTANCE.fontFaceFormat());
82 elementNameToIcon.put(SVGConstants.SVG_FONT_FACE_NAME_TAG, AppBundle.INSTANCE.fontFaceName());
83 elementNameToIcon.put(SVGConstants.SVG_FONT_FACE_TAG, AppBundle.INSTANCE.fontFace());
84 elementNameToIcon.put(SVGConstants.SVG_FONT_FACE_SRC_TAG, AppBundle.INSTANCE.fontFaceSrc());
85 elementNameToIcon.put(SVGConstants.SVG_FONT_FACE_URI_TAG, AppBundle.INSTANCE.fontFaceUri());
86 elementNameToIcon.put(SVGConstants.SVG_FONT_TAG, AppBundle.INSTANCE.font());
87 elementNameToIcon.put(SVGConstants.SVG_FOREIGN_OBJECT_TAG, AppBundle.INSTANCE.foreignObject());
88 elementNameToIcon.put(SVGConstants.SVG_GLYPH_TAG, AppBundle.INSTANCE.glyph());
89 elementNameToIcon.put(SVGConstants.SVG_GLYPH_REF_TAG, AppBundle.INSTANCE.glyphRef());
90 elementNameToIcon.put(SVGConstants.SVG_G_TAG, AppBundle.INSTANCE.g());
91 elementNameToIcon.put(SVGConstants.SVG_H_KERN_TAG, AppBundle.INSTANCE.hkern());
92 elementNameToIcon.put(SVGConstants.SVG_IMAGE_TAG, AppBundle.INSTANCE.image());
93 elementNameToIcon.put(SVGConstants.SVG_LINEAR_GRADIENT_TAG, AppBundle.INSTANCE.linearGradient());
94 elementNameToIcon.put(SVGConstants.SVG_LINE_TAG, AppBundle.INSTANCE.line());
95 elementNameToIcon.put(SVGConstants.SVG_MARKER_TAG, AppBundle.INSTANCE.marker());
96 elementNameToIcon.put(SVGConstants.SVG_MASK_TAG, AppBundle.INSTANCE.mask());
97 elementNameToIcon.put(SVGConstants.SVG_METADATA_TAG, AppBundle.INSTANCE.metadata());
98 elementNameToIcon.put(SVGConstants.SVG_MISSING_GLYPH_TAG, AppBundle.INSTANCE.missingGlyph());
99 elementNameToIcon.put(SVGConstants.SVG_M_PATH_TAG, AppBundle.INSTANCE.mpath());
100 elementNameToIcon.put(SVGConstants.SVG_PATH_TAG, AppBundle.INSTANCE.path());
101 elementNameToIcon.put(SVGConstants.SVG_PATTERN_TAG, AppBundle.INSTANCE.pattern());
102 elementNameToIcon.put(SVGConstants.SVG_POLYGON_TAG, AppBundle.INSTANCE.polygon());
103 elementNameToIcon.put(SVGConstants.SVG_POLYLINE_TAG, AppBundle.INSTANCE.polyline());
104 elementNameToIcon.put(SVGConstants.SVG_RADIAL_GRADIENT_TAG, AppBundle.INSTANCE.radialGradient());
105 elementNameToIcon.put(SVGConstants.SVG_RECT_TAG, AppBundle.INSTANCE.rect());
106 elementNameToIcon.put(SVGConstants.SVG_SCRIPT_TAG, AppBundle.INSTANCE.script());
107 elementNameToIcon.put(SVGConstants.SVG_SET_TAG, AppBundle.INSTANCE.set());
108 elementNameToIcon.put(SVGConstants.SVG_STOP_TAG, AppBundle.INSTANCE.stop());
109 elementNameToIcon.put(SVGConstants.SVG_STYLE_TAG, AppBundle.INSTANCE.style());
110 elementNameToIcon.put(SVGConstants.SVG_SVG_TAG, AppBundle.INSTANCE.svg());
111 elementNameToIcon.put(SVGConstants.SVG_SWITCH_TAG, AppBundle.INSTANCE.switch_());
112 elementNameToIcon.put(SVGConstants.SVG_SYMBOL_TAG, AppBundle.INSTANCE.symbol());
113 elementNameToIcon.put(SVGConstants.SVG_TEXT_PATH_TAG, AppBundle.INSTANCE.textPath());
114 elementNameToIcon.put(SVGConstants.SVG_TEXT_TAG, AppBundle.INSTANCE.text());
115 elementNameToIcon.put(SVGConstants.SVG_TITLE_TAG, AppBundle.INSTANCE.title());
116 elementNameToIcon.put(SVGConstants.SVG_T_REF_TAG, AppBundle.INSTANCE.tref());
117 elementNameToIcon.put(SVGConstants.SVG_T_SPAN_TAG, AppBundle.INSTANCE.tspan());
118 elementNameToIcon.put(SVGConstants.SVG_USE_TAG, AppBundle.INSTANCE.use());
119 elementNameToIcon.put(SVGConstants.SVG_VIEW_TAG, AppBundle.INSTANCE.view());
120 elementNameToIcon.put(SVGConstants.SVG_V_KERN_TAG, AppBundle.INSTANCE.vkern());
121 }
122 private MetaModel<SVGElement> metaModel;
123 public SVGGenericElementModel(SVGModel owner, SVGElement element, SVGElement twin) {
124 super(owner, element, twin);
125 }
126
127 @Override
128 public MetaModel<SVGElement> getMetaModel() {
129 if (metaModel == null) {
130 metaModel = new MetaModel<SVGElement>();
131 List<ModelCategory<SVGElement>> categories = new ArrayList<ModelCategory<SVGElement>>();
132 categories.add(SVGNamedElementModel.getGlobalCategory());
133 metaModel.init(
134 null,
135 elementNameToIcon.get(element.getTagName()),
136 categories,
137 null);
138
139 }
140 return metaModel;
141 }
142
143 }