source: src/main/java/genius/gui/uncertainty/PairwiseComparisonPanel.java@ 3

Last change on this file since 3 was 1, checked in by Wouter Pasman, 7 years ago

Initial import : Genius 9.0.0

File size: 3.7 KB
Line 
1package genius.gui.uncertainty;
2
3import java.awt.Component;
4import java.awt.Dimension;
5import java.util.Hashtable;
6
7import javax.swing.BoxLayout;
8import javax.swing.JLabel;
9import javax.swing.JPanel;
10import javax.swing.JSlider;
11import javax.swing.event.ChangeEvent;
12import javax.swing.event.ChangeListener;
13
14import genius.gui.panels.ButtonPanel;
15import genius.gui.panels.ExtendedCheckboxPanel;
16import genius.gui.panels.LabelAndComponent;
17
18public class PairwiseComparisonPanel extends JPanel{
19
20 private static final long serialVersionUID = 7745677414933157895L;
21
22 private PairwiseComparisonModel model;
23
24 private final JLabel label;
25 private final JLabel numberOfCompsLabel;
26
27 private JSlider uncertaintySlider;
28 private LabelAndComponent uncertaintyComp;
29 private JSlider errorSlider;
30 private LabelAndComponent errorComp;
31
32 private ExtendedCheckboxPanel experimentalBox;
33 private final ButtonPanel okButton;
34
35
36 public PairwiseComparisonPanel(PairwiseComparisonModel model) {
37
38 this.model = model;
39
40 this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
41 this.label = new JLabel("Set Pairwise Comparison User Model Parameters");
42 this.label.setPreferredSize(new Dimension(500, 35));
43 this.numberOfCompsLabel = new JLabel("(Maximum Number of Comparisons = " +this.model.calculateMaxNumberOfComparisons() +")");
44 this.numberOfCompsLabel.setPreferredSize(new Dimension(500, 35));
45
46// this.pairwiseComparisonsTextPanel.setAlignmentX(CENTER_ALIGNMENT);
47
48 this.uncertaintySlider = createUncertaintySlider();
49 this.uncertaintyComp = new LabelAndComponent("Uncertainty Level ", uncertaintySlider);
50
51 this.errorSlider = createErrorSlider();
52 this.errorComp = new LabelAndComponent(" Error Rate ", errorSlider);
53
54 numberOfCompsLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
55 label.setAlignmentX(Component.LEFT_ALIGNMENT);
56 uncertaintyComp.setAlignmentX(Component.LEFT_ALIGNMENT);
57 errorComp.setAlignmentX(Component.LEFT_ALIGNMENT);
58
59 experimentalBox = new ExtendedCheckboxPanel("Experimental Setup (Agent has access to real utility function)",
60 model.getExperimentalModel());
61 experimentalBox.setAlignmentX(LEFT_ALIGNMENT);
62
63 okButton = new ButtonPanel("OK", model.getConfirmationModel());
64 okButton.setMaximumSize(new Dimension (50,50)) ;
65 okButton.setAlignmentX(CENTER_ALIGNMENT);
66
67 add(label);
68 add(numberOfCompsLabel);
69 add(uncertaintyComp);
70 add(errorComp);
71 add(experimentalBox);
72 add(okButton);
73 }
74
75
76 private JSlider createUncertaintySlider() {
77 JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,0);
78 slider.setMajorTickSpacing( 1 );
79 slider.setMinorTickSpacing( 2 );
80 Hashtable<Integer, JLabel> sliderLabelsTable = new Hashtable<Integer, JLabel>();
81 sliderLabelsTable.put( 0 , new JLabel("0%") );
82 sliderLabelsTable.put( 100 , new JLabel("100%") );
83 slider.setLabelTable(sliderLabelsTable);
84 slider.setPaintLabels(true);
85 slider.addChangeListener(new ChangeListener() {
86 @Override
87 public void stateChanged(ChangeEvent e) {
88 model.getUncertaintyModel().setText(String.valueOf((double) slider.getValue() / 100));
89 }
90 });
91 return slider;
92 }
93
94 private JSlider createErrorSlider() {
95 JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,0);
96 slider.setMajorTickSpacing( 1 );
97 slider.setMinorTickSpacing( 2 );
98 Hashtable<Integer, JLabel> sliderLabelsTable = new Hashtable<Integer, JLabel>();
99 sliderLabelsTable.put( 0 , new JLabel("0%") );
100 sliderLabelsTable.put( 100 , new JLabel("100%") );
101 slider.setLabelTable(sliderLabelsTable);
102 slider.setPaintLabels(true);
103 slider.addChangeListener(new ChangeListener() {
104 @Override
105 public void stateChanged(ChangeEvent e) {
106 model.getErrorModel().setText(String.valueOf((double) slider.getValue() / 100));
107 }
108 });
109 return slider;
110 }
111
112
113}
Note: See TracBrowser for help on using the repository browser.