Convenience factories for Border and Background
Kevin Rushforth
kevin.rushforth at oracle.com
Mon Apr 26 23:45:18 UTC 2021
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