Search in sources :

Example 1 with Id

use of io.jmix.core.Id in project jmix-docs by Haulmont.

the class OrderLineEventListener method onOrderLineChangedBeforeCommit.

@EventListener
void onOrderLineChangedBeforeCommit(EntityChangedEvent<OrderLine> event) {
    Order order;
    if (event.getType() == EntityChangedEvent.Type.DELETED) {
        // <1>
        // <2>
        Id<Order> orderId = event.getChanges().getOldReferenceId("order");
        order = dataManager.load(orderId).one();
    } else {
        OrderLine orderLine = dataManager.load(event.getEntityId()).one();
        order = orderLine.getOrder();
    }
    BigDecimal amount = order.getLines().stream().map(line -> line.getProduct().getPrice().multiply(BigDecimal.valueOf(line.getQuantity()))).reduce(BigDecimal.ZERO, BigDecimal::add);
    order.setAmount(amount);
    dataManager.save(order);
}
Also used : Order(dataaccess.ex1.entity.Order) BigDecimal(java.math.BigDecimal) DataManager(io.jmix.core.DataManager) Id(io.jmix.core.Id) Component(org.springframework.stereotype.Component) OrderLine(dataaccess.ex1.entity.OrderLine) Autowired(org.springframework.beans.factory.annotation.Autowired) EventListener(org.springframework.context.event.EventListener) Order(dataaccess.ex1.entity.Order) EntityChangedEvent(io.jmix.core.event.EntityChangedEvent) OrderLine(dataaccess.ex1.entity.OrderLine) BigDecimal(java.math.BigDecimal) EventListener(org.springframework.context.event.EventListener)

Example 2 with Id

use of io.jmix.core.Id in project jmix-sneferu by mariodavid.

the class PetBrowse method onPetsTableOpenPetById.

@Subscribe("petsTable.openPetById")
public void onPetsTableOpenPetById(Action.ActionPerformedEvent event) {
    FrameOwner frameOwner = this;
    dialogs.createInputDialog(frameOwner).withParameter(InputParameter.stringParameter("id").withRequired(true).withCaption(messageBundle.getMessage("id"))).withCloseListener(inputDialogCloseEvent -> {
        if (inputDialogCloseEvent.closedWith(DialogOutcome.OK)) {
            final String id = inputDialogCloseEvent.getValue("id");
            if (StringUtils.hasText(id)) {
                final Optional<Pet> pet = dataManager.load(Pet.class).query("e.identificationNumber = ?1", id).optional();
                if (pet.isPresent()) {
                    screenBuilders.editor(Pet.class, frameOwner).editEntity(pet.get()).withOpenMode(OpenMode.DIALOG).show();
                } else {
                    noPetFoundForIdWarning(id);
                }
            } else {
                noPetFoundForIdWarning(id);
            }
        }
    }).show();
}
Also used : Id(io.jmix.core.Id) MessageBundle(io.jmix.ui.screen.MessageBundle) Subscribe(io.jmix.ui.screen.Subscribe) FrameOwner(io.jmix.ui.screen.FrameOwner) Autowired(org.springframework.beans.factory.annotation.Autowired) UiDescriptor(io.jmix.ui.screen.UiDescriptor) Notifications(io.jmix.ui.Notifications) InputDialog(io.jmix.ui.app.inputdialog.InputDialog) ScreenBuilders(io.jmix.ui.ScreenBuilders) LookupComponent(io.jmix.ui.screen.LookupComponent) Owner(io.jmix.petclinic.entity.owner.Owner) Pet(io.jmix.petclinic.entity.pet.Pet) Slider(io.jmix.ui.component.Slider) DialogOutcome(io.jmix.ui.app.inputdialog.DialogOutcome) Action(io.jmix.ui.action.Action) TextField(io.jmix.ui.component.TextField) DataManager(io.jmix.core.DataManager) Route(io.jmix.ui.navigation.Route) UiController(io.jmix.ui.screen.UiController) PetType(io.jmix.petclinic.entity.pet.PetType) Dialogs(io.jmix.ui.Dialogs) UUID(java.util.UUID) StandardLookup(io.jmix.ui.screen.StandardLookup) OpenMode(io.jmix.ui.screen.OpenMode) EntityComboBox(io.jmix.ui.component.EntityComboBox) Optional(java.util.Optional) InputParameter(io.jmix.ui.app.inputdialog.InputParameter) StringUtils(org.springframework.util.StringUtils) FrameOwner(io.jmix.ui.screen.FrameOwner) Optional(java.util.Optional) Pet(io.jmix.petclinic.entity.pet.Pet) Subscribe(io.jmix.ui.screen.Subscribe)

Aggregations

DataManager (io.jmix.core.DataManager)2 Id (io.jmix.core.Id)2 Autowired (org.springframework.beans.factory.annotation.Autowired)2 Order (dataaccess.ex1.entity.Order)1 OrderLine (dataaccess.ex1.entity.OrderLine)1 EntityChangedEvent (io.jmix.core.event.EntityChangedEvent)1 Owner (io.jmix.petclinic.entity.owner.Owner)1 Pet (io.jmix.petclinic.entity.pet.Pet)1 PetType (io.jmix.petclinic.entity.pet.PetType)1 Dialogs (io.jmix.ui.Dialogs)1 Notifications (io.jmix.ui.Notifications)1 ScreenBuilders (io.jmix.ui.ScreenBuilders)1 Action (io.jmix.ui.action.Action)1 DialogOutcome (io.jmix.ui.app.inputdialog.DialogOutcome)1 InputDialog (io.jmix.ui.app.inputdialog.InputDialog)1 InputParameter (io.jmix.ui.app.inputdialog.InputParameter)1 EntityComboBox (io.jmix.ui.component.EntityComboBox)1 Slider (io.jmix.ui.component.Slider)1 TextField (io.jmix.ui.component.TextField)1 Route (io.jmix.ui.navigation.Route)1