kasemir / org.csstudio.display.builder

Update of org.csstudio.opibuilder.*
Eclipse Public License 1.0
2 stars 10 forks source link

Problems opening BOY screens from Display Builder #440

Closed claudio-rosati closed 6 years ago

claudio-rosati commented 6 years ago

At ESS we have started the conversion of BOY screens coming from in-kind partners to Display Builder.

If a single OPI has to be converted there is no problem, but if this (converted) OPI opens another one (still in BOY format) it will be opened with Display Builder and more often than not this is badly displayed, with missing widget and different script behaviour.

It would be nice to be able to open this BOY files with BOY instead of Display Builder. I'm thinking of

This is a blocking problem because often the groups in charge of their OPIs (and their conversion) are different with different speed and policies about the conversion.

claudio-rosati commented 6 years ago

When I'll come back from my 2 weeks vacation, say October, I'll start working on the CS-Studio <-> Phoebus integration plugin now up and running to add Display Builder and Data Browser integration. It will be important to be able from Phoebus Display Builder to open a BOY screen on CS-Studio.

kasemir commented 6 years ago

It's of course possible to build CSS without BOY, so the Display Builder code to open a display in BOY needs to be compatible with that scenario.

How about a configuration setting for the display builder to somehow list .opi files. Whenever opening an .opi, the display builder checks if there's a .bob version. If that's found, it obviously opens that in the display builder runtime. Otherwise, it defaults to opening the .opi in the display builder runtime as before, which quite often is fine. However, if the .opi is listed in the new preference, it will open that .opi in the BOY runtime.

kasemir commented 6 years ago

See new preference setting https://github.com/kasemir/org.csstudio.display.builder/blob/master/org.csstudio.display.builder.runtime/preferences.ini that allows you to list the displays that should open in BOY runtime. Can use partial names to for example add a whole subdirectory.

# Use BOY runtime for some specific *.opi displays.
#
# By default, the Display Builder opens *.opi files,
# unless there's a *.bob file of the same base name.
#
# For some *.opi files, the compatibility may be incomplete,
# so they need be opened in the legacy BOY runtime.
# List them here.
#
# Format: Comma-separated list of partial names.
# If the partial name is found in the full workspace path to the display,
# it will be opened in the legacy BOY runtime.
#
# Example:
#  /gauges.opi : /any/path/to/gauges.opi
#  gauges.opi : /any/path/to/whichever_gauges.opi
#  mot        : Any file with "mot" anywhere in the path or name
use_boy=/gauges.opi, button, /displays/not_ported/
claudio-rosati commented 6 years ago

Hello Kay, Thank you for the fix.

I've just placed org.csstudio.display.builder.runtime/use_boy=.opi inside my plugin_customization.ini file and it works fine, opening in BOY every .opi non having a .bob companion.

I've seen that, using an action button in Display Builder, the property about where to open the OPI are not honoured, but I think people should live with that.