source: src/main/java/genius/gui/uncertainty/PairwiseComparisonModel.java@ 43

Last change on this file since 43 was 43, checked in by dimitrios, 7 years ago

Bug Fix

File size: 3.4 KB
RevLine 
[1]1package genius.gui.uncertainty;
2
3import javax.swing.JOptionPane;
4
5import genius.core.boaframework.SortedOutcomeSpace;
6import genius.core.listener.Listener;
7import genius.core.repository.ProfileRepItem;
8import genius.core.uncertainty.UNCERTAINTYTYPE;
9import genius.core.uncertainty.UncertainPreferenceContainer;
10import genius.core.utility.AbstractUtilitySpace;
11import genius.gui.panels.BooleanModel;
12import genius.gui.panels.TextModel;
13
14public class PairwiseComparisonModel {
15
16private ProfileRepItem profile;
17
18private TextModel uncertaintyModel = new TextModel("0.0");
19private TextModel errorModel = new TextModel("0.0");
[43]20private int maxNumberInComps;
[1]21
[30]22private BooleanModel experimentalModel = new BooleanModel(true);
[1]23private BooleanModel confirmationModel = new BooleanModel(false);
24
25private UncertainPreferenceContainer uncertainPrefContainer = null;
26
27 PairwiseComparisonModel(ProfileRepItem profile){
28 this.profile = profile;
[43]29 this.maxNumberInComps = calculateMaxNumberOfComparisons();
[1]30 connect();
31 }
32 public int calculateMaxNumberOfComparisons() {
33 SortedOutcomeSpace realSortedOutcomeSpace = new SortedOutcomeSpace((AbstractUtilitySpace) profile.create());
[36]34 int max = realSortedOutcomeSpace.getAllOutcomes().size() - 1;
35 return max;
[1]36 }
37
38 public void connect() {
39
40 confirmationModel.addListener (new Listener<Boolean>() {
41 @Override
42 public void notifyChange(Boolean data) {
43 if (confirmationModel.getValue() == true) {
44 uncertainPrefContainer = createContainer();
[43]45 int amountOfComps = uncertainPrefContainer.getPairwiseCompUserModel().
46 getBidRanking().getBidOrder().size()-1;
47 double uncertaintyLevel = ((double) amountOfComps / (double) getMaxNumberInComps());
[1]48 double errorRate = Double.parseDouble(getErrorModel().getText())*100;
49
50 JOptionPane.showMessageDialog(null , "Pairwise Comparison User Model Created Successfully! \n\n"
[43]51 + "Number of Outcomes In Comparison Set: " + amountOfComps +"\n"
[1]52 + "Level Of Uncertainty: "
53 + (Math.round((1-uncertaintyLevel)*100)/100D)*100+"%\n"
54 + "Error Rate: " + (Math.round((errorRate)*100)/100D)+"%");
55 }
56 }
57 });
58 }
59
60 public ProfileRepItem getProfile() {
61 return profile;
62 }
63
64 public UncertainPreferenceContainer createContainer() {
[30]65 int amountOfComps = Integer.parseInt((getUncertaintyModel().getText()));
[1]66 UncertainPreferenceContainer container ;
67 if (experimentalModel.getValue() == true) {
68 container = new UncertainPreferenceContainer((AbstractUtilitySpace) profile.create() ,
69 UNCERTAINTYTYPE.PAIRWISECOMP, amountOfComps , Double.parseDouble(getErrorModel().getText()), true);
70 } else {
71 container = new UncertainPreferenceContainer((AbstractUtilitySpace) profile.create() ,
72 UNCERTAINTYTYPE.PAIRWISECOMP, amountOfComps , Double.parseDouble(getErrorModel().getText()), false);
73 }
74 return container;
75 }
76
77 public TextModel getUncertaintyModel() {
78 return uncertaintyModel;
79 }
80
[30]81 public int getNumberOfComps(){
[43]82 return (int)((1 - Double.parseDouble(getUncertaintyModel().getText())) * maxNumberInComps);
[30]83 }
84
85
[1]86 public TextModel getErrorModel() {
87 return errorModel;
88 }
[43]89 public int getMaxNumberInComps() {
90 return maxNumberInComps;
[1]91 }
92 public BooleanModel getConfirmationModel() {
93 return confirmationModel;
94 }
95 public UncertainPreferenceContainer getUncertainPrefContainer() {
96 return uncertainPrefContainer;
97 }
98 public BooleanModel getExperimentalModel() {
99 return experimentalModel;
100 }
101}
102
Note: See TracBrowser for help on using the repository browser.