use of io.jmix.ui.action.entitypicker.EntityLookupAction in project jmix by jmix-framework.
the class AppSettingsGridLayoutBuilder method createEntityPickerField.
protected EntityPicker createEntityPickerField() {
EntityPicker pickerField = uiComponents.create(EntityPicker.class);
EntityLookupAction lookupAction = actions.create(EntityLookupAction.class);
lookupAction.setOpenMode(OpenMode.THIS_TAB);
pickerField.addAction(lookupAction);
pickerField.addAction(actions.create(EntityClearAction.class));
return pickerField;
}
use of io.jmix.ui.action.entitypicker.EntityLookupAction in project jmix by jmix-framework.
the class InspectorFormBuilder method addField.
/**
* Adds field to the specified form.
* If the field should be custom, adds it to the specified customFields collection
* which can be used later to create fieldGenerators
*
* @param metaProperty meta property of the item's property which field is creating
* @param form field group to which created field will be added
*/
protected void addField(InstanceContainer container, Form form, MetaProperty metaProperty, boolean isReadonly) {
MetaClass metaClass = container.getEntityMetaClass();
Range range = metaProperty.getRange();
boolean isRequired = isRequired(metaProperty);
UiEntityAttributeContext attributeContext = new UiEntityAttributeContext(metaClass, metaProperty.getName());
accessManager.applyRegisteredConstraints(attributeContext);
if (!attributeContext.canView())
return;
if (range.isClass()) {
UiEntityContext entityContext = new UiEntityContext(range.asClass());
accessManager.applyRegisteredConstraints(entityContext);
if (!entityContext.isViewPermitted()) {
return;
}
}
ValueSource valueSource = new ContainerValueSource<>(container, metaProperty.getName());
ComponentGenerationContext componentContext = new ComponentGenerationContext(metaClass, metaProperty.getName());
componentContext.setValueSource(valueSource);
Field field = (Field) uiComponentsGenerator.generate(componentContext);
if (requireTextArea(metaProperty, getItem(), MAX_TEXTFIELD_STRING_LENGTH)) {
field = uiComponents.create(TextArea.NAME);
}
if (isBoolean(metaProperty)) {
field = createBooleanField();
}
if (range.isClass()) {
EntityPicker pickerField = uiComponents.create(EntityPicker.class);
EntityLookupAction lookupAction = actions.create(EntityLookupAction.class);
lookupAction.setScreenClass(EntityInspectorBrowser.class);
lookupAction.setScreenOptionsSupplier(() -> new MapScreenOptions(ParamsMap.of("entity", metaProperty.getRange().asClass().getName())));
lookupAction.setOpenMode(OpenMode.THIS_TAB);
pickerField.addAction(lookupAction);
pickerField.addAction(actions.create(EntityClearAction.class));
field = pickerField;
}
field.setValueSource(valueSource);
field.setCaption(getPropertyCaption(metaClass, metaProperty));
field.setRequired(isRequired);
isReadonly = isReadonly || (disabledProperties != null && disabledProperties.contains(metaProperty.getName()));
if (range.isClass() && !metadataTools.isEmbedded(metaProperty)) {
field.setEditable(metadataTools.isOwningSide(metaProperty) && !isReadonly);
} else {
field.setEditable(!isReadonly);
}
field.setWidth(fieldWidth);
if (isRequired) {
field.setRequiredMessage(messageTools.getDefaultRequiredMessage(metaClass, metaProperty.getName()));
}
form.add(field);
}
use of io.jmix.ui.action.entitypicker.EntityLookupAction in project jmix by jmix-framework.
the class DynAttrComponentGenerationStrategy method createEntityField.
protected EntityPicker createEntityField(ComponentGenerationContext context, AttributeDefinition attribute) {
if (attribute.getConfiguration().isLookup()) {
EntityComboBox entityComboBox = uiComponents.create(EntityComboBox.class);
if (context.getValueSource() instanceof ContainerValueSource) {
setComboBoxOptionsLoader(entityComboBox, attribute, (ContainerValueSource) context.getValueSource());
}
setValueSource(entityComboBox, context);
setValidators(entityComboBox, attribute);
return entityComboBox;
} else {
EntityPicker entityPicker = uiComponents.create(EntityPicker.class);
EntityLookupAction lookupAction = actions.create(EntityLookupAction.class);
setLookupActionScreen(lookupAction, attribute);
entityPicker.addAction(lookupAction);
entityPicker.addAction(actions.create(EntityClearAction.class));
setValueSource(entityPicker, context);
setValidators(entityPicker, attribute);
return entityPicker;
}
}
use of io.jmix.ui.action.entitypicker.EntityLookupAction in project jmix by jmix-framework.
the class JpqlFilterComponentGenerationStrategy method createEntityField.
protected Component createEntityField(ComponentGenerationContext context) {
EntityPicker<?> field = uiComponents.create(EntityPicker.class);
JpqlFilterComponentGenerationContext cfContext = (JpqlFilterComponentGenerationContext) context;
MetaClass metaClass = metadata.getClass(cfContext.getParameterClass());
field.setMetaClass(metaClass);
EntityLookupAction<?> lookupAction = (EntityLookupAction<?>) actions.create(EntityLookupAction.ID);
lookupAction.setOpenMode(OpenMode.DIALOG);
field.addAction(lookupAction);
field.addAction(actions.create(EntityClearAction.ID));
return field;
}
use of io.jmix.ui.action.entitypicker.EntityLookupAction in project jmix by jmix-framework.
the class PropertyFilterComponentGenerationStrategy method createEntityField.
@Override
protected Component createEntityField(ComponentGenerationContext context, MetaPropertyPath mpp) {
EntityPicker<?> field = uiComponents.create(EntityPicker.class);
MetaClass metaClass = mpp.getMetaProperty().getRange().asClass();
field.setMetaClass(metaClass);
EntityLookupAction<?> lookupAction = (EntityLookupAction<?>) actions.create(EntityLookupAction.ID);
lookupAction.setOpenMode(OpenMode.DIALOG);
field.addAction(lookupAction);
field.addAction(actions.create(EntityClearAction.ID));
return field;
}
Aggregations