Source code: com/arranger/jarl/util/WidgetConfigSegment.java
1 package com.arranger.jarl.util;
2
3 import com.arranger.jarl.base.BaseJarlObjectInfo;
4 import com.arranger.jarl.base.IJarlObjectInfo;
5 import org.w3c.dom.Element;
6
7 /**
8 * MotionSegment created on Feb 25, 2003
9 */
10 public abstract class WidgetConfigSegment {
11
12 protected double m_startTimePct;
13 protected double m_endTimePct;
14
15 public WidgetConfigSegment(Element element) {
16 m_startTimePct = WidgetUtil.normalize(1, element.getAttribute("startTime"));
17 m_endTimePct = WidgetUtil.normalize(1, element.getAttribute("endTime"));
18 }
19
20 public double getStartTimePct() {
21 return m_startTimePct;
22 }
23
24 public void setStartTimePct(double startTimePct) {
25 m_startTimePct = startTimePct;
26 }
27
28 public double getEndTimePct() {
29 return m_endTimePct;
30 }
31
32 public void setEndTimePct(double endTimePct) {
33 m_endTimePct = endTimePct;
34 }
35
36 /**
37 * -1, means too small
38 * 0, means correct
39 * 1, means to large
40 */
41 public int checkRange(double currentTimePct) {
42 if (currentTimePct < m_startTimePct) {
43 return -1;
44 }
45 if (m_endTimePct >= currentTimePct) {
46 return 0;
47 }
48 return 1;
49 }
50
51 public String toString() {
52 return "startTimePct: " + m_startTimePct + " endTimePct" + m_endTimePct;
53 }
54
55 /**
56 * @return the info for this object
57 */
58 public IJarlObjectInfo getJarlObjectInfo() {
59 IJarlObjectInfo jarlObjectInfo = new BaseJarlObjectInfo(null, null, null);
60 addJarlObjectInfo(jarlObjectInfo);
61 return jarlObjectInfo;
62 }
63
64 /**
65 * Override this, and for every field that you're using, call {@link #populateInfo}
66 * for example:
67 * <code>
68 * populateInfo(jarlObjectInfo, "zOrder", "Z-Order", JarlInfoUtil.PRIMITIVE_DISPLAY);
69 * </code>
70 *
71 * @param jarlObjectInfo
72 *
73 * @see JarlInfoUtil#PRIMITIVE_DISPLAY
74 * @see #populateInfo
75 * @see ObjectUtil#initializeField
76 */
77 protected void addJarlObjectInfo(IJarlObjectInfo jarlObjectInfo) {
78 populateInfo(jarlObjectInfo, "startTimePct", "Start Pct", JarlInfoUtil.PCT_DISPLAY);
79 populateInfo(jarlObjectInfo, "endTimePct", "End Pct", JarlInfoUtil.PCT_DISPLAY);
80 }
81
82 /**
83 * for example:
84 * <code>
85 * populateInfo(jarlObjectInfo, "zOrder", "Z-Order", JarlInfoUtil.PRIMITIVE_DISPLAY);
86 * </code>
87 *
88 * @param jarlObjectInfo
89 * @param fieldName the name of the field without the m_ prefix
90 * @param displayName
91 * @param jarlObjectDisplay
92 * @return the same jarlObjectInfo
93 */
94 protected IJarlObjectInfo populateInfo(IJarlObjectInfo jarlObjectInfo,
95 String fieldName,
96 String displayName,
97 IJarlObjectInfo.IJarlObjectDisplay jarlObjectDisplay) {
98 return JarlInfoUtil.populateInfo(this, jarlObjectInfo, fieldName, displayName, jarlObjectDisplay);
99 }
100 }