diff --git a/domino-ui/src/main/java/org/dominokit/domino/ui/forms/Radio.java b/domino-ui/src/main/java/org/dominokit/domino/ui/forms/Radio.java index 3083d7b3..4bd030ec 100644 --- a/domino-ui/src/main/java/org/dominokit/domino/ui/forms/Radio.java +++ b/domino-ui/src/main/java/org/dominokit/domino/ui/forms/Radio.java @@ -93,7 +93,7 @@ public Radio(T value, String label) { withValue(value); EventListener listener = evt -> { - if (isEnabled() && !isChecked()) { + if (isEnabled() && !isChecked() && !isReadOnly()) { check(); } }; @@ -273,7 +273,7 @@ private Radio setChecked(boolean value, boolean silent) { return this; } if (nonNull(radioGroup)) { - if (!(radioGroup.isReadOnly() || radioGroup.isDisabled())) { + if (!radioGroup.isDisabled()) { T oldValue = (T) radioGroup.getValue(); radioGroup.getRadios().stream() .filter(Radio::isChecked) @@ -758,4 +758,9 @@ public T withRadioGroup(ChildHandler, RadioGroup> handler) { handler.apply(this, radioGroup); return (T) this; } + + @Override + public boolean isReadOnly() { + return super.isReadOnly() || radioGroup.isReadOnly(); + } } diff --git a/domino-ui/src/main/resources/org/dominokit/domino/ui/public/css/domino-ui/dui-components/domino-ui-forms.css b/domino-ui/src/main/resources/org/dominokit/domino/ui/public/css/domino-ui/dui-components/domino-ui-forms.css index 1d3a608b..36357087 100644 --- a/domino-ui/src/main/resources/org/dominokit/domino/ui/public/css/domino-ui/dui-components/domino-ui-forms.css +++ b/domino-ui/src/main/resources/org/dominokit/domino/ui/public/css/domino-ui/dui-components/domino-ui-forms.css @@ -534,10 +534,15 @@ textarea.dui-field-input { --dui-accent-d-2: var(--dui-form-field-disabled-color-darker); pointer-events: none; } + .dui-form-radio[disabled] .dui-radio-label{ color: var(--dui-form-field-disabled-color); } +.dui-form-radio-group[readonly] .dui-form-radio, +.dui-form-radio[readonly] { + pointer-events: none; +} .dui-form-radio { position: relative;