## Best OPI, Yet (BOY)

BOY is an Operator Interface (OPI) development and runtime environment. An OPI is a graphical user interface that displays live control system data to operators and allows them to input data to the control system.

### BOY OPI Runtime

As an end user, you simply open a display file by double-clicking on it in the Navigator, or by selecting one of the "Top OPIs" from the drop-down button in the toolbar.

"Top OPIs" button in toolbar, in this example offering "main.opi" and other display files

The BOY OPI runtime will open the display file, draw widgets on the screen, connect to the control system, update for example text fields, meters, and bar graphs to reflect the values of PVs, offer dials or text boxes for you to enter or adjust values, which are then written to the control system.

Anybody who has used other graphical control system operator interface tools, even people who have never worked with such tools should find the use of an OPI fairly straight forward. There is no need to know about the internals of BOY to use existing display screens.

Example OPI

The use of the BOY OPI runtime might actually be a bit easier for people who have not used other control system user interfaces. The navigation between BOY displays is very similar to a web browser: Just like a web page can have links to other web pages, a BOY display can link to other BOY displays. As in a web browser, following such a display link will replace the current display with the new one. Similar to a web browser, there are navigation buttons in the toolbar to go "back" to the previous screen, or to go "forward" again after having gone back.

This behavior might be unfamiliar to users of for example EPICS display managers, where opening a related display would by default open a new window. Whenever you followed a chain of links to reach a desired screen, you ended up with many open windows. BOY's web-browser-type behavior eliminates the unnecessary "bread crumb screens" because by default a linked screen replaces the original window. If you do need to open multiple screens, BOY allows you to open them in either a new tab or a new window by holding the Control resp. shift key when following a link. Again, similar to a web browser, you are in control over the behavior: Replace screen (default), or open new tab (Control) resp. new window (shift).

In contrast to standalone control system display managers, BOY is integrated in CSS, meaning: You can open a context menu on any widget in a BOY display and send the PV that is displayed by the widget to other CSS tools. For example, you can send the PV to the Data Browser to see a strip-chart of the PV's value over time.

### BOY OPI Editor

In addition to the Runtime, BOY includes the editor to develop screens. Most of this manual will actually concentrate on editing screens. With BOY, one can develop a powerful OPI in a few minutes and start to run it immediately. On one hand, it has the simple idea to connect and read/write a PV: specify the PV name of a widget and then you can run to see or set the value of the PV. On the other hand, you can attach one or more scripts to a widget, in which you can write simple JavaScript code to change the widget's properties dynamically, or implement very complicated algorithms.

The OPI Editor in BOY is a WYSIWYG (What You See Is What You Get) editor. It has most of the modern editing features which greatly facilitate OPI editing, such as copy, paste, undo, redo, arrange multiple widgets, snap to grid or other widgets (geometry), ruler, guide, zoom in/out, change order, create group and so on.

The BOY OPI development environment:

### BOY Technology

BOY is based on Java and Eclipse technology with pluggable features. It's function has been tested on Windows, Unix and Mac OS X platforms.

In principle, BOY can be installed in any Eclipse RCP application. To benefit from the interaction with other CSS tools, it is suggested that system integrators combine BOY with other CSS tools that are appropriate for your site into a site-specific CSS product.

For more, see

- http://sourceforge.net/apps/trac/cs-studio/wiki/BOY: Latest news of BOY
- http://ics-web.sns.ornl.gov/css/index.html: SNS CSS web site with products that includes BOY
- http://cs-studio.sourceforge.net/: Other CSS collaborator sites that might include BOY in their products