[External] : Re: Convenience factories for Border and Background

John Hendrikx hjohn at xs4all.nl
Wed Jun 9 11:59:55 UTC 2021


I'm not entirely convinced taking width is all that useful. The (final) 
pxiel width of a border is normally a calculated value based on the 
chosen unit and scaling needs of the platform.

A lot of methods in JavaFX work with pixel values only, while for proper 
scaling I often find myself needing a different unit, in which case CSS 
is the only option.

Perhaps however this is a different issue, as it would apply to much 
more than just borders.

--John

On 08/06/2021 17:29, Scott Palmer wrote:
> +1 for having a variant that takes a width. Colour, width, and radius are the main parameters I need, so a variant that takes all three would help:
>
>  Border.stroke(Paint p, double width, double radii)
>
> (Though to be honest for my larger projects most of the time this stuff is set in a style sheet.  It’s smaller tools and utilities that I find this particularly tedious as the verbosity of the code becomes annoying.)
>
> Scott
>
>> On Jun 8, 2021, at 9:59 AM, Kevin Rushforth <kevin.rushforth at oracle.com> wrote:
>>
>> I think that the convenience methods should just cover the most common cases, so I'd rather skip the dotted and dashed variants. It is a good question as to whether there ought to be a variant that takes width. I wouldn't do that as the only method, though. I'd lean towards not taking the width. Once you start getting into more parameters you can just use the constructors without much more trouble.
>>
>> As for the names, I have a slight preference for Border.stroke and Background.fill.
>>
>> -- Kevin
>>
>>
>> On 6/8/2021 4:25 AM, Nir Lisker wrote:
>>> Are dashed and dotted used frequently? I find that I only use solid unless I'm doing something fancy.
>>>
>>> On Tue, Jun 8, 2021 at 5:21 AM Michael Strauß <michaelstrau2 at gmail.com <mailto:michaelstrau2 at gmail.com>> wrote:
>>>
>>>    What do you think about this variation?
>>>
>>>        Border.solid(Paint color, double width) ->
>>>            new Border(new BorderStroke(color, BorderStrokeStyle.SOLID,
>>>    null, new BorderWidths(width)))
>>>
>>>        Border.dashed(Paint color, double width)  ->
>>>            new Border(new BorderStroke(color, BorderStrokeStyle.DASHED,
>>>    null, new BorderWidths(width)))
>>>
>>>        Border.dotted(Paint color, double width) ->
>>>            new Border(new BorderStroke(color, BorderStrokeStyle.DOTTED,
>>>    null, new BorderWidths(width)))
>>>
>>>        Background.fill(Paint color) ->
>>>            new BackgroundFill(color, null, null)
>>>
>>>    This gives developers a good deal of customizability before needing to
>>>    fall back to using constructors.
>>>
>>>
>>>    Am Di., 8. Juni 2021 um 03:21 Uhr schrieb Nir Lisker
>>>    <nlisker at gmail.com <mailto:nlisker at gmail.com>>:
>>>    >
>>>    > The new API:
>>>    >
>>>    > 1. `Border.of(Paint stroke)` or `Border.stroke(Paint stroke)`
>>>    that does
>>>    > `new Border(new BorderStroke(Paint stroke ,
>>>    BorderStrokeStyle.SOLID, null,
>>>    > null));`
>>>    > 2. `Background.of((Paint fill)` or `Background.fill(Paint fill)`
>>>    that does
>>>    > `new Background(new BackgroundFill(Paint fill, null, null));`
>>>    >
>>>    > I don't mind either name choice.
>>>    >
>>>
>>
>


More information about the openjfx-dev mailing list