apache / apache/netbeans

Clarify Indeterminate or 3-Way Checkbox (Use FlatTriStateCheckBox for Boolean3WayEditor/Boolean3Inplace)

Open
#7,418 5 comments 0 reactions 0 assignees View on GitHub
kind:feature Look and Feel UI
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Description

The visual difference between a checked checkbox and one that is both checked and unchecked (such as in Properties where two objects are selected and for one object the property is true and for the other the property is false) is very small.
Checked:
![Screenshot from 2024-05-29 07-13-45](https://github.com/apache/netbeans/assets/132458829/70753476-5efc-4961-9eeb-31ddae899e51)
Indeterminate (Both checked and unchecked):
![Screenshot from 2024-05-29 07-13-56](https://github.com/apache/netbeans/assets/132458829/9de46cf3-edd0-49e0-921a-6b3a04e1f5b2)
The only difference is a very subtle background color shift.

FlatLaf is used throughout the code, and there is a related library called Flatlaf Extras which provides a class FlatTriStageCheckBox which renders a much more visually clear 3rd stage:
![Screenshot from 2024-05-29 07-15-56](https://github.com/apache/netbeans/assets/132458829/a803abd8-63f4-4dba-834a-6d564f5541a5)

I suggest including Flatlaf Extras (https://mvnrepository.com/artifact/com.formdev/flatlaf-extras) as a dependency in addition to the base Flatlaf, and changing the Boolean3Inplace class (inside Boolean3WayEditor) which currently extends JCheckBox to extend FlatTriStageCheckBox instead in order to make this 3rd state much more clear.

### Use case/motivation

Avoid confusion on whether a checkbox is checked or indeterminate.

### Related issues

_No response_

### Are you willing to submit a pull request?

No

Contributor guide

Open the contributing guide

Research direction

Locate Boolean3WayEditor and its Boolean3Inplace class, then inspect the existing FlatLaf dependency declaration. Compare the current JCheckBox implementation with FlatTriStageCheckBox from FlatLaf Extras and verify that the Properties UI clearly distinguishes checked and indeterminate states.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
design, desktop
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.