package devopsdistilled.operp.client.business.sales.panes.controllers.impl; import javax.inject.Inject; import javax.swing.JPanel; import devopsdistilled.operp.client.abstracts.EntityOperation; import devopsdistilled.operp.client.business.sales.models.SaleModel; import devopsdistilled.operp.client.business.sales.panes.SalePane; import devopsdistilled.operp.client.business.sales.panes.controllers.SaleDescPaneController; import devopsdistilled.operp.client.business.sales.panes.controllers.SalePaneController; import devopsdistilled.operp.client.business.sales.panes.models.SalePaneModel; import devopsdistilled.operp.client.exceptions.EntityValidationException; import devopsdistilled.operp.client.exceptions.NullFieldException; import devopsdistilled.operp.client.party.models.CustomerModel; import devopsdistilled.operp.server.data.entity.business.Sale; import devopsdistilled.operp.server.data.entity.business.SaleDesc; public class SalePaneControllerImpl implements SalePaneController { @Inject private SalePaneModel model; @Inject private SalePane view; @Inject private CustomerModel customerModel; @Inject private SaleDescPaneController saleDescPaneController; @Inject private SaleModel saleModel; @Override public void validate() throws EntityValidationException { if (model.getEntity().getParty() == null) throw new NullFieldException("Customer must be selected"); } @Override public Sale save() { return saleModel.saveAndUpdateModel(model.getEntity()); } @Override public SalePaneModel getModel() { return model; } @Override public SalePane getView() { return view; } @Override public void init(Sale sale, EntityOperation entityOperation) { if (EntityOperation.Create == entityOperation) { SaleDesc saleDesc = new SaleDesc(); sale.setBusinessDesc(saleDesc); saleDesc.setBusiness(sale); saleDescPaneController.init(saleDesc, EntityOperation.Create); } else if (EntityOperation.Edit == entityOperation) { } else if (EntityOperation.Details == entityOperation) { } view.setSaleDescpanel((JPanel) saleDescPaneController.getView() .getPane()); view.setController(this); view.resetComponents(); model.registerObserver(view); model.setEntityAndEntityOperation(sale, entityOperation); customerModel.registerObserver(view); view.init(); } }