package devopsdistilled.operp.client.business.purchases.panes.controllers.impl; import javax.inject.Inject; import javax.swing.JPanel; import devopsdistilled.operp.client.abstracts.EntityOperation; import devopsdistilled.operp.client.business.purchases.models.PurchaseModel; import devopsdistilled.operp.client.business.purchases.panes.PurchasePane; import devopsdistilled.operp.client.business.purchases.panes.controllers.PurchaseDescPaneController; import devopsdistilled.operp.client.business.purchases.panes.controllers.PurchasePaneController; import devopsdistilled.operp.client.business.purchases.panes.models.PurchasePaneModel; import devopsdistilled.operp.client.exceptions.EntityValidationException; import devopsdistilled.operp.client.exceptions.NullFieldException; import devopsdistilled.operp.client.party.models.VendorModel; import devopsdistilled.operp.server.data.entity.business.Purchase; import devopsdistilled.operp.server.data.entity.business.PurchaseDesc; public class PurchasePaneControllerImpl implements PurchasePaneController { @Inject private PurchasePaneModel model; @Inject private PurchasePane view; @Inject private VendorModel vendorModel; @Inject private PurchaseDescPaneController purchaseDescPaneController; @Inject private PurchaseModel purchaseModel; @Override public void validate() throws EntityValidationException { if (model.getEntity().getParty() == null) throw new NullFieldException("Vendor must be selected"); } @Override public Purchase save() { return purchaseModel.saveAndUpdateModel(model.getEntity()); } @Override public PurchasePaneModel getModel() { return model; } @Override public PurchasePane getView() { return view; } @Override public void init(Purchase purchase, EntityOperation entityOperation) { if (EntityOperation.Create == entityOperation) { PurchaseDesc purchaseDesc = new PurchaseDesc(); purchase.setBusinessDesc(purchaseDesc); purchaseDesc.setBusiness(purchase); purchaseDescPaneController.init(purchaseDesc, EntityOperation.Create); } else if (EntityOperation.Edit == entityOperation) { } else if (EntityOperation.Details == entityOperation) { } view.setPurchaseDescpanel((JPanel) purchaseDescPaneController.getView() .getPane()); view.setController(this); view.resetComponents(); model.registerObserver(view); model.setEntityAndEntityOperation(purchase, entityOperation); vendorModel.registerObserver(view); view.init(); } }