Property Type

There are several different type of widget properties, such as Boolean, Double, Color, Font and so on. The method widget.setPropertyValue(prop_id, value) only accepts certain value types corresponding to the property type. Here is the list of the acceptable value types for each type of property. Property Value Type is the type of the object returned from widget.getPropertyValue(prop_id) .

Property Type Example Properties
Boolean Property Enabled, Visible
Integer Property Height, Width, X, Y
Double Property Meter.Level HIHI, Meter.Maximum
Combo Property Border Style
String Property Name, PV Name, Text
Color Property Background Color, Foreground Color
Font Property Font
File Path Property Image.Image File, Linking Container.OPI File
PointList Property Polyline.Points, Polygon.Points
Macros Property Macros
ColorMap Property IntensityGraph.Color Map

Boolean Property

Acceptable Value Type
boolean
Property Value Type
Boolean
Examples:
    widget.setPropertyValue("enable", false);
    widget.setPropertyValue("visible", true);

Integer Property

Acceptable Value Type
int, double
Property Value Type
Integer
Examples:
    widget.setPropertyValue("x", 10); 

Double Property

Acceptable Value Type
double, int
Property Value Type
Double
Examples:
    widget.setPropertyValue("fill_level", 35.6);

Combo Property

Acceptable Value Type
int - it is the index of the item in the combo box of the property
Property Value Type
Integer
Examples:
    //set border style to line style
    widget.setPropertyValue("border_style", 1); 

String Property

Acceptable Value Type
String - allow macros in string
any object(the method toString() will be automatically called)
Property Value Type
String
Examples:
    widget.setPropertyValue("text", "Hello, World!");

Color Property

Acceptable Value Type
RGB
String(must be predefined in Color Macro file)
Property Value Type
OPIColor
Examples:
    importPackage(Packages.org.csstudio.opibuilder.scriptUtil);

    var ORANGE = ColorFontUtil.getColorFromRGB(255,255,0);
    widget.setPropertyValue("foreground_color",ORANGE);
    widget.setPropertyValue("background_color", "Major"); //"Major" is a color macro

Font Property

Acceptable Value Type
FontData
String(must be predefined in Font Macro file)
Property Value Type
OPIFont
Examples:
    importPackage(Packages.org.csstudio.opibuilder.scriptUtil);

    var bigFont = ColorFontUtil.getFont("Times New Roman", 20, 1);
    widget.setPropertyValue("font", bigFont);

Macros Property

Acceptable Value Type
MacrosInput
Property Value Type
MacrosInput
Examples:
    importPackage(Packages.org.csstudio.opibuilder.scriptUtil);
    var macroInput = DataUtil.createMacrosInput(true);
    macroInput.put("pv", PVUtil.getString(pvs[0]));
    widget.setPropertyValue("macros", macroInput);

File Path Property

Acceptable Value Type
String - allow url start with http:// or ftp://
org.eclipse.core.runtime.IPath
Property Value Type
org.eclipse.core.runtime.IPath
Examples:
    //load image from relative path
    widget.getWidgetModel().setPropertyValue("image_file", "../pictures/fish.gif");
    //load image from url
    widget.getWidgetModel().setPropertyValue("image_file", "http://neutrons.ornl.gov/images/sns_aerial.jpg");
    //load image from absolute workspace path
    widget.getWidgetModel().setPropertyValue("image_file", "/BOY Examples/widgets/DynamicSymbols/Scared.jpg");
    //load image from local file system
    widget.getWidgetModel().setPropertyValue("image_file", "C:\\Users\\5hz\\Pictures\\me.gif");

PointList Property

Acceptable Value Type
int[]
org.eclipse.draw2d.geometry.PointList
Property Value Type
org.eclipse.draw2d.geometry.PointList
Examples:
    importPackage(Packages.org.csstudio.opibuilder.scriptUtil);

    var jsArray = new Array(20,260,34,56,320,230);
    //set the points for a polygon/polyline widget
    widget.setPropertyValue("points", DataUtil.toJavaIntArray(jsArray));

ColorMap Property

Acceptable Value Type
String, which must be one of "JET", "GrayScale", "ColorSpectrum", "Hot", "Cool" and "Shaded".
Property Value Type
org.csstudio.swt.widgets.datadefinition.ColorMap
Examples:
    importPackage(Packages.org.csstudio.opibuilder.scriptUtil);
    var value = PVUtil.getString(pvs[0]);
    widget.setPropertyValue("color_map", value);

Actions Property and Script Property are not changeable from script becaues they are only loaded once during the initialization of widget.