Skip to content

Commit d61fd3d

Browse files
committed
fixed Select issue
1 parent 9b99a00 commit d61fd3d

File tree

3 files changed

+42
-20
lines changed

3 files changed

+42
-20
lines changed

domino-message-binding-v2-client/src/main/java/com/github/nalukit/domino/v2/message/binding/client/handling/AbstractDominoV2MessageDriver.java

+29-10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.github.nalukit.domino.v2.message.binding.client.internal.helper.DominoV2MessageElementWrapper;
44
import com.github.nalukit.domino.v2.message.binding.shared.model.IsDominoV2Message;
55
import org.dominokit.domino.ui.events.EventType;
6+
import org.dominokit.domino.ui.forms.InputFormField;
7+
import org.dominokit.domino.ui.forms.suggest.AbstractSelect;
68

79
import java.util.ArrayList;
810
import java.util.HashMap;
@@ -33,12 +35,20 @@ public AbstractDominoV2MessageDriver() {
3335
public void deregister() {
3436
this.messageElementWrappers.values()
3537
.forEach(e -> {
36-
e.getFormElement()
37-
.getInputElement()
38-
.removeEventListener(EventType.blur,
39-
e.getBlurEventListener());
40-
e.setBlurEventListener(null);
41-
});
38+
if (e.getFormElement() instanceof InputFormField) {
39+
((InputFormField<?, ?, ?>) e.getFormElement())
40+
.getInputElement()
41+
.removeEventListener(EventType.blur,
42+
e.getBlurEventListener());
43+
e.setBlurEventListener(null);
44+
} else if (e.getFormElement() instanceof AbstractSelect) {
45+
((AbstractSelect<?, ?, ?, ?, ?>) e.getFormElement())
46+
.getInputElement()
47+
.removeEventListener(EventType.blur,
48+
e.getBlurEventListener());
49+
e.setBlurEventListener(null);
50+
}
51+
});
4252
}
4353

4454
@Override
@@ -94,13 +104,22 @@ public void register() {
94104
if (clearOnBlur) {
95105
elemental2.dom.EventListener eventlistener = evt -> w.getFormElement()
96106
.clearInvalid();
97-
w.getFormElement()
98-
.getInputElement()
99-
.addEventListener(EventType.blur,
100-
eventlistener);
107+
if (w.getFormElement() instanceof InputFormField) {
108+
((InputFormField<?, ?, ?>) w.getFormElement())
109+
.getInputElement()
110+
.addEventListener(EventType.blur,
111+
eventlistener);
112+
} else if (w.getFormElement() instanceof AbstractSelect) {
113+
((AbstractSelect<?, ?, ?, ?, ?>) w.getFormElement())
114+
.getInputElement()
115+
.addEventListener(EventType.blur,
116+
eventlistener);
117+
}
101118
w.setBlurEventListener(eventlistener);
102119
}
103120
});
121+
122+
104123
}
105124

106125
}

domino-message-binding-v2-client/src/main/java/com/github/nalukit/domino/v2/message/binding/client/internal/helper/DominoV2MessageElementWrapper.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
package com.github.nalukit.domino.v2.message.binding.client.internal.helper;
22

33
import elemental2.dom.EventListener;
4+
import org.dominokit.domino.ui.forms.AbstractFormElement;
45
import org.dominokit.domino.ui.forms.InputFormField;
6+
import org.dominokit.domino.ui.forms.suggest.AbstractSelect;
57

68
public class DominoV2MessageElementWrapper {
79

8-
private final InputFormField<?, ?, ?> formElement;
9-
private final String fieldId;
10-
private EventListener blurEventListener;
10+
private AbstractFormElement<?, ?> formElement;
11+
private String fieldId;
12+
private EventListener blurEventListener;
1113
// private List<InvalidHandler> invalidHandlers;
1214
// private List<ValidHandler> validHandlers;
1315

14-
public DominoV2MessageElementWrapper() {
15-
this(null,
16-
null);
16+
@SuppressWarnings("unused")
17+
private DominoV2MessageElementWrapper() {
1718
}
1819

19-
public DominoV2MessageElementWrapper(InputFormField<?, ?, ?> formElement,
20+
public DominoV2MessageElementWrapper(AbstractFormElement<?, ?> formElement,
2021
String fieldId) {
2122
this.formElement = formElement;
2223
this.fieldId = fieldId;
@@ -81,7 +82,7 @@ public void setBlurEventListener(EventListener blurEventListener) {
8182
*
8283
* @return element
8384
*/
84-
public InputFormField<?, ?, ?> getFormElement() {
85+
public AbstractFormElement<?, ?> getFormElement() {
8586
return this.formElement;
8687
}
8788

domino-message-binding-v2-processor/src/main/java/com/nalukit/domino/v2/message/binding/processor/DominoV2MessageProcessor.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
import com.squareup.javapoet.MethodSpec;
2828
import com.squareup.javapoet.ParameterizedTypeName;
2929
import com.squareup.javapoet.TypeSpec;
30+
import org.dominokit.domino.ui.forms.AbstractFormElement;
3031
import org.dominokit.domino.ui.forms.InputFormField;
32+
import org.dominokit.domino.ui.forms.suggest.AbstractSelect;
3133

3234
import javax.annotation.processing.AbstractProcessor;
3335
import javax.annotation.processing.ProcessingEnvironment;
@@ -213,12 +215,12 @@ private void validateVariableElement(Element annotatedElement)
213215
if (!this.dominoV2MessageProcessorUtils.extendsClassOrInterface(super.processingEnv.getTypeUtils(),
214216
variableElement.asType(),
215217
this.processingEnv.getElementUtils()
216-
.getTypeElement(InputFormField.class.getCanonicalName())
218+
.getTypeElement(AbstractFormElement.class.getCanonicalName())
217219
.asType())) {
218220
throw new DominoV2MessageProcessorException("Nalu-Message-Processor: " +
219221
variableElement.getSimpleName()
220222
.toString() +
221-
": @MessageSupport: element must extend BasicFormElement (Domino-UI) super class");
223+
": @MessageSupport: element must extend AbstractFormElement (Domino-UI) super class");
222224
}
223225
} else {
224226
throw new DominoV2MessageProcessorException("Nalu-Message-Processory:" +

0 commit comments

Comments
 (0)