Search in sources :

Example 1 with EntityLookupAction

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;
}
Also used : EntityClearAction(io.jmix.ui.action.entitypicker.EntityClearAction) EntityLookupAction(io.jmix.ui.action.entitypicker.EntityLookupAction)

Example 2 with EntityLookupAction

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);
}
Also used : UiEntityContext(io.jmix.ui.accesscontext.UiEntityContext) UiEntityAttributeContext(io.jmix.ui.accesscontext.UiEntityAttributeContext) Range(io.jmix.core.metamodel.model.Range) ContainerValueSource(io.jmix.ui.component.data.value.ContainerValueSource) EntityClearAction(io.jmix.ui.action.entitypicker.EntityClearAction) MetaClass(io.jmix.core.metamodel.model.MetaClass) ContainerValueSource(io.jmix.ui.component.data.value.ContainerValueSource) ValueSource(io.jmix.ui.component.data.ValueSource) EntityLookupAction(io.jmix.ui.action.entitypicker.EntityLookupAction) MapScreenOptions(io.jmix.ui.screen.MapScreenOptions)

Example 3 with EntityLookupAction

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;
    }
}
Also used : ContainerValueSource(io.jmix.ui.component.data.value.ContainerValueSource) EntityClearAction(io.jmix.ui.action.entitypicker.EntityClearAction) EntityLookupAction(io.jmix.ui.action.entitypicker.EntityLookupAction)

Example 4 with EntityLookupAction

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;
}
Also used : MetaClass(io.jmix.core.metamodel.model.MetaClass) EntityLookupAction(io.jmix.ui.action.entitypicker.EntityLookupAction)

Example 5 with EntityLookupAction

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;
}
Also used : MetaClass(io.jmix.core.metamodel.model.MetaClass) EntityLookupAction(io.jmix.ui.action.entitypicker.EntityLookupAction)

Aggregations

EntityLookupAction (io.jmix.ui.action.entitypicker.EntityLookupAction)6 MetaClass (io.jmix.core.metamodel.model.MetaClass)4 EntityClearAction (io.jmix.ui.action.entitypicker.EntityClearAction)4 ContainerValueSource (io.jmix.ui.component.data.value.ContainerValueSource)2 Range (io.jmix.core.metamodel.model.Range)1 UiEntityAttributeContext (io.jmix.ui.accesscontext.UiEntityAttributeContext)1 UiEntityContext (io.jmix.ui.accesscontext.UiEntityContext)1 Action (io.jmix.ui.action.Action)1 ValueSource (io.jmix.ui.component.data.ValueSource)1 MapScreenOptions (io.jmix.ui.screen.MapScreenOptions)1