source: josm/trunk/src/com/kitfox/svg/Stop.java@ 11525

Last change on this file since 11525 was 11525, checked in by Don-vip, 7 years ago

see #14319 - update to latest version of svgSalamander (2017-01-07, patched)

  • Property svn:eol-style set to native
File size: 4.1 KB
Line 
1/*
2 * SVG Salamander
3 * Copyright (c) 2004, Mark McKay
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or
7 * without modification, are permitted provided that the following
8 * conditions are met:
9 *
10 * - Redistributions of source code must retain the above
11 * copyright notice, this list of conditions and the following
12 * disclaimer.
13 * - Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials
16 * provided with the distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
29 * OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 * Mark McKay can be contacted at mark@kitfox.com. Salamander and other
32 * projects can be found at http://www.kitfox.com
33 *
34 * Created on January 26, 2004, 1:56 AM
35 */
36package com.kitfox.svg;
37
38import com.kitfox.svg.xml.StyleAttribute;
39import java.awt.Color;
40
41/**
42 * @author Mark McKay
43 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a>
44 */
45public class Stop extends SVGElement
46{
47
48 public static final String TAG_NAME = "stop";
49 float offset = 0f;
50 float opacity = 1f;
51 Color color = Color.black;
52
53 /**
54 * Creates a new instance of Stop
55 */
56 public Stop()
57 {
58 }
59
60 @Override
61 public String getTagName()
62 {
63 return TAG_NAME;
64 }
65
66 @Override
67 protected void build() throws SVGException
68 {
69 super.build();
70
71 StyleAttribute sty = new StyleAttribute();
72
73 if (getPres(sty.setName("offset")))
74 {
75 offset = sty.getFloatValue();
76 String units = sty.getUnits();
77 if (units != null && units.equals("%"))
78 {
79 offset /= 100f;
80 }
81 if (offset > 1)
82 {
83 offset = 1;
84 }
85 if (offset < 0)
86 {
87 offset = 0;
88 }
89 }
90
91 if (getStyle(sty.setName("stop-color")))
92 {
93 color = sty.getColorValue();
94 }
95
96 if (getStyle(sty.setName("stop-opacity")))
97 {
98 opacity = sty.getRatioValue();
99 }
100 }
101
102 /**
103 * Updates all attributes in this diagram associated with a time event. Ie,
104 * all attributes with track information.
105 *
106 * @return - true if this node has changed state as a result of the time
107 * update
108 */
109 @Override
110 public boolean updateTime(double curTime) throws SVGException
111 {
112// if (trackManager.getNumTracks() == 0) return false;
113
114 //Get current values for parameters
115 StyleAttribute sty = new StyleAttribute();
116 boolean shapeChange = false;
117
118 if (getPres(sty.setName("offset")))
119 {
120 float newVal = sty.getFloatValue();
121 if (newVal != offset)
122 {
123 offset = newVal;
124 shapeChange = true;
125 }
126 }
127
128 if (getStyle(sty.setName("stop-color")))
129 {
130 Color newVal = sty.getColorValue();
131 if (newVal != color)
132 {
133 color = newVal;
134 shapeChange = true;
135 }
136 }
137
138 if (getStyle(sty.setName("stop-opacity")))
139 {
140 float newVal = sty.getFloatValue();
141 if (newVal != opacity)
142 {
143 opacity = newVal;
144 shapeChange = true;
145 }
146 }
147
148 return shapeChange;
149 }
150}
Note: See TracBrowser for help on using the repository browser.