package nl.tudelft.bw4t.scenariogui.epartner.controller; import java.util.HashSet; import java.util.Set; import nl.tudelft.bw4t.scenariogui.EPartnerConfig; import nl.tudelft.bw4t.scenariogui.editor.gui.MainPanel; import nl.tudelft.bw4t.scenariogui.epartner.gui.EPartnerViewInterface; import nl.tudelft.bw4t.scenariogui.epartner.gui.EpartnerFrame; /** * EpartnerController is in charge of all events that happen on the EpartnerFrame. */ public class EpartnerController { private Set<EPartnerViewInterface> views = new HashSet<>(); private EPartnerConfig epConfig; private MainPanel parent; /** * Create the EpartnerController. * @param panel The MainPanel. * @param row The row the e-partner is on in the ScenarioEditor. */ public EpartnerController(MainPanel panel, int row) { epConfig = panel.getClientConfig().getEpartner(row); this.parent = panel; } /** * Create the Epartner controller * @param config The epartner config file */ public EpartnerController(EPartnerConfig config) { epConfig = config; } /** * Add a view to the set of views. * * @param view The view that is added to the set */ public void addView(EPartnerViewInterface view) { views.add(view); view.updateView(); } /** * Delete a view from the set of views. * * @param view The view that is deleted from the set */ public void removeView(EPartnerViewInterface view) { views.remove(view); } public String getEpartnerName() { return epConfig.getEpartnerName(); } public int getEpartnerAmount() { return epConfig.getEpartnerAmount(); } public boolean isGps() { return epConfig.isGps(); } public boolean isForgetMeNot() { return epConfig.isForgetMeNot(); } public String getReferenceName() { return epConfig.getReferenceName(); } public String getFileName() { return epConfig.getFileName(); } /** * Updates the EPartnerConfig file with the values from the EpartnerFrame. * * @param epf The EpartnerFrame the values are taken from. */ public void updateConfig(EpartnerFrame epf) { epConfig.setEpartnerName(epf.getEpartnerName()); epConfig.setEpartnerAmount(epf.getEpartnerAmount()); epConfig.setFileName(epf.getEpartnerGoalFile()); epConfig.setReferenceName(epf.getEpartnerReference()); epConfig.setGps(epf.getGPS()); epConfig.setForgetMeNot(epf.getForgetMeNot()); for (EPartnerViewInterface evi: views) { evi.updateView(); } } public MainPanel getParent() { return parent; } public EPartnerConfig getEPartnerConfig() { return epConfig; } }