Aw: Re: Convenience factories for Border and Background
Marius Hanl
mariushanl at web.de
Tue Aug 24 15:57:42 UTC 2021
I want to see this as well.
Do we want to continue creating a draft for this?
Am 23.08.21, 01:48 schrieb Nir Lisker <nlisker at gmail.com>:
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