package devopsdistilled.operp.client.party.panes.controllers.impl; import javax.inject.Inject; import javax.swing.JPanel; import devopsdistilled.operp.client.abstracts.EntityOperation; import devopsdistilled.operp.client.commons.panes.controllers.ContactInfoPaneController; import devopsdistilled.operp.client.exceptions.EntityValidationException; import devopsdistilled.operp.client.party.models.VendorModel; import devopsdistilled.operp.client.party.panes.VendorPane; import devopsdistilled.operp.client.party.panes.controllers.VendorPaneController; import devopsdistilled.operp.client.party.panes.models.VendorPaneModel; import devopsdistilled.operp.server.data.entity.account.PayableAccount; import devopsdistilled.operp.server.data.entity.commons.ContactInfo; import devopsdistilled.operp.server.data.entity.party.Vendor; public class VendorPaneControllerImpl implements VendorPaneController { @Inject private VendorPane view; @Inject private VendorPaneModel model; @Inject private ContactInfoPaneController contactInfoPaneController; @Inject private VendorModel vendorModel; @Override public VendorPaneModel getModel() { return model; } @Override public void validate() throws EntityValidationException { contactInfoPaneController.validate(); Vendor vendor = model.getEntity(); if (vendor.getPartyName().equalsIgnoreCase("")) throw new EntityValidationException("Vendor Name can't be empty"); } @Override public Vendor save() { return vendorModel.saveAndUpdateModel(model.getEntity()); } @Override public VendorPane getView() { return view; } @Override public void init(Vendor vendor, EntityOperation entityOperation) { if (EntityOperation.Create == entityOperation) { vendor.setAccount(new PayableAccount()); ContactInfo contactInfo = new ContactInfo(); vendor.setContactInfo(contactInfo); contactInfoPaneController.init(contactInfo, entityOperation); } else if (EntityOperation.Edit == entityOperation) { contactInfoPaneController.init(vendor.getContactInfo(), entityOperation); } else if (EntityOperation.Details == entityOperation) { contactInfoPaneController.init(vendor.getContactInfo(), entityOperation); } view.setContactInfopanel((JPanel) contactInfoPaneController.getView() .getPane()); view.setController(this); view.resetComponents(); model.registerObserver(view); model.setEntityAndEntityOperation(vendor, entityOperation); view.init(); } }