Convenience factories for Border and Background

Nir Lisker nlisker at gmail.com
Thu May 13 14:25:33 UTC 2021


Doesn't seem like that are any more opinions. How do you want to proceed?

On Tue, Apr 27, 2021 at 2:45 AM Kevin Rushforth <kevin.rushforth at oracle.com>
wrote:

> I would lean towards the simpler solution that Nir has proposed. I would
> like to be informed by what application developers want.
>
> -- Kevin
>
>
> On 4/26/2021 2:03 PM, Marius Hanl wrote:
> >     I'm fine with either way.
> >     Both approaches are nice, while the factory/builder approach will
> >     probably be a bit better as it will cover more use cases, but of
> course
> >     takes a bit more time.
> >     In any case we can create a Border/Background very easily and both
> are
> >     quite short, the factory/builder approach will be shorter though.
> >
> >     e.g.
> >     setBorder(new Border(new BorderStroke(Color.BLACK,
> >     BorderStrokeStyle.SOLID)));
> >     setBorder(BorderFactory.createSolidBorder(Color.BLACK));
> >
> >
> >     Gesendet: Sonntag, 25. April 2021 um 13:05 Uhr
> >     Von: "Nir Lisker" <nlisker at gmail.com>
> >     An: mariushanl at web.de
> >     Cc: "openjfx-dev at openjdk.java.net Mailing"
> >     <openjfx-dev at openjdk.java.net>
> >     Betreff: Re: Convenience factories for Border and Background
> >
> >         I think a minimal constructor would be a nice first step.
> >
> >
> >     I want to avoid adding more constructors, so factory methods would be
> >     my go-to.
> >
> >       We may can go further from that and create something similar like
> >       the BorderFactory
> >
> >
> >     A factory class or a builder require a whole new class and solves the
> >     problems of wanting to create many combinations of constructor
> >     arguments. So we have to ask ourselves if using the full and complex
> >     constructor for complex cases, and the simple proposed methods for
> the
> >     simple cases is enough, or if there is enough middleground of
> >     combinations that we need a more advanced solution.
> >
> >
> >     On Sat, Apr 24, 2021 at 7:24 PM <[1]mariushanl at web.de> wrote:
> >
> >          Hi Nir,
> >          this is a really good idea and something I want to see since the
> >       first
> >          time I used to set a Background/Border.
> >          I think a minimal constructor would be a nice first step.
> >          So instead of:
> >          - setBackground(new Background(new BackgroundFill(Color.BLACK,
> >          CornerRadii.EMPTY, Insets.EMPTY)))
> >          -> setBackground(new Background(new
> BackgroundFill(Color.BLACK)))
> >          and:
> >          - setBorder(new Border(new BorderStroke(Color.BLACK,
> >          BorderStrokeStyle.SOLID, CornerRadii.EMPTY,
> >          BorderStroke.DEFAULT_WIDTHS)))
> >          -> setBorder(new Border(new BorderStroke(Color.BLACK,
> >          BorderStrokeStyle.SOLID)))
> >          We may can go further from that and create something similar
> like
> >       the
> >          BorderFactory class in swing, where you can create a lot of
> >       different
> >          borders easily. (Same to Background)
> >          Reference:
> >
> >       [1][2]
> https://github.com/openjdk/jdk/blob/master/src/java.desktop/sh
> >       are/cl
> >          asses/javax/swing/BorderFactory.java
> >          - Marius
> >          Gesendet: Donnerstag, 22. April 2021 um 15:45 Uhr
> >          Von: "Nir Lisker" <[3]nlisker at gmail.com>
> >          An: "[4]openjfx-dev at openjdk.java.net Mailing"
> >          <[5]openjfx-dev at openjdk.java.net>
> >          Betreff: Convenience factories for Border and Background
> >          Hi,
> >          Many times when I want to create a simple solid Background or
> >       Border,
> >          it is
> >          quite a hassle because of the configurability these classes
> have:
> >          new Border(new BorderStroke(Color. BLACK,
> >       BorderStrokeStyle.SOLID,
> >          null,
> >          null));
> >          new Background(new BackgroundFill(Color.BLACK, null, null));
> >          I was thinking of adding convenience factory methods
> >          Border.of(Paint stroke), or Border.stroke(Paint stroke)
> >          Background.of((Paint fill), or Background.fill(Paint fill)
> >          I was wondering if others would like this, or is everyone using
> >       CSS
> >          anyway?
> >          - Nir
> >       References
> >          1.
> >       [6]
> https://deref-web.de/mail/client/sT3TQpQ3T6k/dereferrer/?redirect
> >
>  Url=https%3A%2F%2Fgithub.com%2Fopenjdk%2Fjdk%2Fblob%2Fmaster%2Fsrc%2
> >
>  Fjava.desktop%2Fshare%2Fclasses%2Fjavax%2Fswing%2FBorderFactory.java
> >
> > References
> >
> >     1. mailto:mariushanl at web.de
> >     2.
> https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/cl
> >     3. mailto:nlisker at gmail.com
> >     4. mailto:openjfx-dev at openjdk.java.net
> >     5. mailto:openjfx-dev at openjdk.java.net
> >     6.
> https://deref-web.de/mail/client/sT3TQpQ3T6k/dereferrer/?redirectUrl=https%3A%2F%2Fgithub.com%2Fopenjdk%2Fjdk%2Fblob%2Fmaster%2Fsrc%2Fjava.desktop%2Fshare%2Fclasses%2Fjavax%2Fswing%2FBorderFactory.java
>
>


More information about the openjfx-dev mailing list