Start the implementation of inputs gathering and the comparator code (still buggy...
[Persons_Comparator.git] / src / PersonView.java
1 import javax.swing.*;
2 import java.awt.*;
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5 import java.util.ArrayList;
6
7 public class PersonView extends JPanel implements ActionListener {
8 private int width = 400;
9 private int height = 600;
10 private Person personObj;
11 private FirstnameView firstnameView;
12 private OriginView originView;
13 private SizeView sizeView;
14 private WeightView weightView;
15 private EyeView eyeView;
16 private JPanel personPanel = new JPanel();
17 private JButton compareButton = new JButton("Compare");
18 /*private ImageIcon originImage;
19 private ImageIcon personImage;*/
20
21 PersonView(Person personObj) {
22 setPersonObj(personObj);
23 setFirstnameView(new FirstnameView(15, this.personObj.getFirstname()));
24 setOriginView(new OriginView(this.personObj.getOrigin()));
25 setSizeView(new SizeView(this.personObj.getPersonSize()));
26 setWeightView(new WeightView(this.personObj.getWeight()));
27 setEyeView(new EyeView(this.personObj.getEye()));
28
29 this.compareButton.addActionListener(this);
30 JLabel personLabel = new JLabel("Closest person found");
31 personPanel.add(personLabel);
32 setPreferredSize(new Dimension(this.width, this.height));
33 setLayout(new GridLayout(7, 1, 0, 4));
34 add(firstnameView);
35 add(originView);
36 add(sizeView);
37 add(weightView);
38 add(eyeView);
39 add(compareButton);
40 add(personPanel);
41 }
42
43 public Person getPersonObj() {
44 return personObj;
45 }
46
47 public void setPersonObj(Person personObj) {
48 this.personObj = personObj;
49 }
50
51 /**
52 * @return
53 */
54 public FirstnameView getFirstnameView() {
55 return firstnameView;
56 }
57
58 /**
59 * @param firstnameView
60 */
61 public void setFirstnameView(FirstnameView firstnameView) {
62 this.firstnameView = firstnameView;
63 }
64
65 /**
66 * @return
67 */
68 public OriginView getOriginView() {
69 return originView;
70 }
71
72 /**
73 * @param originView
74 */
75 public void setOriginView(OriginView originView) {
76 this.originView = originView;
77 }
78
79 /**
80 * @return
81 */
82 public SizeView getSizeView() {
83 return sizeView;
84 }
85
86 /**
87 * @param sizeView
88 */
89 public void setSizeView(SizeView sizeView) {
90 this.sizeView = sizeView;
91 }
92
93 /**
94 * @return
95 */
96 public WeightView getWeightView() {
97 return weightView;
98 }
99
100 /**
101 * @param weightView
102 */
103 public void setWeightView(WeightView weightView) {
104 this.weightView = weightView;
105 }
106
107 /**
108 * @param eyeView
109 */
110 public void setEyeView(EyeView eyeView) {
111 this.eyeView = eyeView;
112 }
113
114 /**
115 * @return
116 */
117 public EyeView getEyeView() {
118 return eyeView;
119 }
120
121 @Override
122 public void actionPerformed(ActionEvent actionEvent) {
123 //TODO: one can implement a smarter way of getting all inputs values inside the main panel.
124 String firstname = this.getFirstnameView().getTextField().getText();
125 String country = null;
126 if (this.getOriginView().getComboBox().getSelectedIndex() != -1)
127 country = (String) this.getOriginView().getComboBox().getSelectedObjects()[0];
128 Integer size = (Integer) this.getSizeView().getSpinner().getValue();
129 Integer weight = (Integer) this.getWeightView().getComboBox().getSelectedItem();
130 String eye_color = (String) this.getEyeView().getColorsList().getSelectedValue();
131 if (firstname.equals("") || country == null || eye_color == null) {
132 JOptionPane.showMessageDialog(this,
133 "Some required fields are missing.",
134 "Error",
135 JOptionPane.ERROR_MESSAGE);
136 } else {
137 this.getPersonObj().setFirstname(new Firstname(firstname));
138 this.getPersonObj().setOrigin(new Origin(country));
139 this.getPersonObj().setPersonSize(new Size(size));
140 this.getPersonObj().setWeight(new Weight(weight));
141 this.getPersonObj().setEye(new Eye(eye_color));
142 //this.getPersonObj().displayPersonArrayList();
143 ArrayList<Person> personArrayList = this.getPersonObj().getPersonArrayList();
144 personArrayList.add(this.getPersonObj());
145 this.getPersonObj().displayArrayList(personArrayList);
146 personArrayList.sort(getPersonObj());
147 this.getPersonObj().displayArrayList(personArrayList);
148 Integer previousPersonIndex = personArrayList.indexOf(this.getPersonObj()) - 1;
149 Integer nextPersonIndex = personArrayList.indexOf(this.getPersonObj()) + 1;
150 //Person previousPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) - 1);
151 //Person nextPerson = personArrayList.get(personArrayList.indexOf(this.getPersonObj()) + 1);
152 System.out.println(previousPersonIndex);
153 System.out.println(nextPersonIndex);
154 }
155 }
156 }