Can anyone think of how I can assign a default color for all the Vision windows of an application so that, for example, if we find it’s a bit bright or dark we can change it once and a background color binding on every window will use that color?
Use a string client tag (you can't use anything else).
I use HEX, but really it doesn't matter, I guess whatever's more comfortable.
FYI if you bi-directionally bind the client tag to a fillPaint property, re-assigning the colour by picking a new colour from the colour picker on the fillPaint will set it to the string "color(r,g,b)" (assuming you don't force the colour of the client tag using an expression - which you should definitely do to avoid this very situation and where someone forgets, e.g. me, that it's bound and accidentally changes the colour everywhere )
"Initialise" it via an expression in the client tag, as above
That's not quite true. You can use a single client dataset tag to hold all of your colors, with specific row indices documented to hold the color for specific purposes. The dataset can hold an actual java color object, so you don't suffer the parsing load everywhere. Using a dataset offers some conveniences if you want to store and reload complete color schemes to/from a database.