Search in sources :

Example 61 with Entity

use of com.haulmont.cuba.core.entity.Entity in project cuba by cuba-platform.

the class EditorWindowDelegate method validateAdditionalRules.

public void validateAdditionalRules(ValidationErrors errors) {
    // all previous validations return no errors
    if (crossFieldValidate && errors.isEmpty()) {
        BeanValidation beanValidation = AppBeans.get(BeanValidation.NAME);
        Validator validator = beanValidation.getValidator();
        Set<ConstraintViolation<Entity>> violations = validator.validate(getItem(), UiCrossFieldChecks.class);
        violations.stream().filter(violation -> {
            Path propertyPath = violation.getPropertyPath();
            Path.Node lastNode = Iterables.getLast(propertyPath);
            return lastNode.getKind() == ElementKind.BEAN;
        }).forEach(violation -> errors.add(violation.getMessage()));
    }
}
Also used : Iterables(com.google.common.collect.Iterables) DynamicAttributesGuiTools(com.haulmont.cuba.gui.dynamicattributes.DynamicAttributesGuiTools) Date(java.util.Date) MetaClass(com.haulmont.chile.core.model.MetaClass) com.haulmont.cuba.core.global(com.haulmont.cuba.core.global) DatasourceImplementation(com.haulmont.cuba.gui.data.impl.DatasourceImplementation) com.haulmont.cuba.gui.data(com.haulmont.cuba.gui.data) Path(javax.validation.Path) ConstraintViolation(javax.validation.ConstraintViolation) Nullable(javax.annotation.Nullable) Categorized(com.haulmont.cuba.core.entity.Categorized) LockService(com.haulmont.cuba.core.app.LockService) MetaProperty(com.haulmont.chile.core.model.MetaProperty) Collection(java.util.Collection) EntityCopyUtils(com.haulmont.cuba.gui.data.impl.EntityCopyUtils) Datatypes(com.haulmont.chile.core.datatypes.Datatypes) Validator(javax.validation.Validator) Set(java.util.Set) BaseGenericIdEntity(com.haulmont.cuba.core.entity.BaseGenericIdEntity) CollectionPropertyDatasourceImpl(com.haulmont.cuba.gui.data.impl.CollectionPropertyDatasourceImpl) EntityOp(com.haulmont.cuba.security.entity.EntityOp) UiCrossFieldChecks(com.haulmont.cuba.core.global.validation.groups.UiCrossFieldChecks) ClientConfig(com.haulmont.cuba.client.ClientConfig) ComponentsHelper(com.haulmont.cuba.gui.ComponentsHelper) ElementKind(javax.validation.ElementKind) Entity(com.haulmont.cuba.core.entity.Entity) Path(javax.validation.Path) ConstraintViolation(javax.validation.ConstraintViolation) Validator(javax.validation.Validator)

Example 62 with Entity

use of com.haulmont.cuba.core.entity.Entity in project cuba by cuba-platform.

the class EntityCombinedScreen method initBrowseEditAction.

/**
 * Adds an EditAction that enables controls for editing.
 */
protected void initBrowseEditAction() {
    ListComponent table = getTable();
    table.addAction(new EditAction(table) {

        @Override
        public void actionPerform(Component component) {
            if (table.getSelected().size() == 1) {
                if (lockIfNeeded((Entity) table.getSelected().iterator().next())) {
                    super.actionPerform(component);
                }
            }
        }

        @Override
        protected void internalOpenEditor(CollectionDatasource datasource, Entity existingItem, Datasource parentDs, Map<String, Object> params) {
            refreshOptionsForLookupFields();
            enableEditControls(false);
        }

        @Override
        public void refreshState() {
            if (target != null) {
                CollectionDatasource ds = target.getDatasource();
                if (ds != null && !captionInitialized) {
                    setCaption(messages.getMainMessage("actions.Edit"));
                }
            }
            super.refreshState();
        }

        @Override
        protected boolean isPermitted() {
            CollectionDatasource ownerDatasource = target.getDatasource();
            boolean entityOpPermitted = security.isEntityOpPermitted(ownerDatasource.getMetaClass(), EntityOp.UPDATE);
            if (!entityOpPermitted) {
                return false;
            }
            return super.isPermitted();
        }
    });
}
Also used : Datasource(com.haulmont.cuba.gui.data.Datasource) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) Entity(com.haulmont.cuba.core.entity.Entity) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) EditAction(com.haulmont.cuba.gui.components.actions.EditAction)

Example 63 with Entity

use of com.haulmont.cuba.core.entity.Entity in project cuba by cuba-platform.

the class EntityCombinedScreen method releaseLock.

/**
 * Release pessimistic lock if it was applied.
 */
protected void releaseLock() {
    if (justLocked) {
        Datasource ds = getFieldGroup().getDatasource();
        Entity entity = ds.getItem();
        if (entity != null) {
            MetaClass metaClass = getMetaClassForLocking(entity);
            AppBeans.get(LockService.class).unlock(metaClass.getName(), entity.getId().toString());
        }
    }
}
Also used : Datasource(com.haulmont.cuba.gui.data.Datasource) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) Entity(com.haulmont.cuba.core.entity.Entity) MetaClass(com.haulmont.chile.core.model.MetaClass) LockService(com.haulmont.cuba.core.app.LockService)

Example 64 with Entity

use of com.haulmont.cuba.core.entity.Entity in project cuba by cuba-platform.

the class EntityCombinedScreen method cancel.

/**
 * Method that is invoked by clicking Cancel button, discards changes and disables controls for editing.
 */
@SuppressWarnings("unchecked")
public void cancel() {
    CollectionDatasource browseDs = getTable().getDatasource();
    Datasource editDs = getFieldGroup().getDatasource();
    Entity selectedItem = browseDs.getItem();
    if (selectedItem != null) {
        Entity reloadedItem = getDsContext().getDataSupplier().reload(selectedItem, editDs.getView());
        browseDs.setItem(reloadedItem);
    } else {
        editDs.setItem(null);
    }
    releaseLock();
    disableEditControls();
}
Also used : Datasource(com.haulmont.cuba.gui.data.Datasource) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) Entity(com.haulmont.cuba.core.entity.Entity) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource)

Example 65 with Entity

use of com.haulmont.cuba.core.entity.Entity in project cuba by cuba-platform.

the class EditAction method internalOpenEditor.

protected void internalOpenEditor(CollectionDatasource datasource, Entity existingItem, Datasource parentDs, Map<String, Object> params) {
    Window.Editor window = target.getFrame().openEditor(getWindowId(), existingItem, getOpenType(), params, parentDs);
    if (editorCloseListener == null) {
        window.addCloseListener(actionId -> {
            // move focus to owner
            target.requestFocus();
            if (Window.COMMIT_ACTION_ID.equals(actionId)) {
                Entity editedItem = window.getItem();
                if (editedItem != null) {
                    if (parentDs == null) {
                        if (editedItem instanceof BaseGenericIdEntity) {
                            BaseGenericIdEntity genericEditedEntity = (BaseGenericIdEntity) editedItem;
                            if (datasource.getLoadDynamicAttributes() && genericEditedEntity.getDynamicAttributes() == null) {
                                DynamicAttributesGuiTools dynamicAttributesGuiTools = AppBeans.get(DynamicAttributesGuiTools.class);
                                dynamicAttributesGuiTools.reloadDynamicAttributes(genericEditedEntity);
                            }
                        }
                        // noinspection unchecked
                        datasource.updateItem(editedItem);
                    }
                    afterCommit(editedItem);
                    if (afterCommitHandler != null) {
                        afterCommitHandler.handle(editedItem);
                    }
                }
            }
            afterWindowClosed(window);
            if (afterWindowClosedHandler != null) {
                afterWindowClosedHandler.handle(window, actionId);
            }
        });
    } else {
        window.addCloseListener(editorCloseListener);
    }
}
Also used : BaseGenericIdEntity(com.haulmont.cuba.core.entity.BaseGenericIdEntity) Entity(com.haulmont.cuba.core.entity.Entity) BaseGenericIdEntity(com.haulmont.cuba.core.entity.BaseGenericIdEntity) DynamicAttributesGuiTools(com.haulmont.cuba.gui.dynamicattributes.DynamicAttributesGuiTools)

Aggregations

Entity (com.haulmont.cuba.core.entity.Entity)203 MetaClass (com.haulmont.chile.core.model.MetaClass)51 MetaProperty (com.haulmont.chile.core.model.MetaProperty)44 BaseGenericIdEntity (com.haulmont.cuba.core.entity.BaseGenericIdEntity)40 CollectionDatasource (com.haulmont.cuba.gui.data.CollectionDatasource)18 Test (org.junit.Test)15 Inject (javax.inject.Inject)14 java.util (java.util)12 EntityManager (com.haulmont.cuba.core.EntityManager)11 ParseException (java.text.ParseException)11 Element (org.dom4j.Element)11 Logger (org.slf4j.Logger)11 com.haulmont.cuba.core.global (com.haulmont.cuba.core.global)10 MetaPropertyPath (com.haulmont.chile.core.model.MetaPropertyPath)9 LoggerFactory (org.slf4j.LoggerFactory)9 Query (com.haulmont.cuba.core.Query)8 Server (com.haulmont.cuba.core.entity.Server)8 Transaction (com.haulmont.cuba.core.Transaction)7 Datasource (com.haulmont.cuba.gui.data.Datasource)7 Collectors (java.util.stream.Collectors)7