Skip to content

Commit 7537ce8

Browse files
committed
Adding the module for thumbwheel widget
1 parent db62821 commit 7537ce8

File tree

11 files changed

+579
-0
lines changed

11 files changed

+579
-0
lines changed

app/display/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@
1818
<module>convert-edm</module>
1919
<module>navigation</module>
2020
<module>adapters</module>
21+
<module>thumbwheel</module>
2122
</modules>
2223
</project>

app/display/thumbwheel/build.xml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<project default="app-display-thumbwheel">
2+
<import file="../../../dependencies/ant_settings.xml"/>
3+
4+
<target name="app-display-model">
5+
<mkdir dir="${classes}"/>
6+
<javac destdir="${classes}" debug="${debug}">
7+
<src path="${src}"/>
8+
<src path="${test}"/>
9+
<classpath>
10+
<path refid="app-classpath"/>
11+
</classpath>
12+
</javac>
13+
14+
<jar destfile="${build}/app-display-thumbwheel-${version}.jar">
15+
<fileset dir="${classes}"/>
16+
<fileset dir="${resources}"/>
17+
</jar>
18+
</target>
19+
20+
<target name="test-display-thumbwheel" depends="app-display-thumbwheel">
21+
<junit printsummary="withOutAndErr" haltonfailure="yes">
22+
<classpath>
23+
<path refid="app-classpath"/>
24+
<pathelement path="${build}/app-display-thumbwheel-${version}.jar"/>
25+
</classpath>
26+
<batchtest>
27+
<zipfileset src="${build}/app-display-thumbwheel-${version}.jar" includes="**/*Test.class"/>
28+
</batchtest>
29+
<formatter type="plain" usefile="false"/>
30+
</junit>
31+
</target>
32+
33+
</project>

app/display/thumbwheel/pom.xml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>app-display</artifactId>
7+
<groupId>org.phoebus</groupId>
8+
<version>4.7.1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<properties>
13+
<maven.compiler.source>11</maven.compiler.source>
14+
<maven.compiler.target>11</maven.compiler.target>
15+
</properties>
16+
17+
<artifactId>app-display-thumbwheel</artifactId>
18+
<dependencies>
19+
<dependency>
20+
<groupId>org.phoebus</groupId>
21+
<artifactId>app-display-model</artifactId>
22+
<version>4.7.1-SNAPSHOT</version>
23+
<scope>compile</scope>
24+
</dependency>
25+
<dependency>
26+
<groupId>org.phoebus</groupId>
27+
<artifactId>app-display-representation</artifactId>
28+
<version>4.6.6-SNAPSHOT</version>
29+
<scope>compile</scope>
30+
</dependency>
31+
<dependency>
32+
<groupId>org.phoebus</groupId>
33+
<artifactId>app-display-representation-javafx</artifactId>
34+
<version>4.6.6-SNAPSHOT</version>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>se.europeanspallationsource</groupId>
39+
<artifactId>javafx.control.thumbwheel</artifactId>
40+
<version>1.0.5</version>
41+
<scope>compile</scope>
42+
</dependency>
43+
</dependencies>
44+
45+
46+
</project>
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
package org.csstudio.display.widget;
2+
3+
import org.csstudio.display.builder.model.Widget;
4+
import org.csstudio.display.builder.model.WidgetCategory;
5+
import org.csstudio.display.builder.model.WidgetDescriptor;
6+
import org.csstudio.display.builder.model.WidgetProperty;
7+
import org.csstudio.display.builder.model.WidgetPropertyCategory;
8+
import org.csstudio.display.builder.model.WidgetPropertyDescriptor;
9+
import org.csstudio.display.builder.model.persist.NamedWidgetFonts;
10+
import org.csstudio.display.builder.model.persist.WidgetFontService;
11+
import org.csstudio.display.builder.model.properties.WidgetColor;
12+
import org.csstudio.display.builder.model.properties.WidgetFont;
13+
import org.csstudio.display.builder.model.widgets.WritablePVWidget;
14+
15+
import java.util.Arrays;
16+
import java.util.List;
17+
18+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.newBooleanPropertyDescriptor;
19+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.newColorPropertyDescriptor;
20+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.newIntegerPropertyDescriptor;
21+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propBackgroundColor;
22+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propEnabled;
23+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propFont;
24+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propForegroundColor;
25+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propLimitsFromPV;
26+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMaximum;
27+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMinimum;
28+
29+
public class ThumbwheelWidget extends WritablePVWidget {
30+
31+
/** Widget descriptor */
32+
public static final WidgetDescriptor WIDGET_DESCRIPTOR =
33+
new WidgetDescriptor("thumbwheel", WidgetCategory.MONITOR,
34+
"Thumbwheel",
35+
"/icons/thumbwheel.gif",
36+
"Display a thumbwheel",
37+
Arrays.asList("org.csstudio.opibuilder.widgets.ThumbWheel"))
38+
{
39+
@Override
40+
public Widget createWidget()
41+
{
42+
return new ThumbwheelWidget();
43+
}
44+
};
45+
46+
public static final WidgetPropertyDescriptor<WidgetColor> propIncrementColor = newColorPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "increment_color", "Increment Buttons Color");
47+
public static final WidgetPropertyDescriptor<WidgetColor> propDecrementColor = newColorPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "decrement_color", "Decrement Buttons Color");
48+
public static final WidgetPropertyDescriptor<Boolean> propGraphicVisible = newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "graphic_visible", "Graphic Visible");
49+
public static final WidgetPropertyDescriptor<Integer> propIntegerDigits = newIntegerPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "integer_digits", "Integer Digits");
50+
public static final WidgetPropertyDescriptor<Integer> propDecimalDigits = newIntegerPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "decimal_digits", "Decimal Digits");
51+
public static final WidgetPropertyDescriptor<WidgetColor> propInvalidColor = newColorPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "invalid_color", "Invalid Color");
52+
public static final WidgetPropertyDescriptor<Boolean> propScrollEnabled = newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "scroll_enabled", "Scroll Enabled");
53+
public static final WidgetPropertyDescriptor<Boolean> propSpinnerShaped = newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "spinner_shaped", "Spinner Shaped");
54+
55+
public static final WidgetColor THUMBWHEEL_BACKGROUND_COLOR = new WidgetColor(26, 26, 26);
56+
public static final WidgetColor THUMBWHEEL_FOREGROUND_COLOR = new WidgetColor(242, 242, 242);
57+
public static final WidgetColor THUMBWHEEL_BUTTON_COLOR = new WidgetColor(0, 0, 0);
58+
public static final WidgetColor THUMBWHEEL_INVALID_COLOR = new WidgetColor(255, 0, 0);
59+
public static final double DEFAULT_MIN = 0.0;
60+
public static final double DEFAULT_MAX = 100.0;
61+
62+
private volatile WidgetProperty<WidgetColor> background;
63+
private volatile WidgetProperty<WidgetColor> foreground;
64+
private volatile WidgetProperty<WidgetColor> increment_color;
65+
private volatile WidgetProperty<WidgetColor> decrement_color;
66+
private volatile WidgetProperty<Integer> integer_digits;
67+
private volatile WidgetProperty<Integer> decimal_digits;
68+
private volatile WidgetProperty<WidgetFont> font;
69+
private volatile WidgetProperty<Boolean> enabled;
70+
private volatile WidgetProperty<Boolean> graphic_visible;
71+
private volatile WidgetProperty<WidgetColor> invalid_color;
72+
private volatile WidgetProperty<Double> minimum;
73+
private volatile WidgetProperty<Double> maximum;
74+
private volatile WidgetProperty<Boolean> limits_from_pv;
75+
private volatile WidgetProperty<Boolean> scroll_enabled;
76+
private volatile WidgetProperty<Boolean> spinner_shaped;
77+
78+
public ThumbwheelWidget()
79+
{
80+
super(WIDGET_DESCRIPTOR.getType(), 400, 100);
81+
}
82+
83+
@Override
84+
protected void defineProperties(List<WidgetProperty<?>> properties) {
85+
super.defineProperties(properties);
86+
properties.add(background = propBackgroundColor.createProperty(this, THUMBWHEEL_BACKGROUND_COLOR));
87+
properties.add(foreground = propForegroundColor.createProperty(this, THUMBWHEEL_FOREGROUND_COLOR));
88+
properties.add(increment_color = propIncrementColor.createProperty(this, THUMBWHEEL_BUTTON_COLOR));
89+
properties.add(decrement_color = propDecrementColor.createProperty(this, THUMBWHEEL_BUTTON_COLOR));
90+
properties.add(invalid_color = propInvalidColor.createProperty(this, THUMBWHEEL_INVALID_COLOR));
91+
92+
properties.add(font = propFont.createProperty(this, WidgetFontService.get(NamedWidgetFonts.DEFAULT)));
93+
properties.add(decimal_digits = propDecimalDigits.createProperty(this, 2));
94+
properties.add(integer_digits = propIntegerDigits.createProperty(this, 3));
95+
properties.add(minimum = propMinimum.createProperty(this, DEFAULT_MIN));
96+
properties.add(maximum = propMaximum.createProperty(this, DEFAULT_MAX));
97+
98+
properties.add(enabled = propEnabled.createProperty(this, true));
99+
properties.add(graphic_visible = propGraphicVisible.createProperty(this, true));
100+
properties.add(scroll_enabled = propScrollEnabled.createProperty(this, false));
101+
properties.add(spinner_shaped = propSpinnerShaped.createProperty(this, false));
102+
properties.add(limits_from_pv = propLimitsFromPV.createProperty(this, true));
103+
}
104+
105+
/** @return 'background_color' property */
106+
public WidgetProperty<WidgetColor> propBackgroundColor()
107+
{
108+
return background;
109+
}
110+
111+
/** @return 'foreground_color' property */
112+
public WidgetProperty<WidgetColor> propForegroundColor()
113+
{
114+
return foreground;
115+
}
116+
117+
/** @return 'increment_color' property */
118+
public WidgetProperty<WidgetColor> propIncrementColor()
119+
{
120+
return increment_color;
121+
}
122+
123+
/** @return 'decrement_color' property */
124+
public WidgetProperty<WidgetColor> propDecrementColor()
125+
{
126+
return decrement_color;
127+
}
128+
129+
/** @return 'integer_digits' property */
130+
public WidgetProperty<Integer> propIntegerDigits()
131+
{
132+
return integer_digits;
133+
}
134+
135+
/** @return 'decimal_digits' property */
136+
public WidgetProperty<Integer> propDecimalDigits()
137+
{
138+
return decimal_digits;
139+
}
140+
141+
/** @return 'font' property */
142+
public WidgetProperty<WidgetFont> propFont()
143+
{
144+
return font;
145+
}
146+
147+
/** @return 'graphic_visible' property */
148+
public WidgetProperty<Boolean> propGraphicVisible()
149+
{
150+
return graphic_visible;
151+
}
152+
153+
/** @return 'enabled' property */
154+
public WidgetProperty<Boolean> propEnabled()
155+
{
156+
return enabled;
157+
}
158+
159+
/** @return 'invalid_color' property */
160+
public WidgetProperty<WidgetColor> propInvalidColor()
161+
{
162+
return invalid_color;
163+
}
164+
165+
/** @return 'minimum' property */
166+
public WidgetProperty<Double> propMinimum()
167+
{
168+
return minimum;
169+
}
170+
171+
/** @return 'maximum' property */
172+
public WidgetProperty<Double> propMaximum()
173+
{
174+
return maximum;
175+
}
176+
177+
/** @return 'limits_from_pv' property */
178+
public WidgetProperty<Boolean> propLimitsFromPV()
179+
{
180+
return limits_from_pv;
181+
}
182+
183+
/** @return 'enabled' property */
184+
public WidgetProperty<Boolean> propScrollEnabled()
185+
{
186+
return scroll_enabled;
187+
}
188+
189+
/** @return 'enabled' property */
190+
public WidgetProperty<Boolean> propSpinnerShaped()
191+
{
192+
return spinner_shaped;
193+
}
194+
195+
}

0 commit comments

Comments
 (0)