Convenience factories for Border and Background
Nir Lisker
nlisker at gmail.com
Sun Aug 22 23:45:00 UTC 2021
Getting this moving again as well.
> Another option could be to mirror the `Color` API in both `Border` and
> `Background`, like in the following examples:
Color.rgb(125, 100, 75)
> Border.rgb(125, 100, 75)
> Background.rgb(125, 100, 75)
Color.gray(127)
> Border.gray(127)
> Background.gray(127)
> Color.web("orange", 0.5)
> Border.web("orange", 0.5)
> Background.web("orange", 0.5)
This is possible, but I don't think it saves much. This API in Color makes
it easy to create a color, so just using that directly in the
border/background seems convenient enough to me. Comparing
Border.rgb(125, 100, 75);
with
Border.of(Color.rgb(125, 100, 75)); // whatever the method name ends up
being
tells me that funneling all the color creation ways into one method in
border/background is efficient enough to not merit multiple methods.
We could also mirror the named color constants, which would enable a
> very compact syntax:
> StackPane pane = new StackPane();
> pane.setBorder(Border.RED);
> pane.setBackground(Background.BLUE);
This is very similar to how "red" or "blue" are valid values for
> "-fx-border" or "-fx-background" in CSS.
I rather not duplicate hundreds of constants just to be able to do
pane.setBorder(Border.RED);
instead of
pane.setBorder(Border.of(Color.RED));
On Tue, Jun 8, 2021 at 2:41 AM Nir Lisker <nlisker at gmail.com> wrote:
> Does this constitute sufficient interest in the enhancement?
>
> On Thu, May 13, 2021 at 6:41 PM Michael Strauß <michaelstrau2 at gmail.com>
> wrote:
>
>> Another option could be to mirror the `Color` API in both `Border` and
>> `Background`, like in the following examples:
>>
>> Color.rgb(125, 100, 75)
>> Border.rgb(125, 100, 75)
>> Background.rgb(125, 100, 75)
>>
>> Color.gray(127)
>> Border.gray(127)
>> Background.gray(127)
>>
>> Color.web("orange", 0.5)
>> Border.web("orange", 0.5)
>> Background.web("orange", 0.5)
>>
>> We could also mirror the named color constants, which would enable a
>> very compact syntax:
>>
>> StackPane pane = new StackPane();
>> pane.setBorder(Border.RED);
>> pane.setBackground(Background.BLUE);
>>
>> This is very similar to how "red" or "blue" are valid values for
>> "-fx-border" or "-fx-background" in CSS.
>>
>
More information about the openjfx-dev
mailing list