use of io.jmix.core.metamodel.model.Range in project jmix by jmix-framework.
the class AbstractComponentGenerationStrategy method createCollectionField.
@SuppressWarnings({ "unchecked", "rawtypes" })
protected Component createCollectionField(ComponentGenerationContext context, MetaPropertyPath mpp) {
ValuesPicker valuesPicker = uiComponents.create(ValuesPicker.class);
setValueSource(valuesPicker, context);
ValuesSelectAction selectAction = actions.create(ValuesSelectAction.class);
Range range = mpp.getRange();
if (range.isClass()) {
selectAction.setEntityName(range.asClass().getName());
} else if (range.isDatatype()) {
selectAction.setJavaClass(range.asDatatype().getJavaClass());
} else if (range.isEnum()) {
selectAction.setEnumClass(range.asEnumeration().getJavaClass());
}
valuesPicker.addAction(selectAction);
ValueClearAction valueClearAction = actions.create(ValueClearAction.class);
valuesPicker.addAction(valueClearAction);
return valuesPicker;
}
use of io.jmix.core.metamodel.model.Range in project jmix by jmix-framework.
the class AbstractComponentGenerationStrategy method createDatatypeField.
@Nullable
protected Component createDatatypeField(ComponentGenerationContext context, MetaPropertyPath mpp) {
Range mppRange = mpp.getRange();
Element xmlDescriptor = context.getXmlDescriptor();
Class type = mppRange.asDatatype().getJavaClass();
if (xmlDescriptor != null && "true".equalsIgnoreCase(xmlDescriptor.attributeValue("link"))) {
return createDatatypeLinkField(context);
}
boolean hasMaskAttribute = xmlDescriptor != null && xmlDescriptor.attribute("mask") != null;
if (type.equals(String.class)) {
return hasMaskAttribute ? createMaskedField(context) : createStringField(context, mpp);
} else if (type.equals(UUID.class)) {
return createUuidField(context);
} else if (type.equals(Boolean.class)) {
return createBooleanField(context);
} else if (type.equals(java.sql.Date.class) || type.equals(Date.class) || type.equals(LocalDate.class) || type.equals(LocalDateTime.class) || type.equals(OffsetDateTime.class)) {
return createDateField(context);
} else if (type.equals(Time.class) || type.equals(LocalTime.class) || type.equals(OffsetTime.class)) {
return createTimeField(context);
} else if (Number.class.isAssignableFrom(type)) {
if (hasMaskAttribute) {
return createMaskedField(context);
}
Field currencyField = createCurrencyField(context, mpp);
if (currencyField != null) {
return currencyField;
}
return createNumberField(context);
} else if (type.equals(byte[].class)) {
return createFileUploadField(context);
} else if (type.equals(FileRef.class)) {
return createFileStorageUploadField(context);
}
return null;
}
Aggregations