3 import java
.awt
.event
.ActionEvent
;
4 import java
.awt
.event
.ActionListener
;
5 import java
.util
.ArrayList
;
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;*/
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()));
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));
43 public Person
getPersonObj() {
47 public void setPersonObj(Person personObj
) {
48 this.personObj
= personObj
;
54 public FirstnameView
getFirstnameView() {
59 * @param firstnameView
61 public void setFirstnameView(FirstnameView firstnameView
) {
62 this.firstnameView
= firstnameView
;
68 public OriginView
getOriginView() {
75 public void setOriginView(OriginView originView
) {
76 this.originView
= originView
;
82 public SizeView
getSizeView() {
89 public void setSizeView(SizeView sizeView
) {
90 this.sizeView
= sizeView
;
96 public WeightView
getWeightView() {
103 public void setWeightView(WeightView weightView
) {
104 this.weightView
= weightView
;
110 public void setEyeView(EyeView eyeView
) {
111 this.eyeView
= eyeView
;
117 public EyeView
getEyeView() {
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.",
135 JOptionPane
.ERROR_MESSAGE
);
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
);