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" <nlis...@gmail.com>
    An: mariush...@web.de
    Cc: "openjfx-dev@openjdk.java.net Mailing"
    <openjfx-dev@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]mariush...@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]nlis...@gmail.com>
         An: "[4]openjfx-dev@openjdk.java.net Mailing"
         <[5]openjfx-dev@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:mariush...@web.de
    2. https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/cl
    3. mailto:nlis...@gmail.com
    4. mailto:openjfx-dev@openjdk.java.net
    5. mailto:openjfx-dev@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

Reply via email to