package genius.gui.uncertainty; import javax.swing.JOptionPane; import genius.core.listener.Listener; import genius.core.repository.ProfileRepItem; import genius.core.uncertainty.UncertainPreferenceContainer; import genius.gui.panels.BooleanModel; public class PerceivedUtilityModel { private BooleanModel confirmationModel = new BooleanModel(false); private PerturbationModel perturbationModel; private FlatteningModel flatteningModel; private BooleanModel perturbationActivationModel = new BooleanModel(false); private BooleanModel flatteningActivationModel = new BooleanModel(false); private final ProfileRepItem profile; private UncertainPreferenceContainer uncertainPrefContainer = null; public PerceivedUtilityModel(ProfileRepItem profile) { this.profile = profile; this.perturbationModel = new PerturbationModel(profile); this.flatteningModel = new FlatteningModel(profile); connect(); } public void connect() { confirmationModel.addListener (new Listener() { @Override public void notifyChange(Boolean data) { if (confirmationModel.getValue() == true && perturbationActivationModel.getValue() == true) { uncertainPrefContainer = perturbationModel.createContainer(); JOptionPane.showMessageDialog(null , "Perturbation User Model Created Successfully! \nPerturbation: " + perturbationModel.getPerturbationBox().getText()); } else if (confirmationModel.getValue() == true && flatteningActivationModel.getValue() == true) { uncertainPrefContainer = flatteningModel.createContainer(); JOptionPane.showMessageDialog(null , "Flattened User Model Created Successfully! \n Strategy: " +flatteningModel.getStrategyNamesModel().getSelection() +"\n"); } confirmationModel.setValue(false); perturbationActivationModel.setValue(false); flatteningActivationModel.setValue(false); } }); } public BooleanModel getConfirmationModel() { return confirmationModel; } public UncertainPreferenceContainer getUncertainPrefContainer() { return uncertainPrefContainer; } public BooleanModel getPerturbationActivationModel() { return perturbationActivationModel; } public BooleanModel getFlatteningActivationModel() { return flatteningActivationModel; } public PerturbationModel getPerturbationModel() { return perturbationModel; } public FlatteningModel getFlatteningModel() { return flatteningModel; } public ProfileRepItem getProfile() { return profile; } }