Convenience factories for Border and Background
Nir Lisker
nlisker at gmail.com
Tue Aug 24 16:29:31 UTC 2021
I have one at https://github.com/openjdk/jfx/pull/610.
On Tue, Aug 24, 2021 at 6:58 PM Marius Hanl <mariushanl at web.de> wrote:
> 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